使用Zookeeper 部署HDFS HA 配置

  • 一:系统环境配置
  • 二:软件需求
  • 三:安装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

#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

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

slave2.hadoop.com

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

ls /

create /zk “yangyang”




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

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

<property>
      <name>fs.defaultFS</name>
      <value>hdfs://mycluster</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/yangyang/hadoop/data</value>
    </property>

编辑hdfs-site.xml 文件:

<configuration>
    <property>
       <name>dfs.replication</name>
       <value>3</value>
    </property>
    <property>
      <name>dfs.nameservices</name>
      <value>mycluster</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
    </property>
#######################nn1###############################
    <property>
      <name>dfs.namenode.rpc-address.mycluster.nn1</name>
      <value>master.hadoop.com:8020</value>
    </property>
    <property>
      <name>dfs.namenode.http-address.mycluster.nn1</name>
      <value>master.hadoop.com:50070</value>
    </property>

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

同步所有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

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


打开浏览器访问:

slave1.hadoop.com 进行节点同步master.hadoop.com
bin/hdfs namenode –bootstrapStandby

启动slave1.hadoop.com 节点的namenode 与datanode
sbin/hadoop-daemon.sh start namenode

sbin/hadoop-daemon.sh start datanode


打开浏览器处理

手动切换master.hadoop.com 为active 状态:
bin/hdfs haadmin -transitionToActive nn1

创建目录与上传测试:


浏览器查看master.hadoop.com 的hdfs active 节点

浏览器查看slave1.hadoop.com 的hdfs standby 节点:

手动切换 将master.haoop.com 切换为standby 将slave1.hadoop.com 切换为active
master.hadoop.com:
bin/hdfs haadmin -transitionToStandby nn1

将slave1.hadoop.com 变为active 节点:
bin/hdfs haadmin -transitionToActive nn2

浏览器查看:
master.hadoop.com


slave1.hadoop.com浏览器查看:

六:配置zookeeper自动故障转移

  • 6.1. 更改配置文件

    master.hadoop .com
    编辑core-site.xml
    在configuration 中增加
    <property>
       <name>ha.zookeeper.quorum</name>
       <value>master.hadoop.com:2181,slave1.hadoop.com:2181,slave2.hadoop.com:2181</value>
    </property>
    编辑hdfs-site.xml 文件
    在configuration 中 增加:
    <property>
       <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
    </property>
    • 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
    • 6.4 启动所有节点的zookeeper
      cd /home/hadoop/yangyang/zookeeper/bin
      ./zkServer.sh start

      其他节点同样启动
      启动如master.hadoop.com 节点一样
    • 6.5 初始化ZK
      cd /home/hadoop/yangyang/hadoop/bin/
      ./hdfs zkfc –formatZK

    • 6.6 启动HDFS 与浏览器测试:
      cd /home/hadoop/yangyang/hadoop/sbin/
      ./start-dfs.sh

      jps 检查:
      master.hadoop.com

      slave1.hadoop.com

      slave2.hadoop.com

      查看浏览器:
      master.hadoop.com

      slave1.hadoop.com
    • 6.7验证故障转移:
      杀掉 master.hadoop.com 的namenode 进程

      slave1.hadoop.com

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


原文地址:http://blog.51cto.com/flyfish225/2096397

时间: 2024-10-08 11:39:31

使用Zookeeper 部署HDFS HA 配置的相关文章

在CDH webUI中部署HDFS HA

一.点击hdfs按钮进入hdfs配置界面 二.开始部署hdfs ha 三.分配角色 设置存储路径,这个可以自定义,我还在学习阶段我就默认了,之前改过,没起来,默认就好了: 原文地址:https://www.cnblogs.com/zhangzhide/p/11148888.html

使用QJM部署HDFS HA集群

一.所需软件 1. JDK版本 下载地址:http://www.oracle.com/technetwork/java/javase/index.html 版本: jdk-7u79-linux-x64.gz 2. Hadoop软件 下载地址:http://hadoop.apache.org/releases.html 版本: hadoop-2.6.0.tar.gz 二.配置ssh免密码登陆: 查阅之前博客:http://www.cnblogs.com/yinchengzhe/p/4967928.

HDFS HA系列实验之二:HA+JournalNode+zookeeper

1:原理图 A:NN1.NN2(或者更多个NN节点)只有一个是Active状态,通过自带ZKFailoverController组件(zookeeper客户端)和zookeeper集群协同对所有NN节点进行检测和选举来达到此目的. B:Active NN 的EditLog 写入共享的JournalNode集群中,Standby NN通过JournalNode集群获取Editlog,并在本地运行来保持和Active NN 的元数据同步. C:如果不配置zookeeper,可以手工切换Active

[转]HDFS HA 部署安装

1. HDFS 2.0 基本概念 相比于 Hadoop 1.0,Hadoop 2.0 中的 HDFS 增加了两个重大特性,HA 和 Federaion.HA 即为 High Availability,用于解决 NameNode 单点故障问题,该特性通过热备的方式为主 NameNode 提供一个备用者,一旦主 NameNode 出现故障,可以迅速切换至备 NameNode, 从而实现不间断对外提供服务.Federation 即为“联邦”,该特性允许一个 HDFS 集群中存在 多个 NameNode

3.配置HDFS HA

安装zookeeper下载zookeeper编辑zookeeper配置文件创建myid文件启动zookeeper配置HDFS HA配置手动HA配置自动HA启动HDFS HA namenode负责管理整个hdfs集群,如果namenode故障则集群将不可用.因此有必须实现namenode高可用. hdfs的高可用原理参考: HADOOP(二):hdfs 高可用原理 zookeeper简介: zookeeper集群安装 安装zookeeper 下载zookeeper 下载zookeeper并解压到/

HDFS HA架构以及源码引导

HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点.NameNode存有HDFS的元数据:主要由FSImage和EditLog组成.FSImage保存有文件的目录.分块ID.文件权限等,EditLog保存有对HDFS的操作记录.DataNode存放分块的数据,并采用CRC循环校验方式对本地的数据进行校验,DataNode周期性向NameNode汇报本机的信息. NameNode单点故障:HDFS只有一个NameNode节

HDFS HA与QJM(Quorum Journal Manager)介绍及官网内容整理

问题导读 1.HDFS HA与QJM解决了什么问题? 2.HDFS HA与QJM区别是什么? 3.在HA(两个namenode)架构下,如何访问hdfs文件? [使用QJM构建HDFS HA架构(2.2+)] 本文主要介绍HDFS HA特性,以及如何使用QJM(Quorum Journal Manager)特性实现HDFS HA. 一.背景 HDFS集群中只有一个Namenode,这就会引入单点问题:即如果Namenode故障,那么这个集群将不可用,直到Namenode重启或者其他Namenod

HDFS HA架构以及源代码引导

HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点. NameNode存有HDFS的元数据:主要由FSImage和EditLog组成. FSImage保存有文件的文件夹.分块ID.文件权限等,EditLog保存有对HDFS的操作记录. DataNode存放分块的数据,并採用CRC循环校验方式对本地的数据进行校验,DataNode周期性向NameNode汇报本机的信息. NameNode单点故障:HDFS仅仅有一个Name

搭建hadoop2.6.0 HDFS HA及YARN HA

最终结果:[[email protected] ~]$ jps12723 ResourceManager12995 Jps12513 NameNode12605 DFSZKFailoverController [[email protected] ~]$ jps12137 ResourceManager12233 Jps12009 DFSZKFailoverController11930 NameNode [[email protected] ~]$ jps12196 DataNode12322