我正在尝试使用Kafka运行Spark Streaming作业。
我通过Kafka发送csv日志文件,以便将消息发布到我的Spark Streaming应用程序。
我在Spark Streaming应用程序中使用直接方法来实现此目的。
我的日志文件中的数据在开始时很好地突然显示,但过了一段时间后,我在Scala IDE上看到以下错误消息。
环境:我在所有内核上本地运行Spark。 Zookeeper,Kafka也在我的系统上本地运行。
ERROR:
16/09/05 17:53:28 ERROR Executor: Exception in task 0.0 in stage 390.0 (TID 390)
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:100)
at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:78)
at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:68)
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SimpleConsumer.scala:112)
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:112)
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:112)
at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33)
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply$mcV$sp(SimpleConsumer.scala:111)
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:111)
at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:111)
at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33)
在中途抛出此异常会发生什么,有时一些日志数据会在控制台上显示此错误消息。
我有点困惑,因为这看起来像网络错误 - "封闭频道例外"但由于我在本地运行所有这些进程,我想知道是否其他东西可能实际上是根本原因。
如果我能得到一些解决这个问题的指示,那就太好了。
答案 0 :(得分:0)
将localhost替换为kafka producer.properties config中的计算机IP(如metadata.broker.list中所示)。同样在/ etc / hosts文件中替换:
127.0.0.1 localhost localhost.localdomain
与
x.x.x.x localhost localhost.localdomain
其中x.x.x.x是您的机器IP。 看看它是否有帮助。