• hadoop2.x hdfs完全分布式 HA 搭建


    官网链接
    hadoop配置文件主页:http://hadoop.apache.org/docs/r2.5.2/
    
    HDFS hapdoop HA全分布配置:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html
    
    总结步骤:
    准备工作:
    1.
    配置java环境变量  可以在/etc/profile 或者在/root/.bash_profile中进行配置
    2.
    配置免密码登录  特别是namenode之间可以相互免密码登录
    3.
    准备zookeeper
    a)三台zookeeper:hadoop1,hadoop2,hadoop3
    b)编辑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  (1,2,3分别为上面的server.后数字)
    
    HADOOP配置文件
    1.
    在hadoop-env.sh中配置java_home
    export JAVA_HOME=/usr/java/jdk1.7.0_79
    2.
    配置slaves:放datanode的主机映射名
    例:
        node2
        node3
        node4
    3.
    配置hdfs-site.xml
    <configuration>
        <!-- 配置服务名 -->
      <property>
          <name>dfs.nameservices</name>
          <value>xiaobing</value>
      </property>
        <!-- 配置权限关闭 可以使其他用户可以进行访问 -->
      <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
      </property>
        <!-- 给namenode命名 -->
      <property>
          <name>dfs.ha.namenodes.xiaobing</name>
          <value>nn1,nn2</value>
      </property>
        <!-- 为第一个namenode建立rpc 数据通信协议 -->
      <property>
          <name>dfs.namenode.rpc-address.xiaobing.nn1</name>
          <value>node1:8020</value>
      </property>
        <!-- 为第二个namenode建立rpc 数据通信协议 -->
      <property>
          <name>dfs.namenode.rpc-address.xiaobing.nn2</name>
          <value>node4:8020</value>
      </property>
        <!-- 为第一个namenode建立http协议 -->
      <property>
          <name>dfs.namenode.http-address.xiaobing.nn1</name>
          <value>node1:50070</value>
      </property>
        <!-- 为第二个namenode建立http协议 -->
      <property>
          <name>dfs.namenode.http-address.xiaobing.nn2</name>
          <value>node4:50070</value>
      </property>
        <!--  配置journalnode的主机名端口,随便起个文件名  -->
      <property>
          <name>dfs.namenode.shared.edits.dir</name>
          <value>qjournal://node2:8485;node3:8485;node4:8485/abcdir</value>
      </property>
        <!-- 配置failover机制 -->
      <property>
          <name>dfs.client.failover.proxy.provider.xiaobing</name>
          <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
      </property>
      <property>
          <name>dfs.ha.fencing.methods</name>
          <value>sshfence</value>
      </property>
        <!-- 配置本地私钥,使failover controller 可以ssh namenode进行检查 -->
      <property>
          <name>dfs.ha.fencing.ssh.private-key-files</name>
          <value>/root/.ssh/id_dsa</value>
      </property>
        <!-- 设置自动接管  -->
      <property>
          <name>dfs.ha.automatic-failover.enabled</name>
           <value>true</value>
      </property> 
    </configuration>
    4.配置core-site.xml
    <configuration>
        <!-- 配置访问服务名 -->
        <property>
              <name>fs.defaultFS</name>
              <value>hdfs://xiaobing</value>
        </property>
        <!-- 配置nomenode的fsimage文件生成文件位置 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/data</value>
        </property>
        <!-- 配置journalnode的edits文件存放路径 -->
        <property>
              <name>dfs.journalnode.edits.dir</name>
              <value>/opt/jn/data</value>
        </property>
        <!-- 配置zookeeper的主机名 端口 -->    
        <property>
               <name>ha.zookeeper.quorum</name>
               <value>node1:2181,node2:2181,node3:2181</value>
         </property>
    </configuration>
    5.启动所有的zookeeper  
        zkServer.sh start
    
    6.启动所有JournalNode:
        hadoop-daemon.sh start journalnode
    7.在其中任意一个namenode上格式化:hdfs namenode -format
    8.把刚刚格式化之后的元数据拷贝到另外一个namenode上
    a)启动刚刚格式化的namenode
    b)在任一没有格式化的namenode上执行:hdfs namenode -bootstrapStandby
    c)启动第二个namenode
    9.在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
    10.停止上面节点:stop-dfs.sh
    11.全面启动:start-dfs.sh
  • 相关阅读:
    input上传限定文件类型
    扫描二维码自动识别手机系统(Android/IOS)
    css/html/Javascript
    移动端容易碰到的点击穿透的坑
    洛谷P3387 【模板】缩点
    洛谷P1137 旅行计划
    洛谷P2324 [SCOI2005]骑士精神
    洛谷P2571 [SCOI2010]传送带
    BZOJ4300: 绝世好题
    [洛谷P1966] 火柴排队
  • 原文地址:https://www.cnblogs.com/bingzhikun/p/4972441.html
Copyright © 2020-2023  润新知