2017-10-26 5 views
0

스파크 스트리밍을 테스트하려고합니다. 나는 혼자 서있다 cloudera quickstart VM.스파크 스트리밍 - 스파크 스트리밍에서 Netcat 메시지가 수신되지 않습니다.

: 다른 단말기에
sc.stop() 
import org.apache.spark.SparkConf 
import org.apache.spark.streaming.StreamingContext 
val conf = new SparkConf().setAppName("Spark Streaming") 
val ssc = new StreamingContext(conf,org.apache.spark.streaming.Seconds(10)) 
val lines = ssc.socketTextStream("localhost",44444) 
lines.print 

다음 명령으로 netcat을 서비스 시작 :

spark-shell --master yarn-client --conf spark.ui.port=23123 

난 다음 명령문을 실행 한 스파크 셸에서 다음 명령 스파크 쉘 시작 스파크 - 쉘

nc -lk 44444 

는 스트리밍 문맥을 시작

ssc.start() 

지금까지 모든 것이 좋습니다. 그러나 Netcat 서비스에 입력 된 메시지는 Spark 스트리밍에서 수신되지 않습니다. 어디서 잘못되었는지 알지 못합니다.

답변

1

spark-shell --master local[2] --conf spark.ui.port=23123 시도해보십시오.

작동하는 경우, 스크립트에서 작동하는 하나의 실행 프로그램만이 메시지를 수신 중이지만 실행 프로그램은 메시지를 처리하지 않습니다.

+0

효과가있었습니다. 고맙습니다. 이유는 무엇입니까? 너의 설명은 내 친구에게 먼 길을 갈거야. – Ravi

+0

스크립트 'spark-shell - master yarn-client --conf spark.ui.port = 23123'에서 --num-executors N을 지정해야합니다. 여기서 N은> = 2 여야합니다. 귀하의 코드가 작동하려면 최소한 2 명의 집행자가 있어야합니다. 하나는 메시지를 수신하고 다른 하나는 메시지를 처리하는 데 사용됩니다 (사례의 lines.print) – Tom

+0

감사합니다. 좋은 하루 되세요. – Ravi