centos7 HA高可用完全分布式hadoop集群搭建(三台机器)

1. 集群规划机器IP服务master:192.168.159.100zookeeper、namenode、datanode、ResourceManager、JournalNodeslave1:192.168.159.101zookeeper、namenode、datanode、ResourceManager、JournalNodeslave2:192.168...
摘要由CSDN通过智能技术生成
1. 集群规划
机器IP 服务
master:192.168.159.100 zookeeper、namenode、datanode、ResourceManager、JournalNode
slave1:192.168.159.101 zookeeper、namenode、datanode、ResourceManager、JournalNode
slave2:192.168.159.102 zookeeper、datanode、JournalNode
2. 安装zookeeper
2.1 zookeeper下载

推荐清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/
找到Apache 找到zookeeper 下载相应版本,注意不要踩坑,现在是19.08.29日,我想尝试最新版的zookeeper3.5.5,但是搭建好后根本没有反应,于是换了3.4.14,可能是和我的hadoop版本不兼容???我本人是hadoop2.8.5 centos7.4 ,总之不要总是追求最新的版本,最新的不一定是最好的

2.2 zookeeper的安装

下载好后解压到目录,我的是/usr/zookeeper(注意,下载过来的东西尽量不要总安装在home下,可以自己开一个专用的目录)

tar zxvf zookeeper-3.4.14.tar.gz -C /usr/zookeeper --strip-components 1

进入到conf文件夹,将里面的zoo_sample.cfg重命名zoo.cfg,修改其中的内容:

cp zoo_sample.cfg zoo.cfg

修改:

# The number of milliseconds of each tick
# 服务器与客户端之间交互的基本时间单元(ms) 
tickTime=2000   

# The number of ticks that the initial  
# synchronization phase can take 
# zookeeper所能接受的客户端数量 
initLimit=10  

# The number of ticks that can pass between  
# sending a request and getting an acknowledgement 
# 服务器和客户端之间请求和应答之间的时间间隔 
syncLimit=5

# the directory where the snapshot is stored. 
# do not use /tmp for storage, /tmp here is just  
# example sakes. 
# 保存zookeeper数据,日志的路径
dataDir=/usr/zookeeper/data

# the port at which the clients will connect 
# 客户端与zookeeper相互交互的端口 
clientPort=2181 
server.1= dn1:2888:3888 
server.2= dn2:2888:3888 
server.3= dn3:2888:3888

#server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;
C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通
信的端口。

我们紧接着在文件中追加这个路径:

mkdir /usr/zookeeper/data

然后再这个data文件夹中创建一个名为myid的文件,注意这个文件没有后缀,且名为myid不可变
这个文件用来装当前节点的id,用来在选举leader的时候进行投票,一般我们在第一个节点写1,第二个写2,第三个写3(zookeeper选举leader的过程有蛮多帖子的)

2.3 分别在各个dn节点启动zk进程,命令如下:
bin/zkServer.sh start

输入jps后会出现如下进程:

QuorumPeerMain

再执行:

bin/zkServer.sh status

会出现一个leader和两个follower。

2.4 HDFS+HA的结构图

HDFS配置HA的结构图如下所示:
  HA结构
  1. 利用共享存储来在两个NN间同步edits信息。以前的HDFS是share nothing but NN,现在NN又share storage,这样其实是转移了单点故障的位置,但中高端的存储设备内部都有各种RAID以及冗余硬件,包括电源以及网卡等,比服务器的可靠性还是略有提高。通过NN内部每次元数据变动后的flush操作,加上NFS的close-to-open,数据的一致性得到了保证。

2. DN同时向两个NN汇报块信息。这是让Standby NN保持集群的最新状态的必须步骤。

3. 用于监视和控制NN进程的FailoverController进程。显然,我们不能在NN进程内部进行心跳等信息同步,最简单的原因,一次FullGC就可以让NN挂起十几分钟,所以,必须要有一个独立的短小精悍的watchdog来专门负责监控。这也是一个松耦合的设计,便于扩展或更改,目前版本里是用ZooKeeper(简称ZK)来做同步锁,但用户可以方便的把这个Zookeeper FailoverController(简称ZKFC)替换为其他的HA方案或leader选举方案。

4. 隔离(Fencing),防止脑裂,就是保证在任何时候只有一个主NN,包括三个方面:

  1. 共享存储fencing,确保只有一个NN可以写入edits。
  2. 客户端fencing,确保只有一个NN可以响应客户端的请求。
  3. DN fencing,确保只有一个NN向DN下发命令,譬如删除块,复制块等等。
3. 搭建HAHadoop
3.1 安装hadoop

参考:https://blog.csdn.net/qq_36525906/article/details/100120144
到配置文件步骤时要回来看这里的配

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值