spark--搭建初体验

2018/04/05

介绍一些刚刚搭建的过程中,出现的一些问题,以及一些部署的步骤。

安装spark的过程非常简单,一般都需要安装scala,我看了一下,好像如果不安装也不会出错。
如果是不使用hadoop的yarn或者其他功能,就只需要启动hdfs就可以。


基本就是把二进制包下载了,然后编辑一个文件就完了。
(这里出现一个错误,就是想用yarn进行配置的时候,要把hadoop路径配置,原来配置错误,所以一直没法使用集群方式的spark)
但是,我感觉,好多坑,很多地方不太明白。
就是说他的这个抽象级别,已经超出我当前对hadoop的理解能力了。
首先,我都不知道他到底是不是真的运行在hdfs上了。这个到底应该怎么去看。


2018/04/06
简单运用下了查数的,运行于yarn。

pyspark --master yarn
test = sc.textFile("hdfs://node1:9000/user/root/output_new/part-00000")
test.count()

(可以不加hdfs这个前缀,默认去当前用户的hdfs路径下去寻找)
运行了8.7分钟。比hive还快了一分钟吧。
(主要这里他的请求资源策略不一样,这部分也得小心)
而且,这只是默认选项来配置的,不知道如果是可以进行些配置以后,就会更快。
(这里已经很慢了,因为我看到他只请求了3个container,估计还有一个是shell的)


但是我他妈,单机版spark运行的时候居然只用了3.3分钟?????!!!!
这就很尴尬。。。然后使用spark内建的集群的话,已经很久了还没跑完。。。。
原来设置的是10个worker,就到最后的时候,非常慢。
现在改为了2个或者1个,感觉时间上基本是一致的。3.9分钟。
而相对于单机版的时间差,应该就在于这个网络交互上,还有不同的机器运行时间不同上,即路障,另外还有网络IO的消耗上。
因为这部分我只是用了最简单的部分,而且代码是python自身的。并没有我自己的代码涉入,所以如果进一步调优的话,也只能是从spark的一些配置上去调优。


执行一个任务时候,发现总是某几个任务执行的特别慢,而且就是另外两个IP。
然后去看了一下这个文件的文件块分布就知道了。

hadoop fsck /user/root/output_new/part-00000 -files -locations -blocks
这个文件全部都分布在一台机器上,所以导致了整体的运行就等着其他两个机器的运行。

image.png

看得到剩余连个机器的时间都是特别长。
不知道是不是可以只能的选择这个相应的执行地点。
2018/04/07
是不是可以制定某些机器执行????

(这个应该是属于调度策略的部分)
对于本地化这个东西的调节,可以在执行命令之前就是pysaprk之前就要传进去。
https://www.cnblogs.com/jxhd1/p/6702224.html?utm_source=itdadao&utm_medium=referral
就是使用shell的时候,必须保证在SC初始化之前就穿进去参数。
pyspark --master spark://node1:7077 --conf spark.locality.wait=10
改了之后,另外两个节点还是那样any。
在本地执行的任务都是非常快就完成了。


以后的话,可能还会遇到这个问题。还是需要思考。
(我的数据块全都在node3上,是reduce自己写的)
从整个任务的分布来看,他就是按照顺序,先给node3上worker分配了。然后给node1、node2上的20个核一人一个任务。后面的就全都是node_local了,也就是全给了node3。
我想要的结果,也就是全部都在node3上进行执行。
这部分得明白,到底是怎么回事。

这部分的信息就先这样。
而且这部分内容,也是后续对spark进行调优的部分,就先不继续深入探讨了。明白有这回事就好。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值