采用的是4台真实机器:

namenode:qzhong  node27

datanode:qzhong node27 node100 node101

操作系统环境:qzhong(Ubuntu-14.0) node27、node100、node101(CentOS 64bits)

HA配置方式:采用的是journalNode方式,而不是采用NFS方式

hdfs-site.xml:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. --> <configuration> <property>
<name>dfs.nameservices</name>
<value>mycluster</value>
<description>This is the nameservices, similiar to hadoop federation</description>
</property> <property>
<name>dfs.ha.namenodes.mycluster</name>
<value>qzhong,node27</value>
</property> <property>
<name>dfs.namenode.rpc-address.mycluster.qzhong</name>
<value>qzhong:8020</value>
</property> <property>
<name>dfs.namenode.rpc-address.mycluster.node27</name>
<value>node27:8020</value>
</property> <property>
<name>dfs.namenode.http-address.mycluster.qzhong</name>
<value>qzhong:50070</value>
</property> <property>
<name>dfs.namenode.http-address.mycluster.node27</name>
<value>node27:50070</value>
</property> <property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node27:8485;node100:8485;node101:8485/mycluster</value>
</property> <property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property> <property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/qzhong/journalnodeedit</value>
</property> <property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property> <property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/qzhong/.ssh/id_rsa</value>
</property> <property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property> <property>
<name>ha.zookeeper.quorum</name>
<value>qzhong:2181,node27:2181,node100:2181</value>
</property> <property>
<name>dfs.hosts</name>
<value>/home/qzhong/hadoop-2.2.0/etc/hadoop/slaves</value>
</property> <property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property> <property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property> <property>
<name>dfs.datanode.data.dir</name>
<value>/home/qzhong/hadoopjournaldata</value>
</property> <property>
<name>dfs.replication</name>
<value>3</value>
</property> </configuration>

core-site.xml:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. --> <configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://mycluster</value>
</property> <property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>

配置完成后启动方式:

按照apache hadoop官网配置HA启动方式:http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithQJM.html

刚开始配置启动时,

1、首先需要在机器上启动journalNode进程

2、格式化Namenode,命令(bin/hdfs namenode -format),格式化后启动cluster,命令(sbin/start-dfs.sh)

3、在另外一个备用的Namanode节点上执行命令,bin/hdfs namenode -bootstrapStandby

使用命令查看namenode节点状态,bin/hdfs haadmin -getServiceState qzhong 如果为standby,再查看另外一个namenode, 使用命令bin/hdfs haadmin -getServiceState node27, 如果也为standby,则说明此时无法提供服务,需要手动切换namenode状态,在这里使用命令切换qzhong这个namenode为active,命令bin/hdfs haadmin -transitionToActive qzhong,此时HDFS可以提供服务。

此时的HA配置无法自动切换故障,需要配置zookeeper参数,同时此时的HDFS集群如果无法使用,安装apache官网配置:http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithQJM.html

所有都配置完成之后,以后就可以自动切换故障,可以测试,停止一个namenode进程,命令sbin/hadoop-daemon.sh --config etc/hadoop stop namenode ,然后通过bin/hdfs haadmin -getServiceState [qzhong|node27] 查看各个namenode的状态,看另外一个是否切换为active,正常的话应该为active

hadoop-2.2.0 HA配置的更多相关文章

  1. 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

    菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...

  2. 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章

    菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...

  3. Hadoop 2.2.0 HA构造

    在这篇文章中<Ubuntu和CentOS分布式配置Hadoop-2.2.0>介绍hadoop 2.2.0最主要的配置.hadoop 2.2.0中提供了HA的功能,本文在前文的基础上介绍ha ...

  4. hadoop2.5.0 HA高可用配置

    hadoop2.5.0 HA配置 1.修改hadoop中的配置文件 进入/usr/local/src/hadoop-2.5.0-cdh5.3.6/etc/hadoop目录,修改hadoop-env.s ...

  5. 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置

    Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了.这是 ...

  6. hadoop 2.0安装及HA配置简述

    一.单机模式 a.配置本机到本机的免密登录 b.解压hadoop压缩包,修改hadoop.env.sh中的JAVA_HOME c.修改core-site.xml <configuration&g ...

  7. hadoop 2.2.0集群安装详细步骤(简单配置,无HA)

    安装环境操作系统:CentOS 6.5 i586(32位)java环境:JDK 1.7.0.51hadoop版本:社区版本2.2.0,hadoop-2.2.0.tar.gz 安装准备设置集群的host ...

  8. hadoop-2.2.0 的编译安装及HA配置

    一 准备工作 准备工作中要求有 1.centOs 6.4,添加hadoop用户,配置集群内的/etc/hosts文件. 2.安装hadoop用户的ssh,并打通集群内所有机器,(ha执行fencing ...

  9. Hadoop 2.2.0 4结点集群安装 非HA

    总体介绍 虚拟机4台,分布在1个物理机上,配置基于hadoop的集群中包括4个节点: 1个 Master, 3个 Salve,i p分布为: 10.10.96.33 hadoop1 (Master) ...

随机推荐

  1. vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于“=”.“d”.“y”,我在无意中发现了它们所具有的相同的一些用法,先举以下三个例子: =nG dnG ynG 其中,n为行号.注意 ...

  2. Java泛型拾遗

    先上百度百科的解释 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方 ...

  3. JS之setTimeOut与clearTimeOut

    小练习1:针对HTML,分别使用 setTimeout 和 setInterval 实现以下功能: 点击按钮时,开始改变 fade-obj 的透明度,开始一个淡出(逐渐消失)动画,直到透明度为0 在动 ...

  4. Magisk+Xposed+Root switch+Pokémon GO

    If you follow Android Police, there's a good chance you've got a rooted device, whether it be an eas ...

  5. Python爬虫教程-21-xpath 简介

    本篇简单介绍 xpath 在python爬虫方面的使用,想要具体学习 xpath 可以到 w3school 查看 xpath 文档 xpath文档:http://www.w3school.com.cn ...

  6. Android 6.0+ 运行时权限

    1.权限被分为了普通和危险两种 2.打电话的Demo import android.Manifest; import android.app.Activity; import android.cont ...

  7. Linux系统下安装Gitlab

    Linux系统下安装Gitlab 一.简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与 ...

  8. 使用SDL2出现 “error LNK2019: 无法解析的外部符号 _SDL_main,该符号在函数 _main 中被引用” 时的可能错误记录

    这几天在使用SDL2,之前一直都没有错,直到上午把项目搬了个地方.结果一直出现 “error LNK2019: 无法解析的外部符号 _SDL_main,该符号在函数 _main 中被引用” . 看了网 ...

  9. Android学习——ListView的缓存机制

    在使用ListView的时候,需要加载适配器和数据源,这篇文章主要介绍一下ListView的使用以及利用ListView的缓存机制来减少系统的初始化时间. ListView的使用 ListView和V ...

  10. Android笔记——Socket通信实现简单聊天室

    两部分,客户端和服务端 ---------------------------------------------------------------- 客户端  1.为防止ANR异常,互联网连接可用 ...