我们有使用Avro的Kafka流。我需要使用python将其连接到Spark Stream。
我使用下面的代码来做到这一点:
kvs = KafkaUtils.createDirectStream(ssc, topic, {'bootstrap.servers': brokers}, valueDecoder=decoder)
然后我出现了波纹管错误。
调用o44.awaitTermination时发生错误。
2018-10-11 15:58:01信息DAScheduler:54-作业3失败:PythonRDD.scala:149处的runJob耗时1.403049 s
2018-10-11 15:58:01信息JobScheduler:54-完成作业流作业1539253680000 ms.0从作业时间集合1539253680000 ms
2018-10-11 15:58:01错误JobScheduler:91-运行作业流作业1539253680000 ms.0时出错
org.apache.spark.SparkException:Python引发了一个异常: 追溯(最近一次通话):
正在调用的文件“ /XXXXXX/spark2/python/lib/pyspark.zip/pyspark/streaming/util.py”,第65行
r = self.func(t,* rdds)
在takeAndPrint中的文件“ /XXXXXX/spark2/python/lib/pyspark.zip/pyspark/streaming/dstream.py”,第171行
taken = rdd.take(num + 1)
文件1375行中的“ /XXXXXX/spark2/python/lib/pyspark.zip/pyspark/rdd.py”
res = self.context.runJob(self,takeUpToNumLeft,p)
runJob中的文件“ /XXXXXX/spark2/python/lib/pyspark.zip/pyspark/context.py”,第1013行
sock_info = self._jvm.PythonRDD.runJob(self._jsc.sc(),mappedRDD._jrdd,分区)
在调用
中的文件“ /XXXXXX/spark2/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py”第1257行answer,self.gateway_client,self.target_id,self.name)
文件“ /XXXXXX/spark2/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py”,第328行,位于get_return_value中
format(target_id,“。”,名称),值)
Py4JJavaError:调用z:org.apache.spark.api.python.PythonRDD.runJob时发生错误。 :org.apache.spark.SparkException:由于阶段失败而导致作业中止:阶段3.0中的任务0失败4次,最近一次失败:阶段3.0中的任务0.3(TID 8,gen-CLUSTER_NODE,执行者2)丢失: .spark.SparkException:无法连接到主题“ TOPIC_NAME 1”的负责人:java.nio.channels.ClosedChannelException
但是,在此错误显示在终端上并终止该过程之前,我可以通过使用以下代码来打印RDD
kvs.pprint()
什么是领导者?我们怎么能克服这个?