今天分享一篇从0到1搭建Spark集群的步骤,企业中你们亦能够参照次集群搭建本身的Spark集群。html
一。下载Spark安装包java
能够从官网下载,本集群选择的版本是spark-1.6.0-bin-hadoop2.6node
在官网中找到对应的连接便可http://spark.apache.org/downloads.htmlshell
或者用本人云盘下载地址 附上连接以下连接:https://pan.baidu.com/s/1o7Vrkue 密码:sc2zapache
二。部署和规划Spark集群架构
提早准备好四台虚拟主机,三台主机 node1 node2 node4 作Spark集群 develop作Spark客户端用于提交程序jvm
集群规划以下:ide
node1 Master节点 node2,node4 Worker节点 架构图以下:oop
在此以前须要配置Master节点到Worker的免密登录由于在Master节点须要启动全部的Worker节点,全部须要配置Master到Worker的免密登录 只须要这一个免密配置便可 不须要配置woker--worker worker-master节点的免密 由于主要是在Master节点上启动集群测试
免密设置具体参考以下:http://blog.csdn.net/leexide/article/details/17252369
1.分别在三台集群下建立同名目录 (目录必定要一致,方便集群部署)
本集群环境建立为/root/spark目录
2.使用Xshell将文件上传至其中某个节点便可(没有必要上传所有节点,由于后期还要从新配置)
上传至某个节点以后,假设上传到主节点Master节点后
3.解压目录,命令和结构以下
tar -zxf spark-1.6.0-bin-hadoop2.6.tar
而后重命名 方便后期部署
mv spark-1.6.0-bin-hadoop2.6 spark-1.6.0
结构以下:
4.配置参数
进入到配置目录,路径为
/root/spark/spark-1.6.0/conf
后可看见文件以下
咱们须要把template关键字去掉 由于是个模板文件 简单介绍下文件做用:
slaves文件---worker几点所在目录
spark-default.conf目录文件 默认配置文件
spark-env.sh环境配置文件
这几个是咱们主要用的
更改后的目录文件格式以下:
配置spark-env.sh
能够看到集群配置参数以下,咱们主要配置这些参数
配置完后的截图以下:
解释一下参数意义:
SPARK_MASTER_IP=node1 #主节点主机名
SPARK_MASTER_PORT=7077 #主节点和Worker的通讯端口
SPARK_WORKER_CORES=2 # 每一个worker进程能管理两个核
SPARK_WORKER_MEMORY=2g # 每一个worker进程能管理2g内存
SPARK_MASTER_WEBUI_PORT=8888 # 主节点WEB-UI展现图 默认端口是8080
SPARK_WORKER_INSTANCES=1 #每一个worker节点可以启动的worker进程 默认是一个 若是为2 则每个worker几点可以启动2个Worker进程 就这意思
根据这配置 则 Master节点可以管路4core 4g内存(有两个Worker进程 每个worker进程管理两个核,2g内存)
配置slaves文件:配置从节点的ip 或主机名
截图以下
5.将主节点的配置分发到从节点 同名目录下
命令以下:
回到spark的主目录配置文件
而后分发到node2 node4节点 这里命令以下`pwd`即到当前目录
六、启动Spark集群:
执行安装包sbin目录下的start-all.sh脚本
./sbin/start-all.sh
7.查看集群状态
jps命令为jvm的命令与局之一 专门查看java进程
Master节点状态:
Worker节点状态:
查看WEBUI是否能访问:
注意关闭Linux的防火墙:具体操做以下
/etc/init.d/iptables status
会获得一系列信息,说明防火墙开着。
/etc/init.d/iptables stop
永久关闭:
chkconfig --level 35 iptables off
在本机访问node1:8888(别忘配置host)
至此,集群搭建成功!
8.测试集群是否可用
将主节点中的spark文件同步到客户端develop节点
在develop节点中提交spark任务 ,因为本例测试 因此直接提交spark自带测试用例 计算Pi的值
注意别忘配置Client(develop)客户端的host 由于要提交任务到Master节点(node1)节点上去运行
便可看见运行状态
在WebUI也能够看见
到此集群测试完毕!!!
持续更新中。。。。,欢迎你们关注个人公众号LHWorld.