`

Hadoop双namenode配置搭建(HA)

 
阅读更多

转自:http://blog.csdn.net/trigl/article/details/55101826

 

配置双namenode的目的就是为了防错,防止一个namenode挂掉数据丢失,具体原理本文不详细讲解,这里只说明具体的安装过程。

Hadoop HA的搭建是基于Zookeeper的,关于Zookeeper的搭建可以查看这里 hadoop、zookeeper、hbase、spark集群环境搭建 ,本文可以看做是这篇文章的补充。这里讲一下Hadoop配置安装。

配置Hadoop文件

需要修改的配置文件在$HADOOP_HOME/etc/hadoop目录下面,具体修改内容如下:

core-site.xml

 <!-- 指定hdfs的nameservice为ns -->
 <property>
      <name>fs.defaultFS</name>
      <value>hdfs://ns</value>
 </property>
 <!--指定hadoop数据临时存放目录-->
 <property>
      <name>hadoop.tmp.dir</name>
      <value>/data/install/hadoop-2.7.3/temp</value>
 </property>

 <property>
      <name>io.file.buffer.size</name>
      <value>4096</value>
 </property>
 <!--指定zookeeper地址-->
 <property>
      <name>ha.zookeeper.quorum</name>
      <value>master1:2181,master2:2181,slave1:2181,slave2:2181,slave3:2181</value>
 </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

hdfs-site.xml

    <!--指定hdfs的nameservice为ns,需要和core-site.xml中的保持一致 -->
    <property>
        <name>dfs.nameservices</name>
        <value>ns</value>
    </property>
    <!-- ns下面有两个NameNode,分别是nn1,nn2 -->
    <property>
       <name>dfs.ha.namenodes.ns</name>
       <value>nn1,nn2</value>
    </property>
    <!-- nn1的RPC通信地址 -->
    <property>
       <name>dfs.namenode.rpc-address.ns.nn1</name>
       <value>master1:9000</value>
    </property>
    <!-- nn1的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns.nn1</name>
        <value>master1:50070</value>
    </property>
    <!-- nn2的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns.nn2</name>
        <value>master2:9000</value>
    </property>
    <!-- nn2的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns.nn2</name>
        <value>master2:50070</value>
    </property>
    <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
    <property>
         <name>dfs.namenode.shared.edits.dir</name>
         <value>qjournal://slave1:8485;slave2:8485;slave3:8485/ns</value>
    </property>
    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
    <property>
          <name>dfs.journalnode.edits.dir</name>
          <value>/data/install/hadoop-2.7.3/journal</value>
    </property>
    <!-- 开启NameNode故障时自动切换 -->
    <property>
          <name>dfs.ha.automatic-failover.enabled</name>
          <value>true</value>
    </property>
    <!-- 配置失败自动切换实现方式 -->
    <property>
            <name>dfs.client.failover.proxy.provider.ns</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔离机制,如果ssh是默认22端口,value直接写sshfence即可 -->
    <property>
             <name>dfs.ha.fencing.methods</name>
             <value>sshfence(hadoop:22022)</value>
    </property>
    <!-- 使用隔离机制时需要ssh免登陆 -->
    <property>
            <name>dfs.ha.fencing.ssh.private-key-files</name>
            <value>/home/hadoop/.ssh/id_rsa</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data/install/hadoop-2.7.3/hdfs/name</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/data/install/hadoop-2.7.3/hdfs/data</value>
    </property>

    <property>
       <name>dfs.replication</name>
       <value>2</value>
    </property>
    <!-- 在NN和DN上开启WebHDFS (REST API)功能,不是必须 -->
    <property>
       <name>dfs.webhdfs.enabled</name>
       <value>true</value>
    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80

mapred-site.xml

 <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
 </property>
  • 1
  • 2
  • 3
  • 4

yarn-site.xml

    <!-- 指定nodemanager启动时加载server的方式为shuffle server -->
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
     </property>
     <property>
            <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>
     <!-- 指定resourcemanager地址 -->
     <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master1</value>
      </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

hadoop-env.sh添加如下内容

export JAVA_HOME=/data/install/jdk
# ssh端口非默认22端口
export HADOOP_SSH_OPTS="-p 22022"
  • 1
  • 2
  • 3

yarn-env.sh添加如下内容

export JAVA_HOME=/data/install/jdk
  • 1

启动命令

注意首次初始化启动命令和之后启动的命令是不同的,首次启动比较复杂,步骤不对的话就会报错,不过之后就好了

首次启动命令

1、首先启动各个节点的Zookeeper,在各个节点上执行以下命令:

bin/zkServer.sh start
  • 1

2、在某一个namenode节点执行如下命令,创建命名空间

hdfs zkfc -formatZK
  • 1

3、在每个journalnode节点用如下命令启动journalnode

sbin/hadoop-daemon.sh start journalnode
  • 1

4、在主namenode节点用格式化namenode和journalnode目录

hdfs namenode -format ns
  • 1

5、在主namenode节点启动namenode进程

sbin/hadoop-daemon.sh start namenode
  • 1

6、在备namenode节点执行第一行命令,这个是把备namenode节点的目录格式化并把元数据从主namenode节点copy过来,并且这个命令不会把journalnode目录再格式化了!然后用第二个命令启动备namenode进程!

hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
  • 1
  • 2

7、在两个namenode节点都执行以下命令

sbin/hadoop-daemon.sh start zkfc
  • 1

8、在所有datanode节点都执行以下命令启动datanode

sbin/hadoop-daemon.sh start datanode
  • 1

日常启停命令

sbin/start-dfs.sh
sbin/stop-dfs.sh
  • 1
  • 2

测试验证

首先在浏览器分别打开两个节点的namenode状态,其中一个显示active,另一个显示standby

这里写图片描述

这里写图片描述

然后在active所在的namenode节点执行jps,杀掉相应的namenode进程

这里写图片描述

前面standby所对应的namenode变成active

这里写图片描述

2017-03-05更新 
Hadoop配置了HA,Spark也需要更改一些配置,否则会报java.net.UnknownHostException的错误,就是在$SPARK_HOME/conf/spark-defaults.conf内添加如下内容:

spark.files file:///data/install/hadoop-2.7.3/etc/hadoop/hdfs-site.xml,file:///data/install/hadoop-2.7.3/etc/hadoop/core-site.xml
  • 1

Men were born to be suffering, the pain of struggle, or the pain of regret?

 

分享到:
评论

相关推荐

    Hadoop3.0分布式集群搭建(HA)详细文档.docx

    Hadoop 3.0 分布式集群搭建(HA)详细文档 本资源摘要信息主要介绍了 Hadoop 3.0 分布式集群搭建的详细步骤和要求,从搭建前的准备工作到集群的安装和配置,涵盖了主机规划、软件规划、用户规划、数据目录规划、...

    Hadoop3以及高可用HA搭建方式.zip

    3. **配置Hadoop**:在`hdfs-site.xml`中设置HA模式,指定两个NameNode的地址,并启用ZKFailoverController。在`core-site.xml`中配置ZooKeeper的连接信息。 4. **格式化NameNode**:初次启动前,必须对每个...

    Hadoop2.0 HA集群搭建步骤

    所谓HA,即高可用,实现高可用最关键的是消除单点故障,hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA;通过双namenode消除单点故障;通过双namenode协调工作

    hadoopHA搭建资源包

    根据集群规模配置Hadoop的`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`和`mapred-site.xml`等配置文件,设置HA相关参数,如`ha.zookeeper.quorum`(ZooKeeper服务器列表)、`fs.defaultFS`(指向HA NameNode...

    hadoop2.6.4-ha集群搭建

    ### Hadoop 2.6.4 HA 集群搭建详解 #### 一、概述 在当前的大数据处理环境中,Hadoop作为一个强大的分布式计算框架,其稳定性和可用性至关重要。Hadoop 2.x版本引入了High Availability (HA)机制来确保系统在遇到...

    Hadoop HA搭建笔记和配置文件

    本笔记将深入探讨如何搭建Hadoop HA环境,并分享配置文件及其详细解读。 首先,我们要理解Hadoop HA的基本概念。HA主要涉及到两个关键组件:NameNode和ResourceManager。NameNode是HDFS的元数据管理节点,而...

    Hadoop2的HA配置一键运行脚本startall

    【标题】"Hadoop2的HA配置一键...通过这个一键运行脚本,用户可以简化繁琐的配置过程,快速搭建起一个具备HA能力的Hadoop集群,这对于大型企业或数据中心来说是非常重要的,因为它可以极大地提升服务的稳定性和可靠性。

    Hadoop2.x HA环境搭建

    ### Hadoop2.x HA环境搭建知识点详解 #### 一、HA2.0集群搭建与测试 **准备工作:** 1. **停掉之前的服务:** - 在搭建Hadoop2.x HA集群之前,需要确保所有相关的服务都已经停止运行,避免与新搭建的集群产生...

    Hadoop-ha集群搭建

    HadoopHA集群搭建描述及指令,里面有各种注意事项。 集群部署节点角色的规划(3节点) ------------------ server01 namenode resourcemanager zkfc nodemanager datanode zookeeper journal node server02 ...

    hadoop搭建

    总的来说,搭建Hadoop2完全分布式集群是一项需要细致规划和操作的工作,它要求管理员对Hadoop架构有深入理解,并且能够熟练处理Linux环境下的各种配置工作。通过以上步骤,可以确保搭建的集群能够稳定运行,充分发挥...

    Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase) 一、Hadoop HA高可用集群...通过规划服务器环境、选择合适的版本组合、安装和配置Zookeeper、Hadoop和HBase三个组件,可以搭建一个高效的Hadoop HA高可用集群。

    hadoop环境配置与搭建

    ### Hadoop环境配置与搭建详解 #### 一、前言 Hadoop作为大数据处理的核心框架,在数据处理领域占据着举足轻重的地位。对于初学者来说,熟练掌握Hadoop的基本安装与配置流程是非常重要的。本篇文章将从零开始,...

    Hadoop高可用环境搭建文档.doc

    在配置Hadoop集群时,需要修改core-site.xml文件,指定NameNode的HA高可用的ZooKeeper地址、HDFS访问的域名地址、临时文件存储目录等信息。同时,需要修改hdfs-site.xml文件,指定命名空间、NameNode通信地址、从...

    Hadoop2.6集群环境搭建(HDFS HA+YARN)

    在搭建Hadoop 2.6集群环境时,我们需要关注几个关键组件:HDFS(Hadoop Distributed File System)的高可用性(HA)以及YARN(Yet Another Resource Negotiator)。这个过程涉及多台虚拟机的配置,包括安装操作系统...

    Hadoop HA集群配置.docx

    1. **HDFS HA**:使用NameNode HA,通常配置两个活动/备用的NameNode,当主NameNode故障时,可以无缝切换到备用NameNode,确保HDFS服务不中断。 2. **YARN HA**:YARN的HA主要涉及ResourceManager的高可用性,配置...

    自己总结的hadoop HA安装流程

    - 配置NameNode的HA模式,如`dfs.nameservices=hacluster`。 - 定义每个NameNode的地址,如`dfs.ha.namenodes.hacluster=nn1,nn2`。 - 分别设置两个NameNode的地址,如`dfs.namenode.rpc-address.hacluster.nn1=...

    Hadoop HA搭建脚本资料(必读)

    4. **配置Hadoop**:修改`hdfs-site.xml`,设置HA模式,如`dfs.nameservices`定义名称服务,`dfs.ha.namenodes`指定NameNode实例,`dfs.namenode.rpc-address`和`dfs.namenode.http-address`分别设置Active和Standby...

    hadoop-2.8.1完全分布式搭建脚本和配置文件

    这个压缩包文件"hadop-2.8.1完全分布式搭建脚本和配置文件"提供了在集群环境中搭建Hadoop 2.8.1版本的详细步骤,特别强调了高可用性和自动化配置。 1. **Hadoop 2.8.1**:这是Hadoop的一个稳定版本,它包含了对HDFS...

    Hadoop 2.0部署配置文件示例.zip

    以上就是关于Hadoop 2.0部署配置文件的一些基础知识,理解这些概念和配置文件的用途对于成功搭建和维护Hadoop集群至关重要。在实际操作中,还需要根据具体需求进行微调和优化,以实现最佳的性能和稳定性。

Global site tag (gtag.js) - Google Analytics