现象:sparkStreaming 作业 local[*] 可以正常消费到数据并处理,但提交到yarn-cluster后只消费到数据但没有处理,从 Streaming Statistics 可见只有消费到数据,但没有处理
原因: 提交命令时只配置了1个 container ,确切的说是1个 core ,该 core 被分配用于消费数据,没有core可以用来处理,通过executor界面可以看到
spark-submit --master yarn-cluster --num-executors 1 --executor-memory 1G
解决:将 --num-executors 1 改为 --num-executors 2
spark-submit --master yarn-cluster --num-executors 2 --executor-memory 1G
正常截图: