大数据【三】YARN集群部署

一  概述

YARN是一个资源管理、任务调度的框架,采用master/slave架构,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。

>ResourceManager负责所有资源的监控、分配和管理,运行在主节点; 

>NodeManager负责每一个节点的维护,运行在从节点;

>ApplicationMaster负责每一个具体应用程序的调度和协调,只有在有任务正在执行时存在。

对于所有的applications,RM拥有绝对的控制权和对资源的分配权。而每个AM则会和RM协商资源,同时和NodeManager通信来执行和监控task。

二  运行流程

1‘  client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。

2’  ResourceManager启动一个container用于运行ApplicationMaster。

3‘  启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。

4’  ApplicationMaster向ResourceManager发送请求,申请相应数目的container。

5‘  ResourceManager返回ApplicationMaster的申请的containers信息。申请成功的container,由ApplicationMaster进行初始化。container的启动信息初始化后,AM与对应的NodeManager通信,要求NM启动container。AM与NM保持心跳,从而对NM上运行的任务进行监控和管理。

6’  container运行期间,ApplicationMaster对container进行监控。container通过RPC协议向对应的AM汇报自己的进度和状态等信息。

7‘  应用运行期间,client直接与AM通信获取应用的状态、进度更新等信息。

8’  应用运行结束后,ApplicationMaster向ResourceManager注销自己,并允许属于它的container被收回。

三  管理YARN集群

1‘  配置YARN集群

    >切换到master服务器上,前提是HDFS结点已经启动,方法见上一篇博客>> http://www.cnblogs.com/1996swg/p/7286136.html

    >指定YARN主节点,编辑文件“/usr/cstor/hadoop/etc/hadoop/yarn-site.xml”,将如下内容嵌入此文件里configuration标签间:

<property><name>yarn.resourcemanager.hostname</name><value>master</value></property>

<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>

   yarn-site.xml是YARN守护进程的配置文件。第一句配置了ResourceManager的主机名,第二句配置了节点管理器运行的附加服务为mapreduce_shuffle,只有这样才可以运行MapReduce程序。

   

   >将配置好的YARN配置文件拷贝至slaveX、client

    命令如下: 查看子集 cat  ~/data/4/machines

          拷贝到子集 for  x  in  `cat ~/data/4/machines` ; do  echo  $x ; scp  /usr/cstor/hadoop/etc/hadoop/yarn-site.xml  $x:/usr/cstor/hadoop/etc/hadoop/  ; done;

   >确认已配置slaves文件,在master机器上查看;

   >统一启动YARN,命令   /usr/cstor/hadoop/sbin/start-yarn.sh   如图所示

    

  >验证用  jps  命令,在其余子集上同时验证,如图所示验证成功

    

2’  在client机上提交DistributedShell任务

      distributedshell,可以看做YARN编程中的“hello world”,主要功能是并行执行用户提供的shell命令或者shell脚本

      -jar指定了包含ApplicationMaster的jar文件,-shell_command指定了需要被ApplicationMaster执行的Shell命令。

      在上再打开一个client 的连接,执行:

        /usr/cstor/hadoop/bin/yarn  org.apache.hadoop.yarn.applications.distributedshell.Client  -jar   /usr/cstor/hadoop/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.7.1.jar    -shell_command  uptime

      运行结果显示:    

 1 17/08/05 02:51:34 INFO distributedshell.Client: Initializing Client
 2 17/08/05 02:51:34 INFO distributedshell.Client: Running Client
 3 17/08/05 02:51:34 INFO client.RMProxy: Connecting to ResourceManager at master/10.1.21.27:8032
 4 17/08/05 02:51:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
 5 17/08/05 02:51:34 INFO distributedshell.Client: Got Cluster metric info from ASM, numNodeManagers=3
 6 17/08/05 02:51:34 INFO distributedshell.Client: Got Cluster node info from ASM
 7 17/08/05 02:51:34 INFO distributedshell.Client: Got node report from ASM for, nodeId=slave1:42602, nodeAddressslave1:8042, nodeRackName/default-rack, nodeNumContainers0
 8 17/08/05 02:51:34 INFO distributedshell.Client: Got node report from ASM for, nodeId=slave2:57070, nodeAddressslave2:8042, nodeRackName/default-rack, nodeNumContainers0
 9 17/08/05 02:51:34 INFO distributedshell.Client: Got node report from ASM for, nodeId=slave3:38580, nodeAddressslave3:8042, nodeRackName/default-rack, nodeNumContainers0
10 17/08/05 02:51:34 INFO distributedshell.Client: Queue info, queueName=default, queueCurrentCapacity=0.0, queueMaxCapacity=1.0, queueApplicationCount=0, queueChildQueueCount=0
11 17/08/05 02:51:34 INFO distributedshell.Client: User ACL Info for Queue, queueName=root, userAcl=SUBMIT_APPLICATIONS
12 17/08/05 02:51:34 INFO distributedshell.Client: User ACL Info for Queue, queueName=root, userAcl=ADMINISTER_QUEUE
13 17/08/05 02:51:34 INFO distributedshell.Client: User ACL Info for Queue, queueName=default, userAcl=SUBMIT_APPLICATIONS
14 17/08/05 02:51:34 INFO distributedshell.Client: User ACL Info for Queue, queueName=default, userAcl=ADMINISTER_QUEUE
15 17/08/05 02:51:35 INFO distributedshell.Client: Max mem capabililty of resources in this cluster 8192
16 17/08/05 02:51:35 INFO distributedshell.Client: Max virtual cores capabililty of resources in this cluster 32
17 17/08/05 02:51:35 INFO distributedshell.Client: Copy App Master jar from local filesystem and add to local environment
18 17/08/05 02:51:35 INFO distributedshell.Client: Set the environment for the application master
19 17/08/05 02:51:35 INFO distributedshell.Client: Setting up app master command
20 17/08/05 02:51:35 INFO distributedshell.Client: Completed setting up app master command {{JAVA_HOME}}/bin/java -Xmx10m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_memory 10 --container_vcores 1 --num_containers 1 --priority 0 1><LOG_DIR>/AppMaster.stdout 2><LOG_DIR>/AppMaster.stderr 
21 17/08/05 02:51:35 INFO distributedshell.Client: Submitting application to ASM
22 17/08/05 02:51:36 INFO impl.YarnClientImpl: Submitted application application_1501872322130_0001
23 17/08/05 02:51:37 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
24 17/08/05 02:51:38 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
25 17/08/05 02:51:39 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
26 17/08/05 02:51:40 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=slave2/10.1.32.41, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
27 17/08/05 02:51:41 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=slave2/10.1.32.41, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
28 17/08/05 02:51:42 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=slave2/10.1.32.41, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
29 17/08/05 02:51:43 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=slave2/10.1.32.41, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
30 17/08/05 02:51:44 INFO distributedshell.Client: Got application report from ASM for, appId=1, clientToAMToken=null, appDiagnostics=, appMasterHost=slave2/10.1.32.41, appQueue=default, appMasterRpcPort=-1, appStartTime=1501872695990, yarnAppState=FINISHED, distributedFinalState=SUCCEEDED, appTrackingUrl=http://master:8088/proxy/application_1501872322130_0001/, appUser=root
31 17/08/05 02:51:44 INFO distributedshell.Client: Application has completed successfully. Breaking monitoring loop
32 17/08/05 02:51:44 INFO distributedshell.Client: Application completed successfully

 

 3’  在client机上提交MapReduce任务

       (1)指定在YARN上运行MapReduce任务

          首先,在master机上,将文件“/usr/cstor/hadoop/etc/hadoop/mapred-site.xml. template”重命名为“/usr/cstor/hadoop/etc/hadoop/mapred-site.xml”;

              

          接着,编辑此文件并将如下内容嵌入此文件的configuration标签间:

                <property><name>mapreduce.framework.name</name><value>yarn</value></property>

              

          最后,将master机的“/usr/local/hadoop/etc/hadoop/mapred-site.xml”文件拷贝到slaveX与client,(拷贝方法同上YARN配置拷贝方法),重新启动集群。

              

      (2)在client端提交PI Estimator任务

          首先进入Hadoop安装目录:/usr/cstor/hadoop/,然后提交PI Estimator任务。

          命令最后两个两个参数的含义:第一个参数是指要运行map的次数,这里是2次;第二个参数是指每个map任务,取样的个数;而两数相乘即为总的取样数。Pi Estimator使用Monte Carlo方法计算Pi值的。

          bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar pi 2 10

          显示结果如下:

 1 Number of Maps  = 2
 2 Samples per Map = 10
 3 17/08/05 03:03:30 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
 4 Wrote input for Map #0
 5 Wrote input for Map #1
 6 Starting Job
 7 17/08/05 03:03:31 INFO client.RMProxy: Connecting to ResourceManager at master/10.1.21.27:8032
 8 17/08/05 03:03:32 INFO input.FileInputFormat: Total input paths to process : 2
 9 17/08/05 03:03:32 INFO mapreduce.JobSubmitter: number of splits:2
10 17/08/05 03:03:32 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1501872322130_0002
11 17/08/05 03:03:32 INFO impl.YarnClientImpl: Submitted application application_1501872322130_0002
12 17/08/05 03:03:32 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1501872322130_0002/
13 17/08/05 03:03:32 INFO mapreduce.Job: Running job: job_1501872322130_0002
14 17/08/05 03:03:39 INFO mapreduce.Job: Job job_1501872322130_0002 running in uber mode : false
15 17/08/05 03:03:39 INFO mapreduce.Job:  map 0% reduce 0%
16 17/08/05 03:03:45 INFO mapreduce.Job:  map 50% reduce 0%
17 17/08/05 03:03:46 INFO mapreduce.Job:  map 100% reduce 0%
18 17/08/05 03:03:52 INFO mapreduce.Job:  map 100% reduce 100%
19 17/08/05 03:03:52 INFO mapreduce.Job: Job job_1501872322130_0002 completed successfully
20 17/08/05 03:03:52 INFO mapreduce.Job: Counters: 49
21     File System Counters
22         FILE: Number of bytes read=50
23         FILE: Number of bytes written=347208
24         FILE: Number of read operations=0
25         FILE: Number of large read operations=0
26         FILE: Number of write operations=0
27         HDFS: Number of bytes read=522
28         HDFS: Number of bytes written=215
29         HDFS: Number of read operations=11
30         HDFS: Number of large read operations=0
31         HDFS: Number of write operations=3
32     Job Counters 
33         Launched map tasks=2
34         Launched reduce tasks=1
35         Data-local map tasks=2
36         Total time spent by all maps in occupied slots (ms)=7932
37         Total time spent by all reduces in occupied slots (ms)=3443
38         Total time spent by all map tasks (ms)=7932
39         Total time spent by all reduce tasks (ms)=3443
40         Total vcore-seconds taken by all map tasks=7932
41         Total vcore-seconds taken by all reduce tasks=3443
42         Total megabyte-seconds taken by all map tasks=8122368
43         Total megabyte-seconds taken by all reduce tasks=3525632
44     Map-Reduce Framework
45         Map input records=2
46         Map output records=4
47         Map output bytes=36
48         Map output materialized bytes=56
49         Input split bytes=286
50         Combine input records=0
51         Combine output records=0
52         Reduce input groups=2
53         Reduce shuffle bytes=56
54         Reduce input records=4
55         Reduce output records=0
56         Spilled Records=8
57         Shuffled Maps =2
58         Failed Shuffles=0
59         Merged Map outputs=2
60         GC time elapsed (ms)=347
61         CPU time spent (ms)=2630
62         Physical memory (bytes) snapshot=683196416
63         Virtual memory (bytes) snapshot=2444324864
64         Total committed heap usage (bytes)=603979776
65     Shuffle Errors
66         BAD_ID=0
67         CONNECTION=0
68         IO_ERROR=0
69         WRONG_LENGTH=0
70         WRONG_MAP=0
71         WRONG_REDUCE=0
72     File Input Format Counters 
73         Bytes Read=236
74     File Output Format Counters 
75         Bytes Written=97
76 Job Finished in 20.592 seconds
77 Estimated value of Pi is 3.80000000000000000000

 

小结:

    关于YARN框架的学习不需多深入,只需搭建好配置环境,以供下面MapReduce的学习。

    在新版Hadoop中,Yarn作为一个资源管理调度框架,是Hadoop下MapReduce程序运行的生存环境。其实MapRuduce除了可以运行Yarn框架下,也可以运行在诸如Mesos,Corona之类的调度框架上,使用不同的调度框架,需要针对Hadoop做不同的适配。

    

 

转载于:https://www.cnblogs.com/1996swg/p/7286490.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 尚硅谷大数据技术之cdh vmware是一个虚拟机镜像,用于学习和实践大数据技术。 CDH是Cloudera公司的一整套Hadoop生态系统的发行版,包含了Hadoop的核心组件如HDFS、MapReduce、YARN、Hive、HBase等,而尚硅谷大数据技术之cdh vmware是一个已经预装了CDH的虚拟机镜像,方便用户快速使用和学习。 VMware是一款虚拟化软件,可以在一台物理机上运行多个虚拟机,每个虚拟机都可以独立运行自己的操作系统和软件。尚硅谷将CDH预装在VMware中,方便用户在自己的电脑上运行一个基于CDH的虚拟机环境,进行大数据技术的学习和实践。 使用尚硅谷大数据技术之cdh vmware,用户无需自己配置和安装CDH,只需下载并导入到VMware中,即可快速启动CDH环境。这样可以节省用户的时间和精力,让用户更加专注于对CDH的学习和使用。 尚硅谷大数据技术之cdh vmware不仅提供了CDH的基础组件,还包含了一些附加工具和示例数据,帮助用户更好地理解和实践大数据技术。用户可以通过尚硅谷提供的教程和实验来学习和掌握CDH的各项功能和应用场景。 总而言之,尚硅谷大数据技术之cdh vmware是一个方便快捷的大数据技术学习工具,通过预装CDH在VMware中,用户可以轻松构建和管理自己的大数据环境,并进行实际操作和实践。 ### 回答2: 尚硅谷大数据技术之cdh vmware是一个基于VMware虚拟机的大数据解决方案。CDH是Cloudera公司提供的Hadoop生态系统的一个发行版,它包括了Hadoop、Hive、HBase、Spark等大数据处理工具和框架,可以支持大规模数据的存储和分析。 CDH VMWare是尚硅谷提供的一个预配置的CDH虚拟机镜像,使用VMware虚拟化技术,方便用户快速搭建和配置CDH集群环境。它提供了一个简单且易于理解的操作界面,使得用户可以快速上手,无需复杂的配置和搭建过程。 CDH VMWare 可以帮助用户实现以下目标: 1. 快速搭建大数据环境:CDH VMWare提供了一个预先配置好的大数据集群环境,用户只需要简单地导入该镜像文件,即可获得一个完整的CDH集群环境,大大减少了搭建和配置环境的时间和成本。 2. 学习和实践大数据技术:CDH VMWare提供了一个完整的CDH集群环境,用户可以在该环境中学习和实践各种大数据技术和工具,例如Hadoop、Hive、HBase等,帮助用户快速掌握大数据处理的方法和技巧。 3. 开发和测试大数据应用:CDH VMWare提供了一个完整的CDH集群环境,用户可以在该环境中开发和测试各种大数据应用程序,例如基于Hadoop的数据处理程序、基于Spark的数据分析程序等,帮助用户快速验证和调试应用程序的正确性和性能。 总之,尚硅谷大数据技术之CDH VMWare是一个方便快速的大数据解决方案,可以帮助用户快速搭建和配置CDH集群环境,学习和实践大数据技术,以及开发和测试大数据应用程序。 ### 回答3: 尚硅谷是一个IT培训机构,他们提供了大数据技术培训,其中包括了CDH和VMware。 CDH(Cloudera Distributed Hadoop)是一个开源的大数据解决方案,它提供了一个基于Apache Hadoop的完整平台。CDH集成了多个大数据工具和组件,如Hadoop、Spark、Hive和HBase等,使用户可以更加方便地进行大数据处理和分析。通过CDH,用户可以管理和处理大规模的数据集,进行数据存储、计算和查询等操作。 而VMware是一个虚拟化技术提供商,其产品包括VMware Workstation、VMware Fusion和VMware ESXi等。虚拟化技术允许用户在物理服务器上运行多个虚拟机,实现资源的合理利用和管理。在大数据领域,VMware虚拟化技术可以用来部署大数据集群,提供高可用性和灵活性。用户可以在虚拟机中安装CDH,并使用CDH进行大数据处理和分析。 尚硅谷的大数据技术之CDH VMware课程,通过理论和实践相结合的方式,帮助学员掌握CDH和VMware的基本概念、部署与管理技能,并能够运用它们进行大数据的处理和分析。在课程中,学员将会学习CDH和VMware的安装与配置,了解它们的架构和原理,学会使用CDH集群进行数据处理和分析,以及利用VMware虚拟化技术在CDH环境中搭建大数据集群。 通过尚硅谷的大数据技术之CDH VMware课程,学员能够全面了解CDH和VMware在大数据领域的应用,掌握相关技能,并在实际工作中灵活运用,从而有效地处理和分析大规模的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值