一、搭建好集群
二、
1、在虚拟机master上安装配置ZooKeeper
- 执行命令
tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local
,将zookeeper安装包解压到指定目录
(2)配置zookeeper环境变量
- 执行命令:
vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.5
export PATH=$ZOOKEEPER_HOME/bin:$PATH
存盘退出,执行命令:source /etc/profile
,让环境配置生效
(3)创建zookeeper数据目录
- 进入zookeeper安装目录,创建
ZkData
子目录
(4)编辑zookeeper配置文件
- 进入zookeeper配置目录conf,复制zoo_sample.cfg到zoo.cfg
执行命令:vim zoo.cfg
,修改zoo.cfg文件,配置数据目录和服务器选举id
这里的数字可以自定义
(5)在数据目录里创建myid文件
- 进入zookeeper数据目录
ZkData
,创建myid文件,内容为1
2、在虚拟机slave1上安装配置ZooKeeper
(1)分发master虚拟机上的zookeeper到slave1虚拟机
- 执行命令:
scp -r $ZOOKEEPER_HOME root@slave1:$ZOOKEEPER_HOME
(2)分发master虚拟机上的环境配置文件到slave1虚拟机
- 执行命令:
scp /etc/profile root@slave1:/etc/profile
切换到虚拟机slave1,执行命令source /etc/profile
,让配置生效
(3)修改slave1虚拟机上myid文件
- 在虚拟机slave1上,进入zookeeper数据目录,修改myid的内容为2
3、在虚拟机slave2上安装配置ZooKeeper
(1)分发master虚拟机上的zookeeper到slave2虚拟机
- 执行命令:
scp -r $ZOOKEEPER_HOME root@slave2:$ZOOKEEPER_HOME
(2)分发master虚拟机上的环境配置文件到slave2虚拟机
- 执行命令:
scp /etc/profile root@slave2:/etc/profile
切换到虚拟机slave2,执行命令source /etc/profile
,让配置生效
(3)修改slave2虚拟机上myid文件
- 在虚拟机slave2上,进入zookeeper数据目录,修改myid的内容为3
(五)启动与关闭ZooKeeper集群
1、在三台虚拟机上启动ZK服务
- 在master虚拟机上,执行命令:
zkServer.sh start
在slave1虚拟机上,执行命令:zkServer.sh start
在slave2虚拟机上,执行命令:zkServer.sh start
在三台虚拟机上查询ZK服务状态
- 在master虚拟机上,执行命令:
zkServer.sh status
在slave1虚拟机上,执行命令:zkServer.sh status
在slave2虚拟机上,执行命令:zkServer.sh status
3、测试集群三个节点是否同步
- 在虚拟机slave2上,执行命令:
zkCli.sh
,启动zk客户端,创建一个节点/zk01
然后再看另外两个节点是否已经同步
在三个虚拟机上,执行quit
命令,退出zk客户端
4、关闭三台虚拟机上的ZK服务
- 关闭master虚拟机上的ZK服务
关闭slave1虚拟机上的ZK服务
关闭slave2虚拟机上的ZK服务
(六)修改Spark环境配置文件 - spark-env.sh
1、在master节点上修改Spark环境配置文件
- 进入Spark配置目录,执行命令:
vim spark-env.sh
需要的代码:
export JAVA_HOME=/usr/local/jdk1.8.0_162
export SPARK_MASTER_PORT=7077
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181
-Dspark.deploy.zookeeper.dir=/spark"
存盘退出后,执行source spark-env.sh
,让环境配置生效
2、将master节点上Spark环境配置文件分发到slave1
- 在master上执行命令:
scp spark-env.sh root@slave1:$SPARK_HOME/conf
在slave1上执行命令:source $SPARK_HOME/conf/spark-env.sh
3、将master节点上Spark环境配置文件分发到slave2
- 在master上执行命令:
scp spark-env.sh root@slave2:$SPARK_HOME/conf
在slave2上执行命令:source $SPARK_HOME/conf/spark-env.sh