Linux安装Hadoop高可用(包含:zookeeper搭建)教程

之前自己搭建过Hadoop高可用(HA)。
最近自己整理了下也参考了些其他文章,方便自己之后再次使用,也方便大家在搭建时做一个参考。

自动HA节点有如下进程配置正确
实验环境配置如下:
hadoop01 namenode、datanode、nodemanager、journalnode、zookeeper(也就是QuorumPeerMain)
hadoop02 namenode、resourcemanager、datanode、nodemanager、journalnode、zookeeper(也就是QuorumPeerMain)
hadoop03 datanode、nodemanager、journalnode、zookeeper(也就是QuorumPeerMain)

执行步骤:

前提是已安装java环境,当前用户为root,统一系统时间 例如: date -s '日期时间'

(1)三台虚拟机主机名hadoop01 hadoop02 hadoop03
分别修改hosts文件 /etc/hosts 添加以下内容

x.x.x.x hadoop01
x.x.x.x hadoop02
x.x.x.x hadoop03

分别关闭防火墙:

chkconfig iptables off 将关闭防火墙命令设为开机启动项
service iptables stop  关闭防火墙

(2)三台虚拟机配置免登录

 hadoop01:
          ssh-keygen -t rsa 4个回车
          ssh-copy-id -i hadoop01  如果没有ssh-copy-id命令  yum install openssh-clients*
          ssh-copy-id -i hadoop02
          ssh-copy-id -i hadoop03
        hadoop02 hadoop03 分别重复hadoop01的步骤

(3)上传hadoop压缩包到hadoop01节点压缩

tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local
        配置hadoop环境变量(最后记住source文件) 可以通过hdfs来验证
            export HADOOP_HOME=/usr/local/hadoop-2.6.0
            export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

(4)修改7个配置文件,etc集群配置自动HA 基础上修改
修改对应主机名,例如crxy99 换成hadoop01
java环境变量和自己节点路径一致
具体配置文件可参考:
作者:一寸HUI
出处:https://www.cnblogs.com/zsql/

(5)上传配置文件到hadoop安装目录下的/etc/hadoop中

(6)将hadoop安装包拷贝到其他两个节点,并配置环境变量

scp -r hadoop-2.6.0 hadoop02:/usr/local
scp -r hadoop-2.6.0 hadoop03:/usr/local
分别配置 hadoop02 hadoop03的hadoop环境变量

(7)在hadoop01、hadoop02、hadoop03上搭建zookeeper集群,启动zk集群??–怎么弄?

三台都上传zookeeper-3.4.6.tar.gz  
解压: tar -zxvf -C /usr/local
修改zookeeper conf目录里面的zoo_sample.cfg改为zoo.cfg
mv zoo_sample.cfg zoo.cfg
修改zoo.cfg
dataDir=/usr/local/zookeeper-3.4.6/data
即:
找到dataDir,修改为/usr/local/zookeeper-3.4.6/data
在最底下添加一行:
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888

(8)创建myid

第一步:在三台上都执行
cd /usr/local/zookeeper-3.4.6/
mkdir data
在hadoop01上,vi /usr/local/zookeeper-3.4.6/data/myid  写上1保存退出
在hadoop02上,vi /usr/local/zookeeper-3.4.6/data/myid  写上2保存退出
在hadoop03上,vi /usr/local/zookeeper-3.4.6/data/myid  写上3保存退出

(9)启动zookeeper

zookeeper-3.4.6/bin/zkServer.sh start 三个都启动!! 然后jps有一个 QuorumPeerMain进程

(10)在三个节点都启动journalnode进程

hadoop-daemon.sh start journalnode

(11)格式化zk集群

在hadoop01上执行hdfs zkfc -formatZK

(12)格式化NameNode然后启动

在hadoop01上执行hdfs namenode -format
在hadoop01上执行hadoop-daemon.sh start namenode
在hadoop02上执行hdfs   namenode   -bootstrapStandby
在hadoop02上执行hadoop-daemon.sh start namenode

(13)启动datanode

在hadoop01上执行hadoop-daemons.sh start datanode    
在hadoop02上启动start-yarn.sh   对比各个节点的进程和本文3-5行的进程是否一样
hadoop01    namenode、datanode、nodemanager、journalnode、zookeeper(也就是QuorumPeerMain)
hadoop02    namenode、resourcemanager、datanode、nodemanager、journalnode、zookeeper(也就是QuorumPeerMain)
hadoop03    datanode、nodemanager、journalnode、zookeeper(也就是QuorumPeerMain)

(14)在namenode节点启动ZKFC

在含有NameNode进程的hadoop01、hadoop02上 启动zkfc
执行命令hadoop-daemon.sh start zkfc    jps看一下多了一个 DFSZKFailoverController进程!

(15)验证ha

网页看下hadoop01的50070和hadoop02的50070  杀掉活的(active)那一个!
看看standby状态的有没切换为active
重启杀掉的namenode,在看下状态时候自动变为standby
在被杀掉的节点执行hadoop-daemon.sh start namenode 重启namenode

之前自己安装过高可用集群,但是因为没有正确关机,后来再次启动时,竟然报错了~
(可选项)
怎么正确关机?

0. hadoop01、hadoop02 hadoop-daemon.sh stop zkfc
1. hadoop02上stop-yarn.sh
2. 主节点(active namenode所在节点)执行stop-dfs.sh    
3. 三个节点都关闭journalnode进程,命令是hadoop-daemon.sh stop journalnode
(如果还有残存进程   kill -9 pid)

参考:
https://blog.csdn.net/tiankongbubian/article/details/107583679

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值