Spark完全分布式集群搭建

Spark完全分布式集群搭建

  • 集群规划
  • 环境准备
    • 免密登陆
    • spark安装包
    • 开放端口
  • 部署步骤
    • 把安装包上传到master服务器并解压
    • 修改spark-env.sh配置文件
    • 修改slaves配置文件
    • 把spark安装发给其它节点
    • 配置环境变量
    • 启动spark集群
    • 验证

集群规划

四台虚拟机node1做Master节点 ,node1、node2、node3做Worker节点
master 192.168.1.18
master 192.168.1.19
master 192.168.1.20
master 192.168.1.21

环境准备

免密登陆

在部署之前需要配置Master节点到Worker的免密登陆。
在master上执行

[root@master ~]# ssh -keygen -t rsa

之后会在用户的根目录生成一个 “.ssh”的文件夹
在master上将公钥(id_rsa.pub)拷贝到其它节点,包括本机

[root@master ~]# ssh-copy-id master
[root@master ~]# ssh-copy-id node1
[root@master ~]# ssh-copy-id node2
[root@master ~]# ssh-copy-id node3

在master上测试

 [root@master ~]# ssh node3

不需要输入密码即可登录

spark安装包

根据所需版本下载spark安装包,我用的版本是spark-2.2.1-bin-hadoop2.7.tgz

开放端口

默认需开放端口7077、6066、8080

部署步骤

把安装包上传到master服务器并解压

tar -zxvf spark-2.2.1-bin-hadoop2.7.tgz

修改spark-env.sh配置文件

把SPARK_HOME/conf/下的spark-env.sh.template文件复制为spark-env.sh

[root@master conf]# mv spark-env.sh.template spark-env.sh
[root@master conf]# vi spark-env.sh 
# 设置Master的主机名
export SPARK_MASTER_HOST=192.168.1.18
# 设置本机ip
#export SPARK_LOCAL_IP=192.168.1.18
# 提交Application的端口,默认7077
#export SPARK_MASTER_PORT=7077
# 每一个Worker最多可以使用的cpu core的个数
export SPARK_WORKER_CORES=8
# 每一个Worker最多可以使用的内存
export SPARK_WORKER_MEMORY=25g
# 每一个Executor最多可以使用的内存
export SPARK_EXECUTOR_MEMORY=20g
# 主节点WEB-UI展示图  默认端口是8080
#SPARK_MASTER_WEBUI_PORT=8080

修改slaves配置文件

把SPARK_HOME/conf/下的slaves.template文件复制为slaves,添加Worker的主机列表

  [root@master conf]## vi slaves
   # 里面的内容原来为localhost
    node1
    node2
    node3

把spark安装发给其它节点

把spark安装包分发给其他节点,pwd即到当前目录

[root@master data]# scp -r spark-2.2.1-bin-hadoop2.7 node1:'pwd'
[root@master data]# scp -r spark-2.2.1-bin-hadoop2.7 node2:'pwd'
[root@master data]# scp -r spark-2.2.1-bin-hadoop2.7 node3:'pwd'

配置环境变量

在集群所有节点中配置SPARK_HOME环境变量

 [root@master ~]# vi /etc/hosts
 export SPARK_HOME=/data/spark-2.2.1-bin-hadoop2.7
 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

启动spark集群

在master节点启动spark集群

[root@master conf]# ./start-all.sh

验证

在任意节点输入jps

 [root@master ~]# jps

可以看到当前机器为master或者worker

浏览器输入master:8080 可以看到集群信息

在master提交任务

 [root@master ~]#spark-submit --master spark://192.168.1.18:7077 /data/test.jar

你可能感兴趣的:(大数据,spark)