2018/04/07
自己知道的spark运行的四种模式,以一个计算hdfs中某文件(20G大小)的行数为例,这个文件的块集中在node3上。
我的spark集群work是node1-3,master是node1。
(具体的执行命令,可以看前一篇。)
local
运行于本地,也是默认的情况。运行时间最少。
(初步认为,对单个文件执行处理的时间是很少的3.3min,但是网络消耗时间很大。我把这个同样的shell转移到node3上,只需要1.1min,可见网络消耗到底有多大。)
yarn
这个很慢,而且,看着webUI上的结果好像是逐步去请求资源(就是那些个任务是慢慢出出现的),花了8.9分钟。
主要这个也是用的最简单的命令,可能多请求一些资源就会更快一些。
(而且这个比较好的地方就是,在hadoop集群上,他的资源会跟别的请求相互协调,就是大家相互照顾的感觉)
standealone
pyspark –master spark://node1:7077
这个已经很快了,3.9分钟,但是发现的问题就是,因为本身hdfs并不是均衡分布在机器上的,所有有一部分网络消耗,最慢的几个worker都是因为每次请求这个资源慢。
(但我感觉,因为本身都是局域网,按说应该也挺快啊,为什么传输文件这么慢),这也是一个可以调节的东西。
mesos
没用过。