提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
`前天看公司的项目大数据的架构,里面除了最基本的Hadoop,还用了zookeeper,Hbase,kafka等第三方的组件,我就试着重新搭建下Hadoop里加入zookeeper,学习下这个组件主要用处
提示:以下是本篇文章正文内容,下面案例可供参考
一、zookeeper是什么?
Zookeeper 是一个开源的分布应用程序协调服务,来自于Google 一个开源的实现,是Hadoop 和HBase 的重要组件。
Zookeeper 可以为分布式应用提供一致性服务,功能包括:配置服务、名字服务、分布式同步、组服务等等。
Zookeeper 在Hadoop HA环境下的主要任务是用来做主备切换。
具体的网上有详细介绍
二、使用步骤
1.所用的环境及软件
操作系统:Windows 10
虚拟机:VMware 15.5
集群系统:Centos 7 64位
Zookeeper版本:zookeeper-3.4.10
Hadoop版本:hadoop-3.3.1
2.集群服务器规划
ip:192.168.74.88
hostname:hadoop01
software:hadoop,zookeeper
process:
DataNode,NodeManager,QuorumPeerMain,JournalNode,
NameNode,DFSZKFailoverController,ResourceManager
ip:192.168.74.89
hostname:hadoop02
software:hadoop,zookeeper
process:
DataNode,NodeManager,QuorumPeerMain,JournalNode,
NameNode,DFSZKFailoverController
ip:192.168.74.90
hostname:hadoop03
software:hadoop,zookeeper
process:
DataNode,NodeManager,JournalNode,QuorumPeerMain,
ResourceManager
3.zookeeper分布式集群
代码如下(示例):
1.zookeeper
su hadoop
cd /data/zookeeper
tar -zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 app
2.系统环境变量
gedit ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
export ZOOKEEPER_HOME=/data/zookeeper/app/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source ~/.bashrc
3.修改zoo.cfg配置
cd /data/zookeeper/app/conf
将zoo_sample.cfg拷贝一份命名zoo.cfg
scp zoo_sample.cfg zoo.cfg
vim ./zoo.cfg
gedit ./zoo.cfg
在/conf/zoo.cfg 添加,三台虚拟机上保持一致
server.88=hadoop01:2888:3888
server.89=hadoop02:2888:3888
server.90=hadoop03:2888:3888
zoo.cfg配置默认的数据存储在
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
4.修改myid
在/data/zookeeper/data 目录中新建文件 myid
hadoop01中 myid的内容 为 88, hadoop02中 myid的内容 为89, hadoop03中 myid的内容 为 90
与zoo.cfg 中保持一致
重新启动三台虚拟机的zookeeper.
zkServer.sh start
查看zookeeper的角色
zkServer.sh status
4.zookeeper+Hadoop配置
具体不多说了,详细网上:
1.配置core-site.xml
2.配置hdfs-site.xml
3.配置mapred-site.xml
4.配置yarn-site.xml
5.配置workers文件
6.分发Hadoop安装包到其他节点
5.启动HA集群
zkServer.sh start
zkServer.sh stop
zkServer.sh status
hdfs --daemon start journalnode
hdfs --daemon stop journalnode
hadoop01:hdfs namenode -format
hadoop01:hdfs --daemon start namenode
hadoop02:hdfs namenode -bootstrapStandby
hadoop02:hdfs --daemon start namenode
两个namenode启动完成后,接着给三台主机都启动datanode,使用命令
hadoop01:hdfs --daemon start datanode
hadoop02:hdfs --daemon start datanode
hadoop03:hdfs --daemon start datanode
格式化ZKFC
hdfs zkfc -formatZK
启动ZKFC,使用命令
hdfs --daemon start zkfc
stop-all.sh
start-all.sh
至此Hadoop HA搭建完成
http://192.168.74.88:9870 (standby)从
http://192.168.74.89:9870 (active)主
NameNode主备自动切换
总结
记录点点滴滴