有个业务,Spark程序需要读取Kafka,然后写入Redis上,Spark任务运行在Yarn集群上,由于没有开通网络策略,无法定位Spark在yarn节点上的运行情况和日志。总是报错误,中间有Redis和Kafka的报错Log,找人看了下网络,下网络也都是通的,最后看到一条这样的报错:
INFO Reconnect due to socket error: java.nio.channels.ClosedChannelException (kafka.consumer.SimpleConsumer
org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 10000
最后,发现是Yarn集群各个节点上的/etc/hosts文件里面没有添加kafka集群的机器名、IP地址。