zoukankan      html  css  js  c++  java
  • Hadoop2.2.0 自动切换HA环境搭建

    自动切换的HA,比手动切换HA集群多了一个zookeeper集群

    机器分配:

      zookeeper:hadoop4,hadoop5,hadoop6
      namenode:hadoop4,hadoop5
      datanode:hadoop4,hadoop5,hadoop6
      journalnode:hadoop4,hadoop5,hadoop6,仅仅是为了实现HA,和集群没有任何关系,最少三个机器,奇数个
      resourcemanager:hadoop4
      nodemanager:hadoop4,hadoop5,hadoop6
      zookeeper就是实现数据之间共享的,我们把数据提交到一个节点,这时候我们就可以同时在多个节点共享,能够保证数据传上去之后,原子性

    1.1搭建zookeeper集群,启动zookeeper集群

      1.1.1 在hadoop4上解压缩,重命名为zookeeper,把conf/zoo_sample.cfg重命名为conf/zoo.cfg
        修改文件conf/zoo.cfg
        (1) dataDir=/usr/local/zookeeper/data
        (2) 增加以下内容:

          server.4=hadoop4:2888:3888
          server.5=hadoop5:2888:3888
          server.6=hadoop6:2888:3888

          创建目录 mkdir zookeeper/data
          写入文件echo 4 zookeeper/data/myid
        复制zookeeper文件夹到hadoop5,hadoop6上
        scp -rq zookeeper hadoop5:/usr/local
        scp -rq zookeeper hadoop6:/usr/local
        在hadoop5上执行echo 5 > zookeeper/data/myid
        在hadoop6上执行echo 6 > zookeeper/data/myid
      1.1.2 启动
        在hadoop4,hadoop5,hadoop6上分别执行命令: zookeeper/bin/zkServer.sh start
      1.1.3 验证:执行命令 zookeeper/bin/zkCli.sh 进入后执行 ls /

    1.2 修改配置文件,在手动切换的基础上进行修改

      core-site.xml中加入 zookeeper集群配置

    <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoop4:2181,hadoop5:2181,hadoop6:2181</value>
    </property>

      hdfs-site.xml中,启用zookeeper集群

    <property>
        <name>dfs.ha.automatic-failover.enabled.cluster1</name>
        <value>true</value>
    </property>

    1.3格式化zookeeper,使用zookeeper集群监控namenode,格式化就是把namenode集群增加到集群中。

      清空环境,脚本allmv.sh

    #!/bin/sh
    ssh hadoop4 '/usr/local/hadoop/sbin/stop-all.sh'
    for((i=4;i<=6;i++));
    do
        ssh hadoop$i 'rm -rf /usr/local/hadoop/logs/*'
        ssh hadoop$i 'rm -rf /usr/local/hadoop/tmp/*'
        echo "remove at hadoop$i"
    done

      删除其他节点的hadoop文件夹,然后把hadoop4上的hadoop文件夹复制到hadoop4、hadoop5、hadoop6节点
      在hadoop4上执行hadoop/bin/hdfs zkfc -formatZK
      格式化成功之后,可以使用zkCli.sh 客户端查看

    1.4 启动journalnode集群

      hadoop4,hadoop5,hadoop6上分别执行:
      hadoop/sbin/hadoop-daemon.sh start journalnode

    1.5 格式化namenode,启动namenode

      hadoop4上执行格式化:hadoop/bin/hdfs namenode -format
      hadoop4上执行 hadoop/sbin/hadoop-daemon.sh start namenode
      hadoop5上执行 hadoop/bin/hdfs namenode -bootstrapStandby
      hadoop5上执行 hadoop/sbin/hadoop-daemon.sh start namenode

    1.6 启动datanode

      在hadoop4上执行hadoop/sbin/hadoop-daemons.sh start datanode

    1.7 在namenode节点启动ZKFC

      在hadoop4,hadoop5节点上分别执行命令hadoop/sbin/hadoop-daemon.sh start zkfc

    1.8 启动resourcemanager和nodemanager

      在hadoop4上执行hadoop/sbin/start-yarn.sh start resourcemanager
      验证方式:hadoop0:8088

    总结:自动切换比手工切换多出来的配置和操作:

      (1) core-site.xml增加了配置项ha.zookeeper.quorum,hdfs-site.xml中吧dfs.ha.automatic-failover.enabled.cluster1改为true
      (2) 操作上格式化zk,执行命令bin/hdfs zkfc -formatZK;启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc

  • 相关阅读:
    网络连接 长连接 短链接
    提升系统的QPS和吞吐量
    QPS/TPS/并发量/系统吞吐量的概念
    spring与mybatis四种整合方法
    理解HTTP之keep-alive
    MyBatis 3 使用注解配置SQL映射器
    Dubbo -- Simple Monitor
    Dubbo后台管理和监控中心部署
    Socket通讯-Netty框架实现Java通讯
    Netty 能做什么
  • 原文地址:https://www.cnblogs.com/xiaolong1032/p/4769029.html
Copyright © 2011-2022 走看看