如何搭建Hadoop高可用集群

一、集群配置图

        在搭建集群之前,我们要考虑好集群中各个机器的配置。这里以四台机器为例,配置图如下:

集群配置图
ant151         ant152         ant153          ant154
NameNode       NameNode
DataNode       DataNode       DataNode        DataNode
NodeManager    NodeManager    NodeManager     NodeManager
                              ResourceManager ResourceManager
JournalNode    JournalNode    JournalNode
DFSZKFConler   DFSZKFConler
zk0				zk1 			zk2

         ant151,ant152,ant153,ant154为四台主机名。

        ant151,ant152分别作为主NameNode和副NameNode,当其中一个NameNode挂掉之后,可以进行主备切换。

        DataNode和NodeManager我每一台都作为节点,进行主备切换。

        ResourceManager  我设置给ant153和ant154作为主备。

        JournalNode我设置给了ant151,ant152,ant153。JournalNode相当于是NameNode守护进程,100个节点至少有3个JournalNode,100个以上则至少5个。详情请查看 journalnode的作用

        DFSZKFConler 高可用时它负责监控NN(NameNode)的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)

        zk0,zk1,zk2 为zookeeper集群中服务器ID。

二、设置各个主机

        首先创建虚拟机,配置好网络。        

        接着设置各个主机名,然后用指令bash刷新生效。

hostnamectl set-hostname ant151

        然后,关闭各个主机的防火墙

systemctl stop firewalld
systemctl disable firewalld

        之后同步各个主机的时间。先安装同步时间服务。

# 同步时间
	[root@xsqone31 ~]# yum install -y ntpdate
	[root@xsqone31 ~]# ntpdate time.windows.com
	[root@xsqone31 ~]# date

        安装完服务后使用指令

crontab -e

        输入指令,然后保存退出。

* */5 * * * /usr/sbin/ntpdate -u time.windows.com

        接着重新加载,启动定时服务

	# 重新加载
	[root@xsqone31 ~]# service crond reload
	# 启动定时任务
	[root@xsqone31 ~]# service crond start

        然后设置免密登录,先获取本机公钥

# 配置免密登录
ssh-keygen -t rsa -P ""

        获取后,将公钥传递给其他主机

# 将本地公钥拷贝到要免密登录的目标机器
ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@ant151
ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@ant152
ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@ant153
ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@ant154
# 测试
ssh -p22 主机名

        最后,为主备切换安装服务

yum install psmisc -y

三、安装JDK

        给每台机器安装JDK,并配置好文件

四、搭建zookeeper集群

        这里可以使用脚本,这里我将压缩包存入/opt/install文件夹下,解压到/opt/software文件夹下,并重命名为zk345,各位可以根据需要修改安装路径等,具体脚本如下:

#! /bin/bash
zk=true
hostname=`hostname`
if [ "$zk" = true ];then
	echo 'ZK安装开始'
	tar -zxf /opt/install/zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/software/
	mv /opt/software/zookeeper-3.4.5-cdh5.14.2 /opt/software/zk345
	cp /opt/software/zk345/conf/zoo_sample.cfg /opt/software/zk345/conf/zoo.cfg
	mkdir -p /opt/software/zk345/datas
	sed -i '12c\dataDir=/opt/software/zk345/datas' /opt/software/zk345/conf/zoo.cfg
	echo 'server.0='$hostname':2287:3387' >> /opt/software/zk345/conf/zoo.cfg
	echo "0" > /opt/software/zk345/datas/myid
	sed -i '73a\export PATH=$PATH:$ZOOKEEPER_HOME/bin' /etc/profile
	sed -i '73a\export ZOOKEEPER_HOME=/opt/software/zk345/' /etc/profile
	sed -i '73a\#ZK' /etc/profile
	source /etc/profile
	echo 'ZK安装完成'
fi

        安装完成后,需要配置zk345/datas目录下的zoo.cfg文件

vim /opt/soft/zk345/datas/zoo.cfg
# zookeeper集群的配置
	server.0=ant151:2287:3387
	server.1=ant152:2287:3387
	server.2=ant153:2287:3387
	server.3=ant154:2287:3387

        之后将配置文件和zk345传输给其他主机,传输ant152代码如下,其他略:

# 将安装目录传输给其他主机
scp -r /opt/software/zk345
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值