程序员大数据,机器学习,人工智能大数据

Spark入门教程(四)Spark架构原理和调优

2018-02-19  本文已影响0人  胖滚猪学编程

本文全部手写原创,请勿复制粘贴、转载请注明出处,谢谢配合!

Spark术语


Spark运行架构


Spark运行架构

Yarn Client架构

原理与上面的相近,只不过ClusterManager为Yarn的ResourceManager WorkerNode为NodeManager,其实掌握了Yarn的架构原理就不难得出下面这张图。


无标题.png

Yarn Cluster架构

和Client的区别在于,Client模式下,SparkContext在本地,只是任务分给集群运行,而Cluster模式下,SparkContext也会分给某个NodeManager
因此,Cluster模式下当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行,因而YARN-Cluster模式不适合运行交互类型的作业。而YARN-Client模式下,Application Master仅仅向YARN请求Executor,Client会和请求的Container通信来调度他们工作,也就是说Client不能离开。因此在公司里,如果需要看到交互信息,用于交互调试,则选用Client模式,如果实际生产环境那么就用Cluster

无标题1.png

Spark调优


上面我加粗标注的driver-memory、 driver-cores 、num-executors 、executor-memory 、executor-cores,不仅是架构原理,其实也是我们调优的参数。

总结:资源参数的调优,没有一个固定的值,需要根据自己的机器和作业的实际情况(包括机器的配置,任务的大小,Spark作业中的shuffle操作数量、RDD持久化操作数量以及spark web ui中显示的作业gc情况),合理地设置上述参数。

上一篇 下一篇

猜你喜欢

热点阅读