Spark集群搭建

昨天收到VMware的更新提示,说是一个免费的小更新,于是手欠点了升级。升级之后我的XShell就连不上虚拟机了,蓝瘦....

今天把虚拟机重新设置了一下静态ip,然后就重新改了一遍环境(02),包括Spark的集群配置。把那些设置ip的地方都改了一遍,现在我都换成了集群内的主机名并在/etc/hosts下作了ip的映射,如果再有问题直接改hosts文件就好了,其他不用动。

 Spark集群搭建

所有节点配置内容大部分相同,配置主机名/ip的地方、配置jdk环境的地方、配置根目录下tmp目录的位置,根据各个主机配置即可。

修改两个配置文件spark-env.sh 和slaves

分别将两个模板文件copy一份并改名为spark-env.sh 和slaves

[[email protected] conf]# cp spark-env.sh.template spark-env.sh

[[email protected] conf]# cp slaves.template slaves

spark-env.sh文件中添加

SPARK_LOCAL_IP=lh2hadoopAlone(当前节点的主机名、或ip)

SPARK_LOCAL_DIRS=/home/software/spark-2.0.1-bin-hadoop2.7/tmp(设置根目录下tmp目录)

export JAVA_HOME=/usr/local/java/jdk1.8.0_65(jdk环境)

更新命令

[[email protected] conf]# source spark-env.sh

添加各个节点的服务器名和ip映射

[[email protected] conf]# vim /etc/hosts

添加节点的映射

192.168.93.129 lh2hadoopAlone

192.168.93.130 hadoop01

192.168.93.131 hadoop02

slaves文件修改

#如果没有映射主机名,需要把主机名改成ip地址,修改内容(集群所有节点的主机名/ip)如下,

lh2hadoopAlone

hadoop01

hadoop02

设置免密登录

每个节点都执行

命令:ssh-******

命令:ssh-copy-id [email protected](节点名)===当前节点也要执行

到sbin目录执行启动集群,集群中第一个启动的节点默认定为主节点,其他节点会自动启动

 启动spark集群 

在spark的sbin目录中执行:sh start-all-sh命令,此时同时启动了masterworker两个进程

例:路径/home/software/spark-2.0.1-hadoop2.7-cluster/sbin下,执行命令。

Spark集群中,slave文件:配置的是从节点worker服务器列表。主节点是Master,在哪台服务器启动,哪台就启动master服务。

启动:在sbin目录执行start-all.sh启动集群时,同时启动master和worker(主从节点)。 

主节点进程:

Spark集群搭建

从节点进程:

Spark集群搭建

通过web控制台也可以验证,查看节点信息http://主节点ip:8080/,如下,一共是1个master,3个worker

Spark集群搭建

 用浏览器打开之后,将标题Spark Master at spark://lh2hadoopAlone:7077中的后半部分spark://lh2hadoopAlone:7077复制出来,作为登录集群的spark shell 的集群模式。

 

Spark集群搭建

登录操作spark集群的spark shell命令:

在spark安装目录下的bin目录执行下面命令:

[[email protected] bin]# sh spark-shell --master spark://lh2hadoopAlone:7077     

ctrl+C退出spark shell   

在分布式集群上执行spark命令,改为读取hdfs上的文件即可。