zoukankan      html  css  js  c++  java
  • Hadoop HA 模式搭建

    一 、 Hadoop 集群架构设计

    二 、 搭建集群

    修改IP地址与hostname以及部署zookeeper、hadoop见上一篇博文《Hadoop 完全分布式搭建》。

    三 、修改配置文件

    修改nna上的core-site.xml

    <configuration>
    <!-- 指定hdfs的nameservice为ns1 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://ns1/</value>
        </property>
        <!-- 指定hadoop临时目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/zhihua/data</value>
        </property>
    
        <!-- 指定zookeeper地址 -->
        <property>
            <name>ha.zookeeper.quorum</name>
            <value>dn1:2181,dn2:2181,dn3:2181</value>
        </property>
        <property>
            <name>hadoop.proxyuser.zhihua.hosts</name>
            <value>*</value>
        </property>
        <property>
            <name>hadoop.proxyuser.zhihua.groups</name>
            <value>*</value>
        </property>
    </configuration>

    修改 hdfs-site.xml

    <configuration>
    <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
        <property>
            <name>dfs.nameservices</name>
            <value>ns1</value>
        </property>
        <!-- ns1下面有两个NameNode,分别是nna,nns -->
        <property>
            <name>dfs.ha.namenodes.ns1</name>
            <value>nna,nns</value>
        </property>
        <!-- nna的RPC通信地址 -->
        <property>
            <name>dfs.namenode.rpc-address.ns1.nna</name>
            <value>nna:9000</value>
        </property>
        <!-- nna的http通信地址 -->
        <property>
            <name>dfs.namenode.http-address.ns1.nna</name>
            <value>nna:50070</value>
        </property>
        <!-- nns的RPC通信地址 -->
        <property>
            <name>dfs.namenode.rpc-address.ns1.nns</name>
            <value>nns:9000</value>
        </property>
        <!-- nns的http通信地址 -->
        <property>
            <name>dfs.namenode.http-address.ns1.nns</name>
            <value>nns:50070</value>
        </property>
        <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
        <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://dn1:8485;dn2:8485;dn3:8485/ns1</value>
        </property>
        <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
        <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/home/zhihua/data/journaldata</value>
        </property>
        <!-- 开启NameNode失败自动切换 -->
        <property>
            <name>dfs.ha.automatic-failover.enabled</name>
            <value>true</value>
        </property>
        <!-- 配置失败自动切换实现方式 -->
        <property>
            <name>dfs.client.failover.proxy.provider.ns1</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
        <property>
            <name>dfs.ha.fencing.methods</name>
            <value>
                sshfence
                shell(/bin/true)
            </value>
        </property>
    
        <!-- 配置sshfence隔离机制超时时间 -->
        <property>
            <name>dfs.ha.fencing.ssh.connect-timeout</name>
            <value>30000</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
    
    </configuration>

    修改 mapred-site.xml

    <configuration>
    <!-- 指定mr框架为yarn方式 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>

    修改 yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    <!-- 开启RM高可用 -->
            <property>
               <name>yarn.resourcemanager.ha.enabled</name>
               <value>true</value>
            </property>
            <!-- 指定RM的cluster id -->
            <property>
               <name>yarn.resourcemanager.cluster-id</name>
               <value>cluster_id</value>
            </property>
            <!-- 指定RM的名字 -->
            <property>
               <name>yarn.resourcemanager.ha.rm-ids</name>
               <value>rm1,rm2</value>
            </property>
            <!-- 分别指定RM的地址 -->
            <property>
               <name>yarn.resourcemanager.hostname.rm1</name>
               <value>nna</value>
            </property>
            <property>
               <name>yarn.resourcemanager.hostname.rm2</name>
               <value>nns</value>
            </property>
            <property>
            <name>yarn.resourcemanager.webapp.address.rm1</name>
            <value>nna:8088</value>
            </property>
            <property>
            <name>yarn.resourcemanager.webapp.address.rm2</name>
            <value>nns:8088</value>
            </property>
            <!-- 指定zk集群地址 -->
            <property>
               <name>yarn.resourcemanager.zk-address</name>
               <value>dn1:2181,dn2:2181,dn3:2181</value>
            </property>
            <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
            </property>
    </configuration>

    分发配置文件

    1 [zhihua@nna /soft/hadoop/etc]$scp -r hadoop zhihua@nns:/soft/hadoop/etc/
    2 [zhihua@nna /soft/hadoop/etc]$scp -r hadoop zhihua@dn1:/soft/hadoop/etc/
    3 [zhihua@nna /soft/hadoop/etc]$scp -r hadoop zhihua@dn2:/soft/hadoop/etc/
    4 [zhihua@nna /soft/hadoop/etc]$scp -r hadoop zhihua@dn3:/soft/hadoop/etc/

    三 、启动集群

    3.1 格式化 Hadoop 集群

    1 [zhihua@nna /soft/hadoop/etc]$hadoop namenode -format 

    3.2 复制 Hadoop 临时目录到nns上

    1 [zhihua@nna /home/zhihua]$scp -r data zhihua@nns:/home/zhihua/

    3.3 启动zookeeper

    1 [zhihua@dn1 /soft/zk/bin]$./zkServer.sh start 
    2 [zhihua@dn2 /soft/zk/bin]$./zkServer.sh  start 
    3 [zhihua@dn3 /soft/zk/bin]$./zkServer.sh  start 

    3.4 启动 JournalNode 

    1 [zhihua@nna /home/zhihua]$hadoop-daemons.sh start journalnode 

    3.5 启动 HDFS 与 YARN 

    1 [zhihua@nna /home/zhihua]$start-dfs.sh 
    2 [zhihua@nna /home/zhihua]$start-yarn.sh 

    3.6 启动 NNS上的ResourceManager

    1 [zhihua@nns /soft/hadoop/etc/hadoop]$yarn-daemon.sh start resourcemanager

    四 、 测试集群是否部署成功

    检查nna上面的进程

    检查nns 上面的进程

    检查dn1-dn3上的进程

    webUI检查集群是否正常

     

    转载于:https://www.cnblogs.com/zhihua-he/p/10822496.html

  • 相关阅读:
    Linux下链接mysql数据库的命令
    linux cp命令参数及用法详解
    svn命令在linux下的使用
    把一个一维数组转换为in ()
    JS修改标签中的文本且不影响其中标签
    Underscore template
    JavaScript动态加载js文件
    JavaScript库基本格式写法
    JavaScript class 使用
    Uncaught TypeError: Cannot read property 'ownerDocument' of null
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/14295185.html
Copyright © 2011-2022 走看看