zoukankan      html  css  js  c++  java
  • hadoop2 环境的搭建(自动HA)

    zookeeper:hadoop112、hadoop113、hadoop114

    namenode:hadoop110和hadoop111

    datanode:hadoop112、hadoop113、hadoop114

    journalnode:hadoop110、hadoop111、hadoop112

    resourcemanager:hadoop110

    nodemanager:hadoop112、hadoop113、hadoop114

    1、搭建zk集群,并启动

    1.1、搭建zookeeper

    1.1.1、在hadoop112上解压缩,重命名为zookeeper,把conf/zoo_sample.cfg重命名为zoo.cfg

    1.1.2、修改文件conf/zoo.cfg

    dataDir=/usr/zookeeper/data

    增加以下内容

    server.112=hadoop112:2888:3888

    server.113=hadoop113:2888:3888

    server.114=hadoop114:2888:3888

    1.1.3、创建目录mkdir zookeeper/data

    1.1.4、写入节点id:echo 112 > zookeeper/data/myid

    1.1.5、复制zookeeper文件夹到hadoop113和hadoop114上

    scp /usr/zookeeper/ hadoop113:/usr/

    scp /usr/zookeeper/ hadoop114:/usr/

    在hadoop113上执行 echo 113 > zookeeper/data/myid

    在hadoop114上执行 echo 114 > zookeeper/data/myid

    1.2、启动

    在hadoop112、hadoop113、hadoop114上分别执行:

    bin/zkServer.sh start
    

      

    1.3、验证

    执行命令:

    bin/zkCli.sh
    

      

    进入后执行ls /

    2、配置文件(hadoop-env.sh、core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml)

    2.1、hadoop-env.sh

    export JAVA_HOME=/usr/jdk

    上面是我本机的路径,需要改成真实的jdk路径

    export JAVA_HOME=JDK的路径

    2.2、core-site.xml

    <configuration>
    
    <property>
    
    <name>fs.defaultFS</name>
    
    <value>hdfs://cluster1</value>
    
    </property>
    
    <!-- 设置默认的HDFS路径,有多个HDFS集群同时工作时,默认值在这里指定 -->
    
    <property>
    
    <name>hadoop.tmp.dir</name>
    
    <value>/usr/hadoop/tmp</value>
    
    </property>
    
    <!-- 设置NameNode DataNode JournalNode等存放数据的公共目录,也可以单独指定 -->

    <property>
    <name>ha.zookeeper.quorum</name>
    <value>hadoop112:2181,hadoop113:2181,hadoop114:2181</value>
    </property>
    <!-- 指定zookeeper集群 -->
    </configuration>

    2.3、hdfs-site.xml

    <configuration>
    
    <property>
    
    <name>dfs.replication</name>
    
    <value>2</value>
    
    </property>
    
    <!-- 集群中文件的副本数 -->
    
    <property>
    
    <name>dfs.nameservices</name>
    
    <value>cluster1</value>
    
    </property>
    
    <!-- 使用federation时,这里填写所有集群的别名,用逗号分隔 -->
    
    <property>
    
    <name>dfs.ha.namenodes.cluster1</name>
    
    <value>hadoop110,hadoop111</value>
    
    </property>
    
    <!-- 配置集群的NameNode几点,这里是NameNode 的别名,需要对每个NameNode再进行详细的配置-->
    
    <property>
    
    <name>dfs.namenode.rpc-address.cluster1.hadoop110</name>
    
    <value>hadoop110:9000</value>
    
    </property>
    
    <!-- 配置NameNode的RPC地址 -->
    
    <property>
    
    <name>dfs.namenode.http-address.cluster1.hadoop110</name>
    
    <value>hadoop110:50070</value>
    
    </property>
    
    <!-- 配置NameNode的HTTP地址 -->
    
    <property>
    
    <name>dfs.namenode.rpc-address.cluster1.hadoop111</name>
    
    <value>hadoop111:9000</value>
    
    </property>
    
    
    
    <property>
    
    <name>dfs.namenode.http-address.cluster1.hadoop111</name>
    
    <value>hadoop111:50070</value>
    
    </property>
    
    
    
    <property>
    
    <name>dfs.namenode.shared.edits.dir</name>
    
    <value>qjournal://hadoop110:8485;hadoop111:8485;hadoop112:8485/cluster1</value>
    
    </property>
    
    <!-- 指定集群(cluster1)的两个NameNode共享edits文件目录时使用的JournalNode集群信息 -->
    
    <property>
    
    <name>dfs.ha.automatic-failover.enabled.cluster1</name>
    <value>true</value>
    </property>
    <!-- 指定集群(cluster1)是否启动自动故障恢复,即当NameNode出故障事,是否自动切换到另一台NameNode -->
    
    <property>
    <name>dfs.client.failover.proxy.provider.cluster1</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 指定集群(cluster1)出故障时,哪个实现类负责执行故障切换 -->
    
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/usr/hadoop/tmp/journal</value>
    </property>
    <!-- 指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径 -->
    
    <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    </property>
    
    <!-- 一旦需要NameNode切换,使用ssh方式进行切换 -->
    
    <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
    </property>
    
    </configuration>

    2.4、yarn-site.xml

    <configuration>
    
    <property>
    
    <name>yarn.resourcemanager.hostname</name>
    
    <value>hadoop110</value>
    
    </property>
    
    <property>
    
    <name>yarn.nodemanager.aux-services</name>
    
    <value>mapreduce_shuffle</value>
    
    </property>
    
    </configuration>

    2.5、mapred-site.xml

    <configuration>
    
    <property>
    
    <name>mapreduce.framework.name</name>
    
    <value>yarn</value>
    
    </property>
    
    </configuration>

    2.6、slaves

    hadoop112
    
    hadoop113
    
    hadoop114

    2.7、同步修改的配置文件

    3、格式化zookeeper集群

    在hadoop110上执行

    hadoop/bin/hdfs zkfc -formatZK
    

      

    4、启动journalnode集群

    在hadoop110、hadoop111、hadoop112上分别执行:

    sbin/hadoop-daemon.sh start journalnode

     扩展

    停止journalnode

    sbin/hadoop-daemon.sh stop journalnode
    

      

    5、格式化namenode、启动namenode

    在hadoop110或者hadoop111上执行:

    bin/hdfs namenode -format
    
    sbin/hadoop-daemon.sh start namenode

    在hadoop111上执行

    bin/hdfs namenode -bootstrapStandby
    sbin/hadoop-daemon.sh start namenode

    *hadoop111的格式化,操作是关键是是把hadoop110上面的tmp/dfs下的fsimage和edit拷贝过去 

    6、启动datanode

    sbin/hadoop-daemons.sh start datanode
    

    7、启动ZKFC

    在NameNode节点上执行(hadoop110或hadoop111)执行:

    hadoop/sbin/hadoop-daemon.sh start zkfc
    

      

    8、启动resourcemanager和nodemanager

    在hadoop110或者hadoop111上执行

    sbin/yarn-daemon.sh start resourcemanager
    
    sbin/yarn-daemons.sh start nodemanager


    或者
    sbin/start-yarn.sh start resourcemanager

      

     总结:

    自动切换比手动切换多的操作:

    1、在core-site.xml配置zookeeper集群,在hdfs-site.xml中设置允许自动切换

    2、操作上,格式化zookeeper,执行命令bin/hdfs zkfc -formatZK, 启动zk,执行命令sbin/hadoop-daemon.sh start zkfc

  • 相关阅读:
    jsp 特殊标签
    poj 1753 Flip Game 高斯消元 异或方程组 求最值
    zoj 3155 Street Lamp 高斯消元 异或方程组 求方案数
    poj1222 EXTENDED LIGHTS OUT 高斯消元解异或方程组 模板
    zoj 3930 Dice Notation 模拟
    zoj 3157 Weapon 线段树求逆序对数
    hdu 1242 Rescue BFS+优先队列
    hdu 3466 Proud Merchants 贪心+01背包
    zoj 3689 Digging 贪心+01背包
    hdu 2602 Bone Collector 01背包模板
  • 原文地址:https://www.cnblogs.com/hpuCode/p/5202201.html
Copyright © 2011-2022 走看看