HDFS High Availability Using the Quorum Journal Manager

准备3台机器可以更多

  NN  DN  ZK  ZKFC  JN  RM  DM 
node1  1 1 1 1 1   1
node2  1 1 1 1 1   1
node3   1 1   1 1 1

一个NN对应一个ZKFC(FailoverController)
ZKFC为NN竞争锁,ZK采用投票机制,ZK需要奇数个
JN 元数据存储集群

修改hadoop配置文件

hadoop-env.sh
JAVA_HOME

hdfs-site.sh

<!-- 服务名 -->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>

<!-- 所有NameNode名 -->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>

<!-- NameNode RPC协议 地址 -->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>node1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node2:8020</value>
</property>

<!-- NameNode HTTP协议 地址 -->
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node2:50070</value>
</property>

<!-- JournalNode 地址 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
</property>

<!-- JAVA 客户端访问使用类 -->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<!-- ssh 私钥 地址 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>

<!-- journalnode 工作目录 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/journal/node/data</value>
</property>

<!-- fail 后 自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

core-site.xml

<!-- NameNode 入口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>

<!-- ZooKeeper 集群 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>

<!-- hadoop 工作临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop2</value>
</property>

修改zookeeper配置文件

将conf/zoo_sample.cfg 改为 conf/zoo.cfg
cp zoo_sample.cfg zoo.cfg

dataDir=/opt/zookeeper

server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

手动创建dataDir目录
创建文件 myid
1/2/3

将zookeeper 配置到环境变量
启动 zkServer.sh start

配置完成后

1启动zookeeper zkServer.sh start 所有节点上都需启动
2启动 JN 在sbin目录下 ./hadoop-daemons.sh start journalnode 所有节点上都需启动
3在任何一个NN节点上格式化NN
 在bin目录下 ./hdfs namenode -format
4将格式化后的元数据文件拷贝到其他 NN节点
 先将格式化好的NN 启动 ./hadoop-daemon.sh start namenode
 在没有格式化的NN节点上执行 ./hdfs namenode -bootstrapStandby
5成功后停止hadoop所有服务sbin下 ./stop-dfs.sh
6初始化zkfc 在其中一台NN节点上执行 bin目录下 ./hdfs zkfc -formatZK
7再一次全部启动 ./start-dfs.sh

hadoop2.x HDFS HA linux环境搭建的更多相关文章

  1. Linux环境下HDFS集群环境搭建关键步骤

    Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...

  2. Hadoop2.5.0伪分布式环境搭建

    本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...

  3. 大数据:Hadoop(JDK安装、HDFS伪分布式环境搭建、HDFS 的shell操作)

    所有的内容都来源与 Hadoop 官方文档 一.Hadoop 伪分布式安装步骤 1)JDK安装 解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app 添加到系 ...

  4. Hadoop-2.4.1完全分布式环境搭建

      Hadoop-2.4.1完全分布式环境搭建   Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...

  5. HDFS 伪分布式环境搭建

    HDFS 伪分布式环境搭建 作者:Grey 原文地址: 博客园:HDFS 伪分布式环境搭建 CSDN:HDFS 伪分布式环境搭建 相关软件版本 Hadoop 2.6.5 CentOS 7 Oracle ...

  6. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

  7. 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统

    上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...

  8. Windows及Linux环境搭建Redis集群

    一.Windows环境搭建Redis集群 参考资料:Windows 环境搭建Redis集群 二.Linux环境搭建Redis集群 参考资料:Redis Cluster的搭建与部署,实现redis的分布 ...

  9. Linux(一)-- Linux环境搭建

    Linux环境搭建 一.虚拟机安装 1.下载地址 https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmwar ...

随机推荐

  1. [UVa-437] Color Length

    无法用复杂状态进行转移时改变计算方式:巧妙的整体考虑:压缩空间优化时间 传送门:$>here<$ 题意 给出两个字符串a,b,可以将他们穿插起来(相对位置不变).要求最小化ΣL(c),其中 ...

  2. HTML&CSS_基础03

    一.Meta标签: 1.可以设置网页的关键字 2.用来指定网页描述 3.可以用来网页重定向 具体参数参见:http://www.w3school.com.cn/html5/tag_meta.asp 二 ...

  3. 【LOJ#3096】[SNOI2019]数论

    [LOJ#3096][SNOI2019]数论 题面 LOJ 题解 考虑枚举一个\(A\),然后考虑有多少个合法的\(B\). 首先这个数可以写成\(a_i+kP\)的形式,那么它模\(Q\)的值成环. ...

  4. crontab计划任务实例

    使用实例 实例1:每1分钟执行一次command 命令: * * * * * command 实例2:每小时的第3和第15分钟执行 命令: 3,15 * * * * command 实例3:在上午8点 ...

  5. django csrftoken

    CSRF(跨站请求伪造) 背景知识:浏览器在发送请求的时候,会自动带上当前域名对应的cookie内容,发送给服务端,不管这个请求是来源A网站还是其它网站,只要请求的是A网站的链接,就会带上A网站的co ...

  6. react 16 ssr的重构踩坑

    ssr 服务端不能识别前端的window.特别是首屏渲染的数据需要用到window对象(比如href += location.search); 服务端不能加载图片,css文件. require.ext ...

  7. mac下安装gradle

    安装 gradle brew install gradle 配置Path环境 vim .bash_profile // 写入 export PATH="${PATH}:/usr/local/ ...

  8. mysql函数调用过程

    1.conn = mysql_init(NULL);//初始化  MYSQL *conn; 2.mysql_real_connect(conn, "localhost", &quo ...

  9. 2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp2 后门原理与实践 1. 后门原理与实践实验说明及预备知识 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 ( ...

  10. 使Python走向Effective系列目录

    Effective以一词,并不单单局限于执行速度层面的高效率,同时有着令代码易于阅读.易于测试且易于维护等意思,此外,它还蕴藏着易于扩展.易于修改和易于多人协作等更为高阶的理念.如果能够通过一些具体的 ...