美文网首页
手动部署Hadoop2分布式集群和YARN集群管理命令

手动部署Hadoop2分布式集群和YARN集群管理命令

作者: 任总 | 来源:发表于2019-03-30 23:45 被阅读0次

    一、手动部署集群

    • 安装多个节点Hadoop-YARN集群与安装单个节点(伪分布式模型)的方式类似。集群模型中,主节点的配置方式与单节点相同,除了需要将主机地址改为相应的节点地址;对于从节点来说,将主节点的安装目录直接复制到从节点,并配置好所需要的目录和环境变量即可。配置完成后,可由主节点启动整个集群,也可以手动启动各节点上的相应的服务。
      所有节点同步时间
    实验环境
    • 示例有一个主节点和三个从节点的Hadoop-YARN集群。集群中所用的各节点必须有个唯一的主机名和ip地址,并能够基于主机互相通信。如果没有配合用的dns服务,这里可以通过/etc/hosts文件进行解析。
      主节点:192.168.1.60 主机名:node60
      从节点1:192.168.1.61 主机名: node61
      从节点2:192.168.1.62 主机名:node62
      从节点3:192.168.1.63 主机名:node63

    1、所有节点编辑名称解析

    ~]# vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.60 node60.hehe.com node60 master
    192.168.1.61 node61.hehe.com node61
    192.168.1.62 node62.hehe.com node62
    192.168.1.63 node63.hehe.com node63
    
    

    2、所有节点安装jdk-devel并配置java环境

    ~]# yum install java-1.8.0-openjdk-devel -y
    
    #设置环境变量
     ~]# vim /etc/profile.d/java.sh
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    
    ~]# . /etc/profile.d/java.sh
    
    #验证版本
     ~]# java -version
    openjdk version "1.8.0_191"
    OpenJDK Runtime Environment (build 1.8.0_191-b12)
    OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
    

    3、所有节点创建hadoop用户和组

    ~]# useradd hadoop
    ~]# echo '12345' | passwd --stdin hadoop
    
    

    4、master主节点生成秘钥

    • 用master主节点启动和停止整个集群,还需要master节点上配置用于运行服务的用户能以秘钥认证的方式通过ssh远程连接至各从节点。
    [root@node-60 ~]# su - hadoop
    [hadoop@node-60 ~]$ ssh-keygen -t rsa -P ''
    .........
    +---[RSA 2048]----+
    | oo+oo.oo.       |
    |  o.. +.o+       |
    | .  . ooo.o      |
    |  .. = X +.      |
    | .. + = S.o      |
    |++   . oo=.E     |
    |=.  . . .*+      |
    |     . .= .o     |
    |      .ooo.      |
    +----[SHA256]-----+
    
    #同步到其他节点,别忘了给自己分发
    [hadoop@node-60 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@node60
    [hadoop@node-60 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@node61
    [hadoop@node-60 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@node62
    [hadoop@node-60 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@node63
    
    #测试是否成功
    [hadoop@node-60 ~]$ ssh node61 'date'
    Fri Mar 15 22:17:31 CST 2019
    
    

    5、master主节点创建目录

    [root@node-60 ~]# mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn}
    [root@node-60 ~]# chown -R hadoop:hadoop /data/
    

    6、master下载安装hadoop-2.7.7

    [root@node-60 ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
    #解压
    [root@node-60 ~]# tar xf hadoop-2.7.7.tar.gz -C /bdapps/
    [root@node-60 ~]# ln -sv /bdapps/hadoop-2.7.7/ /bdapps/hadoop
    ‘/bdapps/hadoop’ -> ‘/bdapps/hadoop-2.7.7/’
    #配置环境变量,注意hadoop3.x版本HADOOP_PREFIX全部改为HADOOP_HOME
    [root@node-60 ~]# vim /etc/profile.d/hadoop.sh
    export HADOOP_PREFIX=/bdapps/hadoop
    export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin
    export HADOOP_YARN_HOME=${HADOOP_PRFIX}
    export HADOOP_MAPPERD_HOME=${HADOOP_PRFIX}
    export HADOOP_COMMON_HOME=${HADOOP_PRFIX}
    export HADOOP_HDFS_HOME=${HADOOP_PRFIX}
    #创建日志目录
    [root@node-60 ~]# mkdir /bdapps/hadoop/logs
    [root@node-60 ~]# chmod g+w /bdapps/hadoop/logs
    [root@node-60 ~]# chown -R hadoop:hadoop /bdapps/hadoop/*
    
    

    7、maser主节点配置hadoop

    #修改core-site文件
    [root@node-60 ~]# vim /bdapps/hadoop/etc/hadoop/core-site.xml 
    ...........
    <configuration>
          <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://master:8020</value>   #这里填写master主机名
                    <final>true</final>
          </property>
    </configuration>
    
    #修改yarn-site文件
    [root@node-60 ~]# vim /bdapps/hadoop/etc/hadoop/yarn-site.xml 
    .............
    <configuration>
                        <property>
                            <name>yarn.resourcemanager.address</name>
                            <value>master:8032</value> 
                        </property>
                        <property>
                            <name>yarn.resourcemanager.scheduler.address</name>
                            <value>master:8030</value> 
                        </property>
                        <property>
                            <name>yarn.resourcemanager.resource-tracker.address</name>
                            <value>master:8031</value>
                        </property>
                        <property>
                            <name>yarn.resourcemanager.admin.address</name>
                            <value>master:8033</value>
                        </property>
                        <property>
                            <name>yarn.resourcemanager.webapp.address</name>
                            <value>master:8088</value> 
                        </property>
                        <property>
                            <name>yarn.nodemanager.aux-services</name>
                            <value>mapreduce_shuffle</value>
                        </property>
                        <property>
                            <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
                      </property>
        </configuration>
    #修改hdfs-site文件
    [root@node-60 ~]# vim /bdapps/hadoop/etc/hadoop/hdfs-site.xml 
    ............
    <configuration>
                        <property>
                            <name>dfs.replication</name>
                            <value>2</value> #副本数量2
                        </property>
                        <property>
                            <name>dfs.namenode.name.dir</name>
                            <value>file:///data/hadoop/hdfs/nn</value>
                        </property>
                        <property>
                            <name>dfs.datanode.data.dir</name>
                            <value>file:///data/hadoop/hdfs/dn</value>
                        </property>
                        <property>
                            <name>fs.checkpoint.dir</name>
                            <value>file:///data/hadoop/hdfs/snn</value>
                        </property>
                        <property>
                            <name>fs.checkpoint.edits.dir</name>
                            <value>file:///data/hadoop/hdfs/snn</value>
                        </property>
                    </configuration>
    
    #修改mapred-site文件
    [root@node-60 ~]# vim /bdapps/hadoop/etc/hadoop/mapred-site.xml
    ..........
    <configuration>
                     <property>
                            <name>mapreduce.framework.name</name>
                            <value>yarn</value>
                        </property>
    
    </configuration>
    
    #修改slaves文件定义从节点 ,如果是hadoop3.X版本改名叫worker文件
     ~]# vim /bdapps/hadoop/etc/hadoop/slaves 
    
    node61
    node62
    node63
    

    8、三个node从节点创建目录

     ~]# mkdir -pv /bdapps /data/hadoop/hdfs/{nn,snn,dn}
     ~]# chown -R hadoop:hadoop /data/
    

    9、三个node从节点下载安装hadoop

     ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
    #解压
    ~]# tar xf hadoop-2.7.7.tar.gz -C /bdapps/
     ~]# ln -sv /bdapps/hadoop-2.7.7/ /bdapps/hadoop
    ‘/bdapps/hadoop’ -> ‘/bdapps/hadoop-2.7.7/’
    
    #配置环境变量,注意hadoop3.x版本HADOOP_PREFIX全部改为HADOOP_HOME
     ~]# vim /etc/profile.d/hadoop.sh
    export HADOOP_PREFIX=/bdapps/hadoop
    export PATH=$PATH:${HADOOP_PREFIX}/bin:${HADOOP_PREFIX}/sbin
    export HADOOP_YARN_HOME=${HADOOP_PRFIX}
    export HADOOP_MAPPERD_HOME=${HADOOP_PRFIX}
    export HADOOP_COMMON_HOME=${HADOOP_PRFIX}
    export HADOOP_HDFS_HOME=${HADOOP_PRFIX}
    
    #创建日志目录
    ~]# mkdir /bdapps/hadoop/logs
     ~]# chmod g+w /bdapps/hadoop/logs
     ~]# chown -R hadoop:hadoop /bdapps/hadoop/*
    

    10、master节点上使用hadoop用户,同步配置到三个node从节点上

    [root@node-60 ~]# su - hadoop
    [hadoop@node-60 ~]$ scp /bdapps/hadoop/etc/hadoop/* node61:/bdapps/hadoop/etc/hadoop/
    [hadoop@node-60 ~]$ scp /bdapps/hadoop/etc/hadoop/* node62:/bdapps/hadoop/etc/hadoop/
    [hadoop@node-60 ~]$ scp /bdapps/hadoop/etc/hadoop/* node63:/bdapps/hadoop/etc/hadoop/
    
    

    11、格式化文件系统

    • 与伪分布式相同,在HDFS集群的NN启动之前需要初始化其用于存储数据的目录。如果hdfs-site.xml中dffs.namenode.name.dir属性指定的目录不存在,格式化命令会自动创建之;如果事先存在,要确保其权限设置正确,此时格式操作会清除其内部的所有数据并重新建立一个新的文件系统。
    • 输出结果有大量信息,如果显示“INFO common.Storage: Storage directory /data/hadoop/hdfs/nn has been successfully formatted.” 的结果表示格式化操作已然正确完成。
    [root@node-60 ~]# hdfs namenode -format
    #数据目录下将会生成文件
    [root@node-60 ~]# ls /data/hadoop/hdfs/nn/
    current
    
    • 注意:如果格式化失败,重新格式化时候要删除/data/hadoop/hdfs/nn/下的所有文件

    12、启动集群

    • 启动Hadoop-YARN集群的方法有两种:一是在各个节点分别启动需要启动的服务,注意要使用对应的用户这里用户是hadoop,二是在master节点启动整个集群。
    • 当集群规模较大时,分别启动各个节点的各服务过于繁琐和低效,为此hadoop专门提供了start-dfs.sh和stop-dfs.sh来启动及停止整个hdfs集群,以及start-yarn.sh和stop-yarn.sh来启动及停止整个yarn集群。
    [root@node-60 ~]# su - hadoop
    [hadoop@node-60 ~]$ start-dfs.sh
    Starting namenodes on [master]   #首先启动主节点
    hadoop@master's password: 
    master: starting namenode, logging to /bdapps/hadoop/logs/hadoop-hadoop-namenodenode-60.out
    node61: starting datanode, logging to /bdapps/hadoop/logs/hadoop-hadoop-datanodenode-61.out
    node62: starting datanode, logging to /bdapps/hadoop/logs/hadoop-hadoop-datanodenode-62.out
    node63: starting datanode, logging to /bdapps/hadoop/logs/hadoop-hadoop-datanodenode-63.out
    Starting secondary namenodes [0.0.0.0]
    hadoop@0.0.0.0's password: 
    0.0.0.0: starting secondarynamenode, logging to /bdapps/hadoop/logs/hadoop-hadoop-secondarynamenode-node-60.out
    
    #启动yarn集群
    [hadoop@node-60 ~]$ start-yarn.sh
    starting yarn daemons
    starting resourcemanager, logging to /bdapps/hadoop/logs/yarn-hadoop-resourcemanager-node-60.out
    node63: starting nodemanager, logging to /bdapps/hadoop/logs/yarn-hadoop-nodemanager-node-63.out
    node62: starting nodemanager, logging to /bdapps/hadoop/logs/yarn-hadoop-nodemanager-node-62.out
    node61: starting nodemanager, logging to /bdapps/hadoop/logs/yarn-hadoop-nodemanager-node-61.out
    
    [hadoop@node-60 ~]$ jps #查询进程是否启动
    7875 Jps
    7077 NameNode
    7274 SecondaryNameNode
    7611 ResourceManager     #出现  ResourceManager进程证明yarn集群启用成功
    
    
    

    13、检查三个node节点是否启动

    • 出现DataNode进程证明节点启用成功,如果未出现则查询数据目录属主属组权限是否为hadoop用户。
     ~]# su - hadoop
    [hadoop@node-61 ~]$ jps
    8898 DataNode      #出现DataNode进程证明节点启用成功
    9042 NodeManager  #出现 NodeManager进程证明yarn集群启用成功
    8972 Jps
    

    14、上传文档测试

    [hadoop@node-60 ~]$ hdfs dfs -mkdir /test      #创建目录
    [hadoop@node-60 ~]$ hdfs dfs -put /etc/fstab /test/fstab  #上传文件
    [hadoop@node-60 ~]$ hdfs dfs -ls -R /test     #查询
    -rw-r--r--   2 hadoop supergroup        465 2019-03-29 22:57 /test/fstab
    
    • 集群会在任意两个dataneod节点的数据目录下存储对应上传文件的数据块
    • 一个文件就是一个数据块,默认最大是64M,上传大文件时候会被切割为多个数据块
    #数据存储节点一
    [hadoop@node-61 ~]$ cat  /data/hadoop/hdfs/dn/current/BP-2007480771-192.168.1.60-1553870591051/current/finalized/subdir0/subdir0/blk_1073741825
    # /etc/fstab
    .............
    #数据存储节点二
    [hadoop@node-62 ~]$ cat  /data/hadoop/hdfs/dn/current/BP-2007480771-192.168.1.60-1553870591051/current/finalized/subdir0/subdir0/blk_1073741825
    # /etc/fstab
    .............
    

    集群的web界面访问

    存储web

    15、执行任务测试

    #使用示例程序统计fstab文件
    [hadoop@node-60 ~]$ yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /test/fstab /test/wc   
    
    
    任务web

    二、YARN集群管理命令

    • yarn命令有许多子命令,大体可分为用户命令和管理命令两类。直接运行yarn命令,可显示其简单的使用语法及各子命令的简单介绍
    [hadoop@node-60 ~]$ yarn
    格式: yarn [--config confdir] [COMMAND | CLASSNAME]
    
    #管理命令
      resourcemanager -format-state-store   删除RM的存储
      resourcemanager                      运行 ResourceManager
      nodemanager                          运行一个 nodemanager 在每个从节点上
      timelineserver                       运行时间线服务,任务编排时候用
      rmadmin                              管理工具
      sharedcachemanager                    run the SharedCacheManager daemon
      scmadmin                              SharedCacheManager admin tools
      daemonlog                             get/set the log level for each
                                            daemon
    #用户命令
      version                               显示版本号
      jar <jar>                            运行jar文件
      application                           显示应用相关信息
                                            report/kill application
      applicationattempt                显示应用相关报告
      container                             显示容器的相关信息
      node                                  显示node节点信息
      queue                                 显示队列信息
      logs                                  显示日志
      classpath                        显示java程序运行时的类加载路径或类搜索路径
      cluster                               prints cluster information
    

    1、用户命令

    用户命令为Hadoop-YARN客户端命令。这些客户端根据yarn-site.xml中的配置参数连接至YARN服务,并按需运行指定的命令。

    (1)、jar命令
    • jar命令通过YARN代码运行jar文件,即向RM提交YARN应用程序,运行时候会启动RunJar类方法,检查参数列表并校验jar文件,而后展开jar文件运行。
    • 示例:运行MapReduce示例程序wordcount,统计fstab中单词统计
     ~]$ yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /test/fstab /test/wc
    

    (2)、application命令

    • 管理yarn中的各application,其中--help选项可以获取命令使用帮助,它的简要使用格式
      yarn application <options>

    • 示例 :查询有哪些application,-list选项

    [hadoop@node-60 ~]$ yarn application -list -appStates=all
    19/03/30 21:26:53 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.1.60:8032
    Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED]):1
                    Application-Id      Application-Name        Application-Type          User       Queue               State         Final-State         Progress                       Tracking-URL
    application_1553872144720_0001            word count               MAPREDUCE        hadoop     default            ACCEPTED           UNDEFINED               0%                                N/A
    
    
    • 示例 :查询指定application状态,-status选项
    [hadoop@node-60 ~]$ yarn application -status application_1553872144720_0001
    19/03/30 21:29:16 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.1.60:8032
    Application Report : 
        Application-Id : application_1553872144720_0001
        Application-Name : word count
        Application-Type : MAPREDUCE
        User : hadoop
        Queue : default
        Start-Time : 1553873531484
        Finish-Time : 0
        Progress : 0%           #进度
        State : ACCEPTED
        Final-State : UNDEFINED
        Tracking-URL : N/A
        RPC Port : -1
        AM Host : N/A
        Aggregate Resource Allocation : 161842915 MB-seconds, 79024 vcore-seconds
        Diagnostics : 
    
    
    • 示例 :结束运行中的或提交的application,-kill选项
      如果指定的application已经完成,其状态或为FINISHED、KILLED或FAILED,此信息将直接输出,否则将向ResourceManager提供kill此application的请求。
    #删除指定application
    [hadoop@node-60 ~]$ yarn application -kill  application_1553872144720_0001
    19/03/30 21:40:11 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.1.60:8032
    Killing application application_1553872144720_0001
    19/03/30 21:40:12 INFO impl.YarnClientImpl: Killed application application_1553872144720_0001
    
    #再次查询
    [hadoop@node-60 ~]$ yarn application -list -appStates=all
    19/03/30 21:40:21 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.1.60:8032
    Total number of applications (application-types: [] and states: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED]):1
                    Application-Id      Application-Name        Application-Type          User       Queue               State         Final-State         Progress                       Tracking-URL
    application_1553872144720_0001            word count               MAPREDUCE        hadoop     default              KILLED              KILLED               0%http://master:8088/cluster/app/application_1553872144720_0001
    

    (3)、node命令

    • YARN集群有运行NodeManager进程的slave节点及运行ResourceManager的master组成。ResourceManager会记录各节点的相关信息,node子命令则通过classorg.apache.hadoop.yarn.api.records.NodeReport类的对象来格式化输出这些信息。
    • 使用格式为:yarn node <potions>
    • 示例:查询集群的node节点,-list选项,再加上-all是显示所有节点
    [hadoop@node-60 ~]$ yarn node -list
    19/03/30 21:50:27 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.1.60:8032
    Total Nodes:3
             Node-Id         Node-State Node-Http-Address   Number-of-Running-Containers
       node-63:34547            RUNNING      node-63:8042                              0
       node-61:40811            RUNNING      node-61:8042                              0
       node-62:40608            RUNNING      node-62:8042                              0
    
    
    • 示例:显示指定node节点相关信息,-status选项
    [hadoop@node-60 ~]$ yarn node -status  node-63:34547
    19/03/30 21:56:46 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.1.60:8032
    Node Report : 
        Node-Id : node-63:34547
        Rack : /default-rack
        Node-State : RUNNING
        Node-Http-Address : node-63:8042
        Last-Health-Update : Sat 30/Mar/19 09:55:11:112CST
        Health-Report : 
        Containers : 0
        Memory-Used : 0MB
        Memory-Capacity : 8192MB
        CPU-Used : 0 vcores
        CPU-Capacity : 8 vcores
        Node-Labels : 
    
    (4)、logs命令
    • 用于从已完成的YARN应用程序(状态为FAILED、KILL或FINISHED)上获取日志信息。但是,如果要通过命令行查看日志,需要为YARN集群启用log-aggregation属性,在yarn-site.xml配置文件中定义yarn.log-aggregation-enable属性的值为true即可。
    • 命令格式 yarn logs -applicationId<applicationID><options>
    • 示例:
    [hadoop@node-60 ~]$ yarn logs -applicationId application_1553872144720_0001
    
    
    (5)、classpath命令
    • classpath命令用于显示YARN集群CLASSPATH的值
    • 示例:
    hadoop@node-60 ~]$ yarn classpath
    
    (6)、version命令
    • 用于显示当前的YARN集群中yarn程序的版本号
    • 示例
    [hadoop@node-60 ~]$ yarn version
    Hadoop 2.7.7
    .........
    

    2、管理命令

    这几个管理命令主要用于在节点上启动相应的服务
    • resourcemanager命令:用于启动节点上的ResourceManager服务;
    • nodemanager命令:用于启动NodeManager服务;
    • timelineserver命令: 用于启动节点上的timeline服务器;
    (1)、RMAdmin命令
    • rmadmin是ResourceManager的客户端程序,可用于刷新访问控制策略、调度器队列及注册到RM上的节点等。刷新之后无需重启集群服务即可生效。
    • 命令简要格式:yarn rmadmin <options>

    常用选项:
    -refreshQueues:重载队列的acl、状态及调用器队列;它会根据文件中的配置信息重新初始化调用器;
    -refreshNodes:为RM刷新主机信息,通过读取RM节点的include和exclude文件来更新集群所需要包含或排除的节点列表;
    -refreshUserToGroupsMappings:根据配置Hadoop安全组映射,通过刷新组缓存中的信息来更新用户和组之间的映射关系;
    -refreshSuperUserGroupsConfiguration:刷新超级用户代理组映射,以及更新代理主机和core-site.xml配置文件中hadoop.proxyuser属性定义的代理组;
    -refreshAdminAcls:根据yarn站点配置文件或默认配置文件中的yarn.admin.acl属性刷新RM的管理ACL;
    -refreshServiceAcl:重载服务级别授权策略文件,而后RM将重载授权策略文件;它会检查Hadoop安全授权是否启用并为IPC Server、ApplicationMaster、Client和Resource tracker刷新ACL;

    • 示例:为RM刷新主机信息
    [hadoop@node-60 ~]$ yarn rmadmin -refreshNodes
    
    (2)、DaemonLog命令
    • 用于查看或更新RM及NM守护进程的日志级别,它会在检验管理权限通过后在内部直接连接至‘http://host:port/logLevel?log=nameservice’。
    • 命令格式:yarn daemonlog <options> args

    常用选项:
    -getLevel host:port name :显示指定守护进程日志级别
    -getLevel host:port name level: 设置守护进程的日志级别

    三、运行YARN Application过程

    • YARN Application(应用程序)可以是一个简单的shell脚本、MapReduce作业或其他任意类型的作业。需要运行Application时,客户端需要事先生成一个ApplicationMaster,而后客户端把application context提交给ResourceManager,随后RM向AM分配内存和运行application的容器。总的来说,此过程可分为六个阶段:

    阶段一、Application初始化及提交;
    阶段二、分配内存并启动AM;
    阶段三、AM注册及资源分配;
    阶段四、启动并监控容器;
    阶段五、Application进度报告;
    阶段六、Application运行完成;

    四、利用admbari部署hadoop集群简介

    1、 Ambari项目

    • Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。2018年11月为止最新的发布版本是 2.7.3。就 Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。

    2、Ambari主要特点:

    提供Hadoop集群
    • Ambari提供了跨任意数量的主机安装Hadoop服务的分步向导。
    • Ambari处理群集的Hadoop服务配置。
    管理Hadoop集群
    • Ambari提供集中管理,用于在整个集群中启动,停止和重新配置Hadoop服务。
    监控Hadoop集群
    • Ambari提供了一个仪表板,用于监控Hadoop集群的运行状况和状态。

    • Ambari利用Ambari指标系统进行指标收集。

    • Ambari利用Ambari Alert Framework进行系统警报,并在需要您注意时通知您(例如,节点出现故障,剩余磁盘空间不足等)。

    • Ambari使应用程序开发人员和系统集成商能够使用Ambari REST API轻松将Hadoop配置,管理和监控功能集成到自己的应用程序中。

    五、hadoop3.x安装遇到的问题

    • 1、报错“HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.”
      问题原因:hadoop3.x环境变量名称变更为HADOOP_HOME
      解决:修改 /etc/profile.d/hadoop.sh
     ~]# vim /etc/profile.d/hadoop.sh
    export HADOOP_HOME=/bdapps/hadoop
    export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
    export HADOOP_YARN_HOME=${HADOOP_HOME}
    export HADOOP_MAPPERD_HOME=${HADOOP_HOME}
    export HADOOP_COMMON_HOME=${HADOOP_HOME}
    export HADOOP_HDFS_HOME=${HADOOP_HOME}
    
    ~]# unset HADOOP_PREFIX     #删除HADOOP_PREFIX变量
    ~]# source /etc/profile               #设置生效
    ~]# evn | grep -i hadoop            #查询
    
    • 2、设置文件定义从节点时候, hadoop3.X版本是没有(源码目录)/etc/hadoop/slaves这个文件,改名叫worker文件
     ~]# vim /bdapps/hadoop/etc/hadoop/worker 
    

    官网地址:http://ambari.apache.org/
    安装部署参考文档地址:https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.3

    相关文章

      网友评论

          本文标题:手动部署Hadoop2分布式集群和YARN集群管理命令

          本文链接:https://www.haomeiwen.com/subject/mvghmqtx.html