-
错误: INFO consumer.SimpleConsumer: Reconnect due to socket error: java.nio.channels.ClosedChannelException
原因: kafka消费的时候, stream.foreachRDD(rdd => ...) 多次用到rdd, 未做缓存, 每次rdd触发action时, 都会建立socket连接从kafka读数据
解决:- 查看socket的连接数:
ls /proc/$process_id/fd -l | grep socket: | wc -l
- 缓存rdd; 执行处理的时间尽量要小于batch的时间, 如果做不到,会有大量的batch堆积, socket不能释放,这种情况最好先把数据接进来, 然后另起一个Streaming来设置大的batch来慢慢处理数据
-
参考:
-
错误: Spark prints an avalanche of warning messages from Parquet when reading parquet files written by older versions of Parquet-mr
原因: spark2.10存在的bug
参考: https://issues.apache.org/jira/browse/SPARK-17993 -
--conf spark.streaming.kafka.maxRatePerPartition=1000
设置每个batch最多处理条数, 超过的话分为几个batch处理 -
写kafka时会socket连接有时会出现断开, 这时需要设置retries = 3 或者 5, 甚至在foreachPartition中加一个try, catch尝试重新建立连接(close掉上一个连接)
网友评论