Spark之troubleshooting
1.yarn-client模式引起网卡流量激增问题?
一个Driver和Executor中的task频繁进行通信,通信消息特别多,通信的频率特别高, 运行完一个stage,接着运行下一个stage,又是频繁的通信。
解决:
yarn-cluster
yarn-client模式,通常咱们就只会使用在测试环境中,你写好了某个spark作业,打了一个jar包, 在某台测试机器上,用yarn-client模式去提交一下。因为测试的行为是偶尔为之的, 不会长时间连续提交大量的spark作业去测试。
还有一点好处,yarn-client模式提交,
可以在本地机器观察到详细全面的log。
通过查看log,可以去解决线上报错的故障(troubleshooting)、
对性能进行观察并进行性能调优。
实际上线了以后,
在生产环境中,都得用yarn-cluster模式,去提交你的spark作业。
yarn-cluster模式,就跟你的本地机器引起的网卡流量激增的问题,就没有关系了。也就是说,
就算有问题,也应该是yarn运维团队和基础运维团队之间的事情了。 他们去考虑Yarn集群里面每台机器是虚拟机还是物理机呢?网卡流量激增后会不会对其他东西产生影响呢? 如果网络流量激增,要不要给Yarn集群增加一些网络带宽等等这些东西。那就是他们俩个团队的事情了, 和你就没有关系了
大公司都是通过Yarn来进行调度,
mapreduce on yarn、spark on yarn、甚至
storm on yarn