2016-09-15 2 views
3

여러 스트림에서 작동하는 Apache Spark 응용 프로그램을 빌드하고 있습니다. http://spark.apache.org/docs/latest/streaming-programming-guide.html#performance-tuning스파크 스트리밍 및 고 가용성

내가하지 않았다 것은 :

1) 스트리밍 수신기는 여러 작업자 노드에 위치하거나 운전자 기계는 있습니까

나는 문서의 성능 조정 섹션을 읽어습니까?

2) 데이터를 수신 노드 중 하나가 실패하면 어떻게됩니까 (전원 끄기/재시작)

답변

3

여러 작업자 노드에있는 스트리밍 수신기 있습니까 또는 드라이버 기계

입니다

수신자는 작업자 노드에 있으며 데이터를 보유하는 소스의 사용을 담당합니다. 데이터를 수신 노드 중 하나가

수신기는 작업자 노드에있는 (전원 오프/다시 시작)에 장애가 발생하면 어떤 일이 발생

. 작업자 노드는 드라이버에서 작업을 가져옵니다. 이 드라이버는 클라이언트 모드에서 실행 중이면 전용 마스터 서버에 위치하거나 클러스터 모드에서 실행중인 경우에는 작업자 중 하나에있을 수 있습니다. 드라이버를 실행하지 않는 노드에 장애가 발생할 경우 드라이버는 장애가 발생한 노드에있는 파티션을 다른 노드에 다시 할당 한 다음 소스에서 데이터를 다시 읽을 수있게하고 추가 작업을 수행합니다 실패로부터 복구하기 위해 필요한 처리.

이 때문에 Kafka 또는 AWS Kinesis와 같은 재생 가능한 소스가 필요합니다.

+0

수신기가있는 작업자가 사망하면 드라이버가 수신기를 다시 인스턴스화하고 새 작업자가 데이터 수신을 다시 시작합니다. 합리적인 것 같지만 어딘가에 문서화되어 있습니까? –

+1

@PiotrR 당신이 [이걸 찾으러 온 것 같아] (http://spark.apache.org/docs/latest/streaming-programming-guide.html#fault-tolerance-semantics) –