一、准备环境
-
三台虚拟机(版本CentOS7)
172.16.82.128 node1 172.16.82.129 node2 172.16.82.130 node3
-
配置ip地址映射
[root@localhost ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.82.128 node1 172.16.82.129 node2 172.16.82.130 node3
-
关闭防火墙
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
-
修改hostname
[root@localhost ~]# vim /etc/hostname node1 | node2 | node3
-
同步时钟
[root@nodeX ~]# date Tue Dec 10 11:07:17 CST 2019 -------------时钟不同步,按照如下设置--------------------- [root@nodeX ~]# date -s '2018-12-1 20:06:00' 2018年 12月 01日 星期六 20:06:00 CST root@nodeX ~]# clock -w [root@nodeX ~]# date 2018年 12月 01日 星期六 20:06:09 CST
-
配置SSH免密登录
[root@nodeX ~]# ssh-keygen -t rsa [root@nodeX ~]# ssh-copy-id node1 [root@nodeX ~]# ssh-copy-id node2 [root@nodeX ~]# ssh-copy-id node3
-
重启服务器
二、安装JDK
-
上传JDK安装包(版本JDK8.0)
-
安装
[root@nodeX ~]# rpm -ivh jdk-8u181-linux-x64.rpm [root@nodeX ~]# vi .bashrc JAVA_HOME=/usr/java/latest CLASSPATH=. PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME export CLASSPATH export PATH [root@nodeX ~]# source .bashrc
三、安装ZooKeeper集群
-
上传zookeeper安装包(版本3.4.6)
-
安装
[root@nodeX ~]# tar -zxf zookeeper-3.4.6.tar.gz -C /usr/ [root@nodeX ~]# vi /usr/zookeeper-3.4.6/conf/zoo.cfg tickTime=2000 dataDir=/root/zkdata clientPort=2181 initLimit=5 syncLimit=2 server.1=node1:2887:3887 server.2=node2:2887:3887 server.3=node3:2887:3887 [root@nodeX ~]# mkdir /root/zkdata [root@node1 ~]# echo 1 >> /root/zkdata/myid [root@node2 ~]# echo 2 >> /root/zkdata/myid [root@node3 ~]# echo 3 >> /root/zkdata/myid [root@nodeX ~]# /usr/zookeeper-3.4.6/bin/zkServer.sh start /usr/zookeeper-3.4.6/conf/zoo.cfg JMX enabled by default Using config: /usr/zookeeper-3.4.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@nodeX ~]# /usr/zookeeper-3.4.6/bin/zkServer.sh status /usr/zookeeper-3.4.6/conf/zoo.cfg
四、安装Hadoop
-
上传Hadoop安装包(版本2.9.2)
-
安装
[root@nodeX ~]# tar -zxf hadoop-2.9.2.tar.gz -C /usr [root@nodeX ~]# cd /usr/hadoop-2.9.2/ [root@nodeX hadoop-2.9.2]# ll 总用量 128 drwxr-xr-x. 2 501 dialout drwxr-xr-x. 3 501 dialout drwxr-xr-x. 2 501 dialout drwxr-xr-x. 3 501 dialout drwxr-xr-x. 2 501 dialout -rw-r--r--. 1 501 dialout -rw-r--r--. 1 501 dialout -rw-r--r--. 1 501 dialout drwxr-xr-x. 3 501 dialout drwxr-xr-x. 4 501 dialout 194 11月 13 2018 bin 20 11月 13 2018 etc 106 11月 13 2018 include 20 11月 13 2018 lib 239 11月 13 2018 libexec 106210 11月 13 2018 LICENSE.txt 15917 11月 13 2018 NOTICE.txt 1366 11月 13 2018 README.txt 4096 11月 13 2018 sbin 31 11月 13 2018 share
-
HDFS/YARN集群暂时不需要
五、安装Spark HA集群
-
上传Spark安装包(版本2.4.4)
-
安装
[root@nodeX ~]# tar -zxf spark-2.4.4-bin-without-hadoop.tgz -C /usr [root@nodeX ~]# mv /usr/spark-2.4.4-bin-without-hadoop/ /usr/spark-2.4.4 [root@nodeX ~]# cd /usr/spark-2.4.4/
-
修改配置文件
[root@nodeX spark-2.4.4]# cp conf/spark-env.sh.template conf/spark-env.sh [root@nodeX spark-2.4.4]# vim conf/spark-env.sh # 末尾添加如下配置 SPARK_WORKER_INSTANCES=1 SPARK_MASTER_PORT=7077 SPARK_WORKER_CORES=4 SPARK_WORKER_MEMORY=2g LD_LIBRARY_PATH=/usr/hadoop-2.9.2/lib/native SPARK_DIST_CLASSPATH=$(hadoop classpath) export SPARK_MASTER_HOST export SPARK_MASTER_PORT export SPARK_WORKER_CORES export SPARK_WORKER_MEMORY export LD_LIBRARY_PATH export SPARK_DIST_CLASSPATH export SPARK_WORKER_INSTANCES export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark" [root@nodeX spark-2.4.4]# cp conf/slaves.template conf/slaves [root@nodeX spark-2.4.4]# vim conf/slaves node1 node2 node3
-
添加环境变量配置
[root@nodeX ~]# vi /root/.bashrc HADOOP_HOME=/usr/hadoop-2.9.2 JAVA_HOME=/usr/java/latest SPARK_HOME=/usr/spark-2.4.4 PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin CLASSPATH=. export HADOOP_HOME export JAVA_HOME export SPARK_HOME export PATH export CLASSPATH [root@nodeX ~]# source /root/.bashrc
-
启动HA集群服务
[root@nodeX spark-2.4.4]# cp sbin/start-all.sh sbin/start-spark-all.sh [root@node1 spark-2.4.4]# start-spark-all.sh [root@node1 spark-2.4.4]# jps 76896 Worker (从) 76709 Master (主) 77947 Jps 36283 QuorumPeerMain [root@node2 spark-2.4.4]# jps 77072 Jps 33254 QuorumPeerMain 76831 Worker (从) [root@node3 spark-2.4.4]# jps 31712 QuorumPeerMain 63570 Worker 63822 Jps (从)
-
启动Master的备机
[root@node2 spark-2.4.4]# start-master.sh starting org.apache.spark.deploy.master.Master, logging to /usr/spark-2.4.4/logs/spark-root-org.apache.spark.deploy.master.Master-1-node2.out [root@node2 spark-2.4.4]# jps 33254 QuorumPeerMain 80167 Master 80331 Jps 76831 Worker
-
测试主备切换
[root@node1 spark-2.4.4]# jps 76896 Worker 76709 Master 84869 Jps 36283 QuorumPeerMain [root@node1 spark-2.4.4]# kill -9 76709 [root@node1 spark-2.4.4]# jps 76896 Worker 36283 QuorumPeerMain 85149 Jps
发现主备切换成功