linux下spark(v2.2.2)的安装(完全分布式和高可用模式)

13 篇文章 0 订阅

一、完全分布式安装

前提: 已安装scala(2.11.8)、hadoop(2.7.7)

1、配置到环境变量:

vim /etc/profile(这里是修改的root的环境变量配置,一般修改~/.bash_profile个人用户下的环境变量比较稳妥)

在配置文件末尾追加上如下内容:
export SPARK_HOME=/home/hadoop/apps/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
然后source /etc/profile

2、解压spark-2.2.2-bin-hadoop2.7

cd /home/hadoop/apps 
tar -zxvf spark-2.2.2-bin-hadoop2.7.tgz  
lnspark-2.2.2-bin-hadoop2.7 spark(配置软链,要不spark的包名太长)

3、修改配置文件

3.1修改spark-env.sh

cd /home/hadoop/apps/spark/conf
mv spark-env.sh.template spark-env.sh
vi spark-env.sh

添加如下内容:

#java的home
export JAVA_HOME=/opt/jdk1.8.0_73
#scala的home
export SCALA_HOME=/home/hadoop/apps/scala-2.11.8
#主节点的master的ip地址或者hostname
export SPARK_MASTER_HOST=hadoop01
#7077的作业就相当于hdfs中9000,切忌不是50070--->8080
export SPARK_MASTER_PORT=7077
#从节点中每一个worker的cpu core的个数
export SPARK_WORKER_CORES=1
#在slaves配置中配置的每一台机器上面启动的worker的个数
export SPARK_WORKER_INSTANCES=1
#每一个worker的内存资源,配置不要超过当前机器的内存资源
#建议不要低于500m
export SPARK_WORKER_MEMORY=615m
#hadoop的conf目录
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop/etc/hadoop

3.2修改slaves配置文件

mv slaves.template slaves
给slaves文件添加两行如下记录(一定要把localhost删掉)
hadoop01
hadoop02
hadoop03

3.3部署到hadoop02和hadoop03这两台机器上(这两台机器需要提前安装scala)

scp -r /home/hadoop/apps/spark-2.2.2-bin-hadoop2.7 hadoop@hadoop02:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.2.2-bin-hadoop2.7 hadoop@hadoop03:/home/hadoop/apps/

在hadoop02和hadoop03上加载好环境变量,需要source生效
scp /etc/profile hadoop@hadoop02:/etc/profile
scp /etc/profile hadoop@hadoop03:/etc/profile

4、启动

为了避免和hadoop中的start/stop-all.sh和start-all.sh脚本发生冲突,将spark/sbin/start/stop-all.sh和start-all.sh重命名
mv start-all.sh start-spark.sh
mv stop-all.sh stop-spark.sh

4.1正式启动

start-spark.sh
会在我们配置的主节点master上启动一个进程Master
会在我们配置的从节点hadoop02上启动一个进程Worker
会在我们配置的从节点hadoop03上启动一个进程Worker

4.2验证

启动spark-shell
spark-shell
启动成功就行
在这里插入图片描述

或者:

网页访问
master的host:8080
在这里插入图片描述
说明:
8080–>spark集群的访问端口,类似于hadoop中的50070和8080的综合
4040–>sparkUI的访问地址
7077–>hadoop中的9000端口

二、基于Zookeeper的HA的配置

最好在集群停止的时候来做!!!

1、注释掉spark-env.sh中两行内容

#export SPARK_MASTER_IP=hadoop01
#export SPARK_MASTER_PORT=7077

2、在spark-env.sh中加一行内容

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop01:2181,hadoop02:2181,hadoop03:2181 -Dspark.deploy.zookeeper.dir=/spark"

解释:
spark.deploy.recoveryMode设置成 ZOOKEEPER
spark.deploy.zookeeper.urlZooKeeper URL
spark.deploy.zookeeper.dir ZooKeeper 保存恢复状态的目录,缺省为 /spark

3、发送给其他节点

scp spark-env.sh hadoop@hadoop02:/home/hadoop/apps/spark/conf/spark-env.sh
scp spark-env.sh hadoop@hadoop03:/home/hadoop/apps/spark/conf/spark-env.sh

4、重启集群(此时需要把集群zookeeper启动起来)

在任何一台spark节点上启动start-spark.sh
手动在集群中其他从节点上再启动master进程:start-master.sh,例如我们可以在hadoop02上

5、验证

通过浏览器方法 hadoop01:8080 /hadoop02:8080–>Status: STANDBY Status: ALIVE
验证HA,只需要手动停掉master上spark进程Master,等一会hadoop01上的进程Master状态会从STANDBY变成ALIVE

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值