• 一:系统环境配置
  • 二:软件需求
  • 三:安装zookeeper处理
  • 四:编辑hadoop 配置文件
  • 五:启动服务
  • 六:配置zookeeper自动故障转移

一:系统环境配置:

承接 在上文档hadoop 分布式的文档进行部署

二: 软件需求:

 在前环境 状态下增加zookeeper-3.4.6.tar.gz 包
上传zookeeper 包到/home/hadoop/yangyang/目录下面

三: 安装zookeeper 环境

在master.hadoop.com 上面
tar –zxvf zookeeper-3.4.6.tar.gz 
rm –rf zookeeper-3.5.6.tar.gz
mv zookeeper-3.4.6 zookeeper
cd zookeeper/conf
cp -p zoo_sample.cfg zoo.cfg
vim zoo.cfg

使用Zookeeper 部署HDFS HA 配置_第1张图片

#mkdir zookeeper/data
#echo “1” > zookeeper/data/myid
同步其它节点处理:
scp –r zoo* [email protected]:/home/hadoop/yangyang/
scp –r zoo* [email protected]:/home/hadoop/yangyang/
slave1.hadoop.com
echo “2” > zookeeper/data/myid
slave2.hadoop.com
echo “3” > zookeeper/data/myid

3.1 zookeeper 相关命令

3.1.1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
3.1.2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
3.1.3 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
3.1.4 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
3.1.5 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
3.1.6 删除文件: delete /zk 将刚才创建的 znode 删除
3.1.7 退出客户端: quit
3.1.8 帮助命令: help

master.hadoop.com 
cd /home/hadoop/yangyang/zookeeper/bin
./zkServer.sh status

2.png-23.6kB

slave1.hadoop.com
cd /home/hadoop/yangyang/zookeeper/bin
./zkServer.sh status

使用Zookeeper 部署HDFS HA 配置_第2张图片

slave2.hadoop.com

使用Zookeeper 部署HDFS HA 配置_第3张图片

Zookeeper 的进入命令窗口:
./zkCli.sh

使用Zookeeper 部署HDFS HA 配置_第4张图片

ls /

6.png-4.6kB

create /zk “yangyang”

使用Zookeeper 部署HDFS HA 配置_第5张图片
使用Zookeeper 部署HDFS HA 配置_第6张图片
使用Zookeeper 部署HDFS HA 配置_第7张图片
使用Zookeeper 部署HDFS HA 配置_第8张图片

四: 编辑改变hadoop 的配置文件

编辑core-site.xml 文件:
vim core-site.xml


      fs.defaultFS
      hdfs://mycluster
    
    
        hadoop.tmp.dir
        /home/hadoop/yangyang/hadoop/data
    

编辑hdfs-site.xml 文件:


    
       dfs.replication
       3
    
    
      dfs.nameservices
      mycluster
    
    
        dfs.ha.namenodes.mycluster
        nn1,nn2
    
#######################nn1###############################
    
      dfs.namenode.rpc-address.mycluster.nn1
      master.hadoop.com:8020
    
    
      dfs.namenode.http-address.mycluster.nn1
      master.hadoop.com:50070
    

#######################nn2###############################
    
      dfs.namenode.rpc-address.mycluster.nn2
      slave1.hadoop.com:8020
     
    
      dfs.namenode.http-address.mycluster.nn2
      slave1.hadoop.com:50070
    
#######################journal node#######################
    
        dfs.namenode.shared.edits.dir
        qjournal://master.hadoop.com:8485;slave1.hadoop.com:8485;slave2.hadoop.com:8485/mycluster
    
    
      dfs.journalnode.edits.dir
      /home/hadoop/yangyang/hadoop/data/jn
    
##########################proxy###########################
    
      dfs.client.failover.proxy.provider.mycluster
      org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    
##########################fence###########################
    
      dfs.ha.fencing.methods
      sshfence
    
    
      dfs.ha.fencing.ssh.private-key-files
      /home/hadoop/.ssh/id_rsa
    

同步所有hadoop 的配置文件:
 tar –zcvf hadoop.tar.gz hadoop
scp hadoop.tar.gz [email protected]:/home/hadoop/yangyang/
scp hadoop.tar.gz [email protected]:/home/hadoop/yangyang/

五:启动服务

   启动所有节点journalnode 节点:
  master.hadoop.com
  cd /home/hadoop/yangyang/hadoop/
  sbin/hadoop-daemon.sh start journalnode

11.png-16.2kB

  启动master.hadoop.com的namenode 与datanode
sbin/hadoop-daemon.sh start namenode 
sbin/hadoop-daemon.sh start datanode

使用Zookeeper 部署HDFS HA 配置_第9张图片
打开浏览器访问:
使用Zookeeper 部署HDFS HA 配置_第10张图片
slave1.hadoop.com 进行节点同步master.hadoop.com
bin/hdfs namenode –bootstrapStandby
使用Zookeeper 部署HDFS HA 配置_第11张图片
启动slave1.hadoop.com 节点的namenode 与datanode
sbin/hadoop-daemon.sh start namenode
15.png-11.5kB
sbin/hadoop-daemon.sh start datanode
16.png-14.6kB
使用Zookeeper 部署HDFS HA 配置_第12张图片
打开浏览器处理
使用Zookeeper 部署HDFS HA 配置_第13张图片
手动切换master.hadoop.com 为active 状态:
bin/hdfs haadmin -transitionToActive nn1
使用Zookeeper 部署HDFS HA 配置_第14张图片
创建目录与上传测试:
20.png-3.2kB
21.png-7.4kB
浏览器查看master.hadoop.com 的hdfs active 节点
使用Zookeeper 部署HDFS HA 配置_第15张图片
浏览器查看slave1.hadoop.com 的hdfs standby 节点:
使用Zookeeper 部署HDFS HA 配置_第16张图片
手动切换 将master.haoop.com 切换为standby 将slave1.hadoop.com 切换为active
master.hadoop.com:
bin/hdfs haadmin -transitionToStandby nn1
24.png-3.6kB
将slave1.hadoop.com 变为active 节点:
bin/hdfs haadmin -transitionToActive nn2
25.png-11.6kB
浏览器查看:
master.hadoop.com
使用Zookeeper 部署HDFS HA 配置_第17张图片
使用Zookeeper 部署HDFS HA 配置_第18张图片
slave1.hadoop.com浏览器查看:
使用Zookeeper 部署HDFS HA 配置_第19张图片
使用Zookeeper 部署HDFS HA 配置_第20张图片

六:配置zookeeper自动故障转移

  • 6.1. 更改配置文件
    master.hadoop .com 
    编辑core-site.xml
    在configuration 中增加
    
       ha.zookeeper.quorum
       master.hadoop.com:2181,slave1.hadoop.com:2181,slave2.hadoop.com:2181
    
    编辑hdfs-site.xml 文件
    在configuration 中 增加:
    
       dfs.ha.automatic-failover.enabled
       true
    
    • 6.2同步所有节点
      cd /home/hadoop/yangyang/hadoop/etc/hadoop/
      scp core-site.xml [email protected]:/home/hadoop/yangyang/
      hadoop/etc/hadoop/
      scp hdfs-site.xml [email protected]:/home/hadoop/yangyang/
      hadoop/etc/hadoop/
    • 6.3 停掉所有服务
      ./stop-dfs.sh
      使用Zookeeper 部署HDFS HA 配置_第21张图片
    • 6.4 启动所有节点的zookeeper
      cd /home/hadoop/yangyang/zookeeper/bin
      ./zkServer.sh start
      使用Zookeeper 部署HDFS HA 配置_第22张图片
      其他节点同样启动
      启动如master.hadoop.com 节点一样
    • 6.5 初始化ZK
      cd /home/hadoop/yangyang/hadoop/bin/
      ./hdfs zkfc –formatZK
      使用Zookeeper 部署HDFS HA 配置_第23张图片
      使用Zookeeper 部署HDFS HA 配置_第24张图片
    • 6.6 启动HDFS 与浏览器测试:
      cd /home/hadoop/yangyang/hadoop/sbin/
      ./start-dfs.sh
      使用Zookeeper 部署HDFS HA 配置_第25张图片
      jps 检查:
      master.hadoop.com
      使用Zookeeper 部署HDFS HA 配置_第26张图片
      slave1.hadoop.com
      使用Zookeeper 部署HDFS HA 配置_第27张图片
      slave2.hadoop.com
      使用Zookeeper 部署HDFS HA 配置_第28张图片
      查看浏览器:
      master.hadoop.com
      使用Zookeeper 部署HDFS HA 配置_第29张图片
      slave1.hadoop.com
      使用Zookeeper 部署HDFS HA 配置_第30张图片
    • 6.7验证故障转移:
      杀掉 master.hadoop.com 的namenode 进程
      使用Zookeeper 部署HDFS HA 配置_第31张图片
      slave1.hadoop.com
      使用Zookeeper 部署HDFS HA 配置_第32张图片
      启动master.hadoop.com 的namenode
      ./hadoop-daemon.sh start namenode
      42.png-14.5kB
      使用Zookeeper 部署HDFS HA 配置_第33张图片
      使用Zookeeper 部署HDFS HA 配置_第34张图片