Hadoop集群HA(High Available)配置

7 篇文章 0 订阅
3 篇文章 0 订阅

配置的方法主要是对于节点的分配,与修改配置文件,按照一定的顺序启动即可。
不多说,先上角色分配表(3台机器)

多台机器请自行分配
节点分配的角色
Hadooplee1Namenode、datanode、resoucemanager、DFSZKFailorController、nodemanager、zookeeper
Hadooplee2Namenode、datanode、resoucemanager、DFSZKFailorController、nodemanager、zookeeper
Hadooplee3datanode、nodemanager、zookeeper 、journalnode

可以实现Namenode的故障自动切换。

第一步:搭建zookeeper集群

zookeeper集群的搭建见我的另一篇文章:

http://blog.csdn.net/u014762921/article/details/53028399


第二步:搭建hadoop集群

hadoop集群的搭建见我的另一篇文章:

http://blog.csdn.net/u014762921/article/details/53006600


第三步:修改配置文件:

主要配置如下:
core-site.xml(注意要删掉我的注释)

    <!-- Put site-specific property overrides in this file. -->
<configuration>
Nameservice的名字在hdfs-site中定义就可以,名字一定要一致
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://ns1</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/hadoop-2.7.2/tmp</value>
</property>
<property>
    <name>io.file.buffer.size</name>
    <value>131702</value>
</property>
    <!-- zookeeper  site -->
Zookeeper集群的地址与端口
<property>
    <name>ha.zookeeper.quorum</name>
    <value>hadooplee1:2181,hadooplee2:2181,hadooplee3:2181</value>
</property>
</configuration>

hdfs-site.xml(注意要删掉我的注释)

<configuration>
<!--nameservice    的名字,一定要与 core-site中的一致,否则出现问题-->
<property>
    <name>dfs.nameservices</name>
    <value>ns1</value>
</property>
Nameservice有两个节点 nn1 和nn2
<!-- ns have two NameNode,nn1 and nn2 -->
<property>
    <name>dfs.ha.namenodes.ns1</name>
    <value>nn1,nn2</value>
</property>

<!-- namenode1 RPC address -->
<property>
    <name>dfs.namenode.rpc-address.ns1.nn1</name>
    <value>hadooplee1:9000</value>
</property>
<!-- namenode1 http address -->
<property>
    <name>dfs.namenode.http-address.ns1.nn1</name>
    <value>hadooplee1:50070</value>
</property>

<!-- namenode2 RPC address -->
<property>
    <name>dfs.namenode.rpc-address.ns1.nn2</name>
    <value>hadooplee2:9000</value>
</property>
<!-- namenode2 http address -->
<property>
    <name>dfs.namenode.http-address.ns1.nn2</name>
    <value>hadooplee2:50070</value>
</property>
这里配置namenode的目录,必须配置,否则出现不可测错误
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/dfs/data</value>
</property>
Nomenode在journalnode的目录
<!-- NameNode data on JournalNode -->
<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://hadooplee3:8485/ns1</value>
</property>
<!-- JournalNode dir -->
Journalnode的本地目录
<property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/home/hadoop/journaldata</value>
</property>
开启自动ha切换
<!--ha  auto switch -->
<property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property>
切换方式
<!-- switch way -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>             <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
切换方法
<!-- switch method -->
<property>
     <name>dfs.ha.fencing.methods</name>
     <value>
     sshfence
      shell(/bin/true)
     </value>
    </property>
配置ssh的key,必须实现免密钥登陆,否则出错
<!-- ssh key-->
<property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
</property>

    <!--time-->
    <property>
            <name>dfs.ha.fencing.ssh.connect-timeout</name>
            <value>30000</value>
    </property>
</configuration>

yarn-site.xml(注意要删掉我的注释)

<configuration>
开启ha
<!-- ha-->
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
Resoucemanage的id
<!--RMcluster id -->
<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yrc</value>
</property>
声明resoucemanager
<!-- RM id -->
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
Resoucemanager的地址
<!-- RM address -->
<property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>hadooplee1</value>
</property>

<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>hadooplee2</value>
</property>

Zookeeper的地址与端口
 <!-- zookeeper address -->
<property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>hadooplee1:2181,hadooplee2:2181,hadooplee3:2181</value>
</property>
</configuration>

第四步:启动步骤

  1. 启动zookeeper,并检查zookeeper的状态,如果出错,会造成hadoop集群出错。

    zkServer.sh start  
    zkServer.sh status  查看zookeeper集群的状态,记得要查看每个节点
    
  2. (首次运行)启动journalnode

     hadoop-daemon.sh start journalnode  
    在你设置的journalnode上启动,非master节点,只有第一次需要如此,以后都可以用start-all来启动。
    
  3. (首次运行)格式化hdfs,在master1上运行

    hdfs namenode -format 
    格式化之后将namenode的文件下复制到你的master2上
    Scp –r /home/hadoop/dfs hadooplee2:/home/hadoop
    
  4. (首次运行)格式化zkfc,故障迁移的控制器

    hdfs zkfc -formatZK  
    
  5. 启动hdfs并检查状态

    start-dfs.sh   
    
  6. jps命令检查 进程是否启动,通过网页查看两个namenode是否启动成功。

    eg:http://hadooplee1:50070
    http://hadooplee2:50070
    

这里写图片描述

这里写图片描述

配置文件下载地址:

http://download.csdn.net/detail/u014762921/9676753

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值