spark集群实践以及问题总结
准备工作
- 安装虚拟机三台:192.168.55.128、192.168.55.132、192.168.55.133
- 下载spark-2.3.2-bin-hadoop2.7、scala-2.12.8、jdk1.8安装并配置环境变量,在三台机器上均需配置安装
- 在三台机器上均通过sudo apt-get install openssh-server命令安装ssh
- 预定128为master分支,设置128到另外两台机器的ssh免密登录,具体操作自行google
配置集群
Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,我们选择最具代表性的Standalone集群部署模式。配置的主要过程很简单,逻辑大概是修改master机器上的spark配置文件,maseter配置完成后,把配置好的文件家完全复制到slave机器即可:
-
进入到Spark安装目录 cd /home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/conf
2.将slaves.template复制为slaves,在其中插入slaver机器的ip即可 -
将spark-env.sh.template复制为spark-env.sh,修改添加内容为spark的主界面的ip和端口,即master的ip和spark的端口
-
修改spark-config.sh文件添加JAVA_HOME地址(不添加可能会在启动时候报java_home not set)
-
在master配置好后,把spark安装目录下完全copy到其他slaves即可
-
进入master启动 ./home/usr/local/lib/hadoop/spark-2.1.1-bin-hadoop2.7/sbin/start-all.sh
-
在浏览器打开http://192.168.55.128:8080/可以看到即为安装成功
运行spark的样例
spark有命令行运行交互方式,主要在bin目录下,shell为scale交互,sparkR为R语言的交互等等,不一一累述,具体可以自行百度,下面具体介绍spark-submit运行样例:该算法是利用蒙特·卡罗算法求PI
-
运行spark自带的样例,看到截图即为成功求出值,在浏览器界面也可以看到
root@ubuntu:/usr/local/lib/spark-2.3.2-bin-hadoop2.7/bin# ./spark-submit
–class org.apache.spark.examples.SparkPi
–master spark://192.168.55.128:7077
–executor-memory 1G
–total-executor-cores 2
/usr/local/lib/spark-2.3.2-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.3.2.jar
100
参数说明:
–master spark://master01:7077 指定Master的地址
–executor-memory 1G 指定每个executor可用内存为1G
–total-executor-cores 2 指定每个executor使用的cup核数为2个
该算法是利用蒙特·卡罗算法求PI
spark集群的过程还是比较简单明了的,其中ssh互通那块可能会遇到一点问题,我三台机器均是用root用户运行,互通也是使用root用户,有问题大家可以留言相互探讨