zoukankan      html  css  js  c++  java
  • Hadoop2.7.4 yarn(HA)集群搭建步骤(CentOS7)

    群节点分配:

    Park01:Zookeeper、NameNode(active)、ResourceManager(active)

    Park02:Zookeeper、NameNode(standby)

    Park03:Zookeeper、ResourceManager(standby)

    Park04:DataNode、NodeManager、JournalNode

    Park05:DataNode、NodeManager、JouralNode

    Park06:DataNode、NodeManager、JournalNode

    安装步骤:

    0、永久关闭每台机器的防火墙

     systemctl stop firewalld.service

    1、为每台机器配置主机名(每台机器改为固定ip)

      Park01->hadoop01

      Park02->hadoop02

      Park03->hadoop03

      Park04->hadoop04

      Park05->hadoop05

      Park06->hadoop06

      修改host文件,并hostname更改主机名

    2、通过远程命令将配置好的hosts文件scp到其他5台节点上

      例:scp /etc/hosts hadoop02:/etc

    3、为每台机器配置ssh免秘登录

      ssh-keygen

      ssh-copy-id root@hadoop01(分别发送到6台节点上)

    4、前三台机器安装和配置zookeeper

      配置conf目录下的zoo.cfg以及创建myid文件(安装步骤略)

    5、为每台机器安装jdk和配置jdk环境

    6、为每台机器配置主机名

      hostnamectl set-hostname hadoop01

    7、安装和配置01节点的hadoop 

    配置 hadoop-env.sh

    配置jdk安装所在目录

    配置hadoop配置文件所在目录

    8、配置core-site.xml

    <configuration>

    <!--用来指定hdfs的老大,ns为固定属性名,表示两个namenode-->

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://ns</value>

    </property>

    <!--用来指定hadoop运行时产生文件的存放目录-->

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/home/software/hadoop-2.7.4/tmp</value>

    </property>

    <!--执行zookeeper地址-->

    <property>

    <name>ha.zookeeper.quorum</name>

    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>

    </property>

    </configuration>

    9、配置01节点的hdfs-site.xml

    <configuration>

    <!--执行hdfsnameservicens,core-site.xml保持一致-->

    <property>

    <name>dfs.nameservices</name>

    <value>ns</value>

    </property>

    <!--ns下有两个namenode,分别是nn1,nn2-->

    <property>

    <name>dfs.ha.namenodes.ns</name>

    <value>nn1,nn2</value>

    </property>

    <!--nn1RPC通信地址-->

    <property>

    <name>dfs.namenode.rpc-address.ns.nn1</name>

    <value>hadoop01:9000</value>

    </property>

    <!--nn1http通信地址-->

    <property>

    <name>dfs.namenode.http-address.ns.nn1</name>

    <value>hadoop01:50070</value>

    </property>

    <!--nn2RPC通信地址-->

    <property>

    <name>dfs.namenode.rpc-address.ns.nn2</name>

    <value>hadoop02:9000</value>

    </property>

    <!--nn2http通信地址-->

    <property>

    <name>dfs.namenode.http-address.ns.nn2</name>

    <value>hadoop02:50070</value>

    </property>

    <!--指定namenode的元数据在JournalNode上的存放位置,这样,namenode2可以 jn集群里获取

    最新的namenode的信息,达到热备的效果-->

    <property>

    <name>dfs.namenode.shared.edits.dir</name>

    <value>qjournal://hadoop04:8485;hadoop05:8485;hadoop06:8485/ns</value>

    </property>

    <!--指定JournalNode存放数据的位置-->

    <property>

    <name>dfs.journalnode.edits.dir</name>

    <value>/home/software/hadoop-2.7.4/journal</value>

    </property>

    <!--开启 namenode 故障时自动切换-->

    <property>

    <name>dfs.ha.automatic-failover.enabled</name>

    <value>true</value>

    </property>

    <!--配置切换的实现方式-->

    <property>

    <name>dfs.client.failover.proxy.provider.ns</name>

    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

    </property>

    <!--配置隔离机制-->

    <property>

    <name>dfs.ha.fencing.methods</name>

    <value>sshfence</value>

    </property>

    <!--配置隔离机制的ssh登录秘钥所在的位置-->

    <property>

    <name>dfs.ha.fencing.ssh.private-key-files</name>

    <value>/root/.ssh/id_rsa</value>

    </property>

    <!--配置namenode数据存放的位置,可以不配置,如果不配置,默认用的是

    core-site.xml里配置的hadoop.tmp.dir的路径-->

    <property>

    <name>dfs.namenode.name.dir</name>

    <value>file:///home/software/hadoop-2.7.4/tmp/namenode</value>

    </property>

    <!--配置datanode数据存放的位置,可以不配置,如果不配置,默认用的是

    core-site.xml里配置的hadoop.tmp.dir的路径-->

    <property>

    <name>dfs.datanode.data.dir</name>

    <value>file:///home/software/hadoop-2.7.4/tmp/datanode</value>

    </property>

    <!--配置block副本数量-->

    <property>

    <name>dfs.replication</name>

    <value>3</value>

    </property>

    <!--设置 hdfs 的操作权限, false 表示任何用户都可以在 hdfs 上操作文件-->

    <property>

    <name>dfs.permissions</name>

    <value>false</value>

    </property>

    </configuration>

    10、 配置 mapred-site.xml

    <configuration>

    <property>

    <!--指定mapreduce运行在yarn-->

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

    </property>

    </configuration>

    11、配置yarn-site.xml

    <configuration>

    <!--开启YARN HA -->

    <property>

    <name>yarn.resourcemanager.ha.enabled</name>

    <value>true</value>

    </property>

    <!--指定两个 resourcemanager 的名称-->

    <property>

    <name>yarn.resourcemanager.ha.rm-ids</name>

    <value>rm1,rm2</value>

    </property>

    <!--配置rm1rm2的主机-->

    <property>

    <name>yarn.resourcemanager.hostname.rm1</name>

    <value>hadoop01</value>

    </property>

    <property>

    <name>yarn.resourcemanager.hostname.rm2</name>

    <value>hadoop03</value>

    </property>

    <!--开启yarn恢复机制-->

    <property>

    <name>yarn.resourcemanager.recovery.enabled</name>

    <value>true</value>

    </property>

     

    <!--配置zookeeper的地址-->

    <property>

    <name>yarn.resourcemanager.zk-address</name>

    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>

    <description>For multiple zk services, separate them with comma</description>

    </property>

    <!--指定YARN HA的名称-->

    <property>

    <name>yarn.resourcemanager.cluster-id</name>

    <value>yarn-ha</value>

    </property>

    <property>

    <!--指定yarn的老大resoucemanager的地址-->

    <name>yarn.resourcemanager.hostname</name>

    <value>hadoop01</value>

    </property>

    <property>

    <!--NodeManager 获取数据的方式-->

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>

    </property>

    <property>

    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

    <value>org.apache.hadoop.mapred.ShuffleHandler</value>

    </property>

    </configuration>

    12、配置slaves文件

    配置代码:

    hadoop04

    hadoop05

    hadoop06

    13、配置 hadoop 的环境变量(可不配)

    JAVA_HOME=/home/software/jdk1.8

    HADOOP_HOME=/home/software/hadoop-2.7.4

    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    export JAVA_HOME PATH CLASSPATH HADOOP_HOME

    14、 根据配置文件,创建相关的文件夹,用来存放对应数据

    hadoop-2.7.4目录下创建:

    journal目录

    ②创建tmp目录

    ③在tmp目录下,分别创建namenode目录和datanode目录

    15、通过scp 命令,将hadoop安装目录远程copy到其他5台机器上

    比如向hadoop02节点传输:

    scp -r hadoop-2.7.4 hadoop02:/home/software

    Hadoop集群启动

    16、启动zookeeper集群

    Zookeeper安装目录的bin目录下执行:sh zkServer.sh start

    利用sh zkServer.sh status检查状态

    17、格式化zookeeper

    zkleader节点上执行:

    hdfs zkfc -formatZK,这个指令的作用是在zookeeper集群上生成ha节点 ns节点)

    注:18--24步可以用一步来替代:进入hadoop安装目录的sbin目录,执行: start-dfs.sh 但建议还是按部就班来执行,比较可靠。

     18、启动journalnode集群

    040506节点上执行:

    切换到hadoop安装目录的sbin目录下,执行:

    sh hadoop-daemons.sh start journalnode

    然后执行jps命令查看:

     

    19、格式化01节点的namenode

    01节点上执行:

    hadoop namenode  -format

    20、启动01节点的namenode

    01 节点上执行:

    hadoop-daemon.sh start namenode

     

    21、02节点的namenode节点变为standby namenode节点

    02节点上执行:

    hdfs namenode -bootstrapStandby

    22、启动 02 节点的 namenode 节点

    02节点上执行:

    hadoop-daemon.sh start namenode

    23、04,05,06节点上启动datanode节点

    04,05,06 节点上执行:hadoop-daemon.sh start datanode

    24、启动zkfc(启动FalioverControllerActive)

    01,02节点上执行:

    hadoop-daemon.sh start zkfc

      

    25、01节点上启动Resourcemanager

    01节点上执行:start-yarn.sh

    启动成功后,04,05,06节点上应该有nodemanager 的进程

    26、 03 节点上启动副 Resoucemanager

    03节点上执行:yarn-daemon.sh start resourcemanager

     

    27、测试

    输入地址: http://192.168.234.21:50070 ,查看 namenode 的信息,是active状态

    然后停掉01节点的namenode,此时返现standbynamenode变为active

    28、 查看 yarn 的管理地址

     http://192.168.234.21:8088(节点018088端口)

  • 相关阅读:
    vue学习第四天 ------ 临时笔记
    vue学习第三天 ------ 临时笔记
    vue学习第二天 ------ 临时笔记
    vue学习第一天 ------ 临时笔记
    vue ------ 安装和引入
    swagger-tools QuickStart
    build-your-microservices-api-with-swagger
    test-doubles-fakes-mocks-and-stubs
    swaggerhub 文档
    React Server Side Rendering
  • 原文地址:https://www.cnblogs.com/runnerjack/p/7454968.html
Copyright © 2011-2022 走看看