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命令,此时同时启动了master和worker两个进程。
例:路径/home/software/spark-2.0.1-hadoop2.7-cluster/sbin下,执行命令。
Spark集群中,slave文件:配置的是从节点worker服务器列表。主节点是Master,在哪台服务器启动,哪台就启动master服务。
启动:在sbin目录执行start-all.sh启动集群时,同时启动master和worker(主从节点)。
主节点进程:
从节点进程:
通过web控制台也可以验证,查看节点信息http://主节点ip:8080/,如下,一共是1个master,3个worker
用浏览器打开之后,将标题Spark Master at spark://lh2hadoopAlone:7077中的后半部分spark://lh2hadoopAlone:7077复制出来,作为登录集群的spark shell 的集群模式。
登录操作spark集群的spark shell命令:
在spark安装目录下的bin目录执行下面命令:
[[email protected] bin]# sh spark-shell --master spark://lh2hadoopAlone:7077
ctrl+C退出spark shell
在分布式集群上执行spark命令,改为读取hdfs上的文件即可。