①为什么要搭建zookeeper以及zookeeper是什么?
zookeeper是用来做分布式协调的技术框架。我们最后一个模块:实时计算模块,广告流量的实时计算模块,需要用到消息队列,消息队列采取kafka,kafka底层是zookeeper,所以我们必须把zookeeper搭起来。
②拷贝文件
将zookeeper-3.4.5-cdh5.3.6.tar.gz用软件WinSCP拷贝到虚拟机sparkproject1的/usr/local/目录下面。
③解压缩tar包文件
对zookeeper-3.4.5-cdh5.3.6.tar.gz文件进行解压缩,在sparkproject1虚拟机的/usr/local/目录下输入:
tar -zxvf zookeeper-3.4.5-cdh5.3.6.tar.gz
然后在local目录下输入:ll,发现有zookeeper-3.4.5-cdh5.3.6.tar.gz文件和zookeeper-3.4.5-cdh5.3.6文件夹
删除zookeeper-3.4.5-cdh5.3.6.tar.gz文件,留下zookeeper-3.4.5-cdh5.3.6文件夹,
在local目录下输入:rm -rf zookeeper-3.4.5-cdh5.3.6.tar.gz
然后在输入:ll,发现只有zookeeper-3.4.5-cdh5.3.6文件夹、data文件夹、hadoop文件夹、hive文件夹。
④重命名
对zookeeper-3.4.5-cdh5.3.6文件夹重命名,在local目录下输入:mv zookeeper-3.4.5-cdh5.3.6 zk
⑤配置zookeeper相关的环境变量
在local目录下,输入:vi ~/.bashrc
输入键盘 i 键,插入内容:
export ZOOKEEPER_HOME=/usr/local/zk
其他export不变,但PATH的export要多点东西
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bIn:$ZOOKEEPER_HOME/bin
然后按Esc键,再输入:wq,保存退出。
然后source一下,即输入:source ~/.bashrc
⑥配置zoo.cfg文件
在sparkproject1虚拟机的/usr/local/目录下输入:cd zk/conf,进入conf目录
然后输入:ll,发现有zoo-sample.cfg文件
然后将zoo_sample.cfg文件命名为zoo.cfg文件,在conf目录下输入:mv zoo_sample.cfg zoo.cfg
然后在conf目录下输入:vi zoo.cfg
输入键盘 i 键,插入内容:
修改dataDir=......内容为:dataDir=/usr/local/zk/data
并且在文件最末尾新增内容:server.0=sparkproject1:2888:3888
server.1=sparkproject2:2888:3888
server.2=sparkproject3:2888:3888
然后按Esc,输入:wq,保存退出。
⑦设置zk节点标识
在conf目录下输入:cd ..,回到zk目录
在zk目录下输入:mkdir data,在zk目录创建data文件夹
进入data目录,在zk目录下输入:cd data/
输入:ll,发现文件夹内容为空,则正确
然后在data目录输入:vi myid
输入键盘 i 键,插入内容:0
⑧搭建zk集群
在另外两台虚拟机上(另外两个节点上)按照上述步骤配置ZooKeeper,使用scp将zk和~/.bashrc拷贝到sparkproject2和sparkproject3即可,唯一的区别是sparkproject2和3的标识号分别设置成1和2。。
1、先在sparkproject1上输入:cd ~,然后输入:cd /usr/local/,回到local目录
再在local目录输入:ll,发现有zk文件夹就对了
在sparkproject1虚拟机的local目录下输入:scp -r zk root@sparkproject2:/usr/local
然后在sparkproject1虚拟机的local目录下输入:scp ~/.bashrc root@sparkproject2 :~/
然后在sparkproject2虚拟机的local目录下输入:ll,发现有data文件夹、hadoop文件夹、zk文件夹,就对了。
再在sparkproject2虚拟机的local目录下输入:cat ~/.bashrc
里面内容有:
export JAVA_HOME=/usr/java/latest
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin
就对了
然后需要在sparkproject2虚拟机的local目录source一下,输入:source ~/.bashrc
然后在sparkproject2虚拟机上的local目录输入:cd zk/data/,进入data目录
在sparkproject2虚拟机的data目录输入:ll,发现有myid文件
再在sparkproject2虚拟机的data目录输入:vi myid
输入键盘 i 键,插入内容:
将0改为1,按Esc键,输入:wq,保存退出。
2、在sparkproject1虚拟机的local目录下(因为zk文件夹在这个目录),输入:scp -r zk root@sparkproject3:/usr/local
然后再在sparkproject1的local目录下输入:scp ~/.bashrc root@sparkproject3 :~/
然后在sparkproject3虚拟机的local目录下输入:ll,发现有data文件夹、hadoop文件夹、zk文件夹,就对了。
再在sparkproject3虚拟机的local目录下输入:cat ~/.bashrc
里面内容有:
export JAVA_HOME=/usr/java/latest
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin
就对了
然后需要在sparkproject3虚拟机的local目录source一下,输入:source ~/.bashrc
然后在sparkproject3虚拟机上的local目录输入:cd zk/data/,进入data目录
在sparkproject3虚拟机的data目录输入:ll,发现有myid文件
再在sparkproject3虚拟机的data目录输入:vi myid
输入键盘 i 键,插入内容:
将0改为2,按Esc键,输入:wq,保存退出。
⑨启动ZooKeeper集群
1、在sparkproject1虚拟机的local目录执行:zkServer.sh start
在sparkproject2虚拟机的local目录执行:zkServer.sh start
在sparkproject3虚拟机的local目录执行:zkServer.sh start
2、在sparkproject1虚拟机的local目录执行:zkServer.sh status
在sparkproject2虚拟机的local目录执行:zkServer.sh status
在sparkproject3虚拟机的local目录执行:zkServer.sh status
可以看到sparkproject1是leader,sparkproject2和3是follower。
3、在sparkproject1虚拟机的local目录执行:jps
在sparkproject2虚拟机的local目录执行:jps
在sparkproject3虚拟机的local目录执行:jps
发现三个节点都多了:QuorumPeerMain进程
来源:CSDN
作者:详见附件
链接:https://blog.csdn.net/lbh19630726/article/details/95470615