对于很多刚接触Spark的人来说,可能主要关心数据处理的逻辑,而对于如何高效运行Spark应用程序了解较少。由于Spark是一种分布式内存计算框架,其性能往往受限于CPU、内存、网络等多方面的因素,对于用户来说,如何在有限的资源下高效地运行Spark应用程序显得尤为重要。下面只针对Spark-On-Yarn的一些常用调优策略做详细分析。
写在最后一个寒假前
明天回家,这应该是我的上学生涯最后的一个寒假,寒假过后差不多就开始步入职场。突然觉得要好好珍惜这个假期,但是又不知从何去珍惜。记得每次寒假前总是计划着要看好多书学好多东西,最终证明带的书终究还是压箱底的,在家宁可过着猪一般的生活,躺在被子里发呆也不愿意做任何事。不过想想,家里真的是不适合学习,大冬天,没暖气,手端着书本拿着鼠标都会冻得发紫,所有的学习热情都被冻得拔凉拔凉的,假期前的美好计划也都不了了之。又想着最后一个长假,这样过去真是有点敷衍人生,还是激励下自己克服寒冷,借着本站点好好写点东西,但凡假期遇到的好玩或者有所感触的事都把它记录下来,培养自己码字的习惯,要是自己能坚持下来写东西,也就无悔了。
Akka-remote使用入门
在上一篇文章中讲了akka-actor的简单使用,那主要是展现了akka在一台机器上的并发应用,这一篇接着介绍akka-remote使用,简单了解akka在不同机器上的并发应用。我们知道,在一台机器上是多个本地actor之间发送消息,那么如果是在多台机器上,则不同机器上的actor是通过网络通信来发送消息的。假如,我们还是用之前的蒙特卡洛求π的例子,之前在一台机器上计算启动多个actor同时计算,其根源还是利用的一台机器的资源,如果将计算任务分发到多台机器上同时运行,最后汇总下多台机器的计算结果,每台机器的计算任务就不会太大。
Akka-actor使用入门
学习scala编程,不可避免的会接触到actor模式,它使得并发编程不再像噩梦般萦绕着开发者,Akka是actor的一个开源实现。由于本人水平有限,自认为还不能把actor设计思想讲明白,所以本文仅仅是一个使用akka-actor的入门参考以及个人的入门心得,其具体原理及设计思想请参考相关资料,推荐Akka的官方文档,里面讲的很清晰,另外,国外一个人的笔记写的相当不错,原理加上其配图讲的非常形象。
Spark源码编译并在YARN上运行WordCount实例
在学习一门新语言时,想必我们都是”Hello World”程序开始,类似地,分布式计算框架的一个典型实例就是WordCount程序,接触过Hadoop的人肯定都知道用MapReduce实现WordCount,当前内存分布式计算框架Spark因为其计算速度之快,并且可以部署到Hadoop YARN中运行,已经受到各大公司的青睐,Spark社区提供了一些编译好的jar包,但是其中没有适配Hadoop-2.2.0的jar包,为了避免版本问题,需要自己编译指定hadoop版本的Spark jar包。下面介绍如何编译Spark源码并在YARN上运行WordCount程序。