蜗龙徒行-Spark学习笔记【三】Spark集群中worker节点扩展实战经验,-sparkworker


一、集群原先配置:

                  主机名sparkMaster,Ubuntu12.04-32 ,用户名Root , 内存4g    (只用于任务调度和分配,不做计算节点

                  从机名sparkSlave1,Ubuntu12.04-32 ,用户名Root , 内存4g    (计算节点)
                  从机名sparkSlave2,Ubuntu12.04-32 ,用户名Root , 内存1.7g (计算节点)


二、扩展原因:计算数据量增大,原先的两个工作节点已不不能满足实时性的需求,由于实验室计算资源有限,故将原先的调度节点也增加为计算节点,即扩展后的sparkMaster既是调度节点也是计算节点。

三、修改配置流程:cd /usr/local/spark/spark-1.0.2-bin-hadoop2/conf

                                    vim slaves 修改slaves文件,将原先只有sparkSlave1、sparkSlave2的内容增添sparkMaster,保存退出;

       (本来只需上面一步即可,但由于之前将spark-env.sh中的SPARK_WORKER_MEMORY=1g,内存过小会直接影响内存计算的容量,导致大文件频繁地读写磁盘而消耗大量时间,所以想将其修改为sparkSlave2最大的内存容量1.6g(SPARK_WORKER_MEMORY由集群中节点内存的最小值决定,也就是“木桶原理”),修改spark-env.sh文件,保存退出)


四、错误现象:master可以正常启动 ,但是worker启动时报错:

五、错误分析:分析其日志文件 cat   /usr/local/spark/spark-1.0.2-bin-hadoop2/sbin/../logs/spark-root-org.apache.spark.deploy.worker.Worker-1-zhangbo.out发现是SPARK_WORKER_MEMORY=1.6g造成的数据格式错误,这里不能用浮点数,只能使用整型,修改回原值后spark集群启动正常:

此时通过控制台也可以看见工作的worker节点由三个,说明集群扩展成功:


ps:由于作者水平有限,如有不当之处,还望读者不吝赐教!

相关内容