• hadoop2.x HDFS HA linux环境搭建


    HDFS High Availability Using the Quorum Journal Manager

    准备3台机器可以更多

      NN  DN  ZK  ZKFC  JN  RM  DM 
    node1  1 1 1 1 1   1
    node2  1 1 1 1 1   1
    node3   1 1   1 1 1

     

    一个NN对应一个ZKFC(FailoverController)
    ZKFC为NN竞争锁,ZK采用投票机制,ZK需要奇数个
    JN 元数据存储集群

    修改hadoop配置文件

    hadoop-env.sh
    JAVA_HOME

    hdfs-site.sh

    <!-- 服务名 -->
    <property>
    <name>dfs.nameservices</name>
    <value>mycluster</value>
    </property>

    <!-- 所有NameNode名 -->
    <property>
    <name>dfs.ha.namenodes.mycluster</name>
    <value>nn1,nn2</value>
    </property>

    <!-- NameNode RPC协议 地址 -->
    <property>
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>
    <value>node1:8020</value>
    </property>
    <property>
    <name>dfs.namenode.rpc-address.mycluster.nn2</name>
    <value>node2:8020</value>
    </property>

    <!-- NameNode HTTP协议 地址 -->
    <property>
    <name>dfs.namenode.http-address.mycluster.nn1</name>
    <value>node1:50070</value>
    </property>
    <property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>node2:50070</value>
    </property>

    <!-- JournalNode 地址 -->
    <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value>
    </property>

    <!-- JAVA 客户端访问使用类 -->
    <property>
    <name>dfs.client.failover.proxy.provider.mycluster</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>

    <!-- ssh 私钥 地址 -->
    <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    </property>
    <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
    </property>

    <!-- journalnode 工作目录 -->
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/journal/node/data</value>
    </property>

    <!-- fail 后 自动切换 -->
    <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
    </property>




    core-site.xml

    <!-- NameNode 入口 -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://mycluster</value>
    </property>

    <!-- ZooKeeper 集群 -->
    <property>
    <name>ha.zookeeper.quorum</name>
    <value>node1:2181,node2:2181,node3:2181</value>
    </property>

    <!-- hadoop 工作临时目录 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop2</value>
    </property>

    修改zookeeper配置文件

    将conf/zoo_sample.cfg 改为 conf/zoo.cfg
    cp zoo_sample.cfg zoo.cfg

    dataDir=/opt/zookeeper


    server.1=node1:2888:3888
    server.2=node2:2888:3888
    server.3=node3:2888:3888

    手动创建dataDir目录
    创建文件 myid
    1/2/3

    将zookeeper 配置到环境变量
    启动 zkServer.sh start


    配置完成后

    1启动zookeeper zkServer.sh start 所有节点上都需启动
    2启动 JN 在sbin目录下 ./hadoop-daemons.sh start journalnode 所有节点上都需启动
    3在任何一个NN节点上格式化NN
     在bin目录下 ./hdfs namenode -format
    4将格式化后的元数据文件拷贝到其他 NN节点
     先将格式化好的NN 启动 ./hadoop-daemon.sh start namenode
     在没有格式化的NN节点上执行 ./hdfs namenode -bootstrapStandby
    5成功后停止hadoop所有服务sbin下 ./stop-dfs.sh
    6初始化zkfc 在其中一台NN节点上执行 bin目录下 ./hdfs zkfc -formatZK
    7再一次全部启动 ./start-dfs.sh

  • 相关阅读:
    类与对象
    最大子段和
    贪心-Wooden Sticks
    MFC改变坐标系
    Java集合不能存放基本数据类型
    关于lower_bound( )和upper_bound( )的常见用法
    数组乘法(大整数相乘)
    米勒罗宾素数测试法
    深度搜索--poj1321 棋盘问题
    memcpy复制整型数组相关
  • 原文地址:https://www.cnblogs.com/xiaolin-qian/p/8477120.html
Copyright © 2020-2023  润新知