源码见:https://github.com/hiszm/hadoop-train

YARN产生背景

Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。

The fundamental idea of MRv2 is to split up the two major functionalities of the JobTracker, resource management and job scheduling /monitoring, into separate daemons. The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM). An application is either a single job in the classical sense of Map-Reduce jobs or a DAG of jobs.

YARN架构详解

  1. Client
  • RM提交任务
  • 杀死任务
  1. ResourceManager
  • ResourceManager 通常在独立的机器上以后台进程的形式运行,它是整个 集群资源的主要协调者和管理者
  • 负责给用户提交的所有应用程序分配资源 ,它根据应用程序优先级、队列容量、ACLs、数据位置等信息,做出决策,然后以共享的、安全的、多租户的方式制定分配策略,调度集群资源。
  1. NodeManager
  • NodeManager 是 YARN 集群中的每个具体 节点的管理者

  • 主要 负责该节点内所有容器的生命周期的管理,监视资源和跟踪节点健康 。具体如下:

    • 启动时向 ResourceManager 注册并定时发送心跳消息,等待 ResourceManager 的指令;
    • 维护 Container 的生命周期,监控 Container 的资源使用情况;
    • 管理任务运行时的相关依赖,根据 ApplicationMaster 的需要,在启动 Container 之前将需要的程序及其依赖拷贝到本地。
  1. ApplicationMaster
  • 在用户提交一个应用程序时,YARN 会启动一个轻量级的 进程 ApplicationMaster

  • ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器内资源的使用情况,同时还负责任务的监控与容错。具体如下:

    • 根据应用的运行状态来决定动态计算资源需求;
    • ResourceManager 申请资源,监控申请的资源的使用情况;
    • 跟踪任务状态和进度,报告资源的使用情况和应用的进度信息;
    • 负责任务的容错。
  1. Container
  • Container 是 YARN 中的 资源抽象 ,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
  • 当 AM 向 RM 申请资源时,RM 为 AM 返回的资源是用 Container 表示的。
  • YARN 会为每个任务分配一个 Container,该任务只能使用该 Container 中描述的资源。ApplicationMaster 可在 Container 内运行任何类型的任务。例如,MapReduce ApplicationMaster 请求一个容器来启动 map reduce 任务

YARN执行流程

  1. 客户端clientyarn集群提交作业 , 首先①向ResourceManager申请分配资源

  2. Resource Manager会为作业分配一个Container(Application manager),Container里面运行这(Application Manager)

  3. Resource Manager会找一个对应的NodeManager通信②,要求NodeManager在这个container上启动应用程序Application Master

  4. Application MasterResource Manager申请资源④(采用轮询的方式通过RPC协议),Resource scheduler将资源封装发给Application master④,

  5. Application Master将获取到的资源分配给各个Node Manager,并监控运行情况⑤

  6. Node Manage得到任务和资源开始执行作业⑥

  7. 再细分作业的话可以分为 先执行Map Task,结束后在执行Reduce Task 最后再将结果返回給Application Master等依次往上层递交⑦

YARN环境部署

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1/hadoop-project-dist/hadoop-common/SingleCluster.html

  • YARN on Single Node

You can run a MapReduce job on YARN in a pseudo-distributed mode by setting a few parameters and running ResourceManager daemon and NodeManager daemon in addition.
The following instructions assume that 1. ~ 4. steps of the above instructions are already executed.

Configure parameters as follows:
etc/hadoop/mapred-site.xml:

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

etc/hadoop/yarn-site.xml:

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

Start ResourceManager daemon and NodeManager daemon:
$ sbin/start-yarn.sh
Browse the web interface for the ResourceManager; by default it is available at:
ResourceManager - http://localhost:8088/
Run a MapReduce job.
When you’re done, stop the daemons with:
$ sbin/stop-yarn.sh

[hadoop@hadoop000 hadoop]$ pwd
/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop
[hadoop@hadoop000 hadoop]$ vi mapred-site.xml
[hadoop@hadoop000 hadoop]$ vi yarn-site.xml[hadoop@hadoop000 sbin]$ jps
7234 NodeManager
8131 Jps
7588 NameNode
7962 SecondaryNameNode
7116 ResourceManager
7791 DataNode

http://192.168.43.200:8088/cluster

[hadoop@hadoop000 hadoop]$ pwd
/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/share/hadoop
[hadoop@hadoop000 hadoop]$ ls
common  httpfs  mapreduce   mapreduce2  yarn
hdfs    kms     mapreduce1  tools
[hadoop@hadoop000 hadoop]$ pwd
/home/hadoop/app/hadoop-2.6.0-cdh5.15.1/share/hadoop
[hadoop@hadoop000 hadoop]$ cd mapreduce
[hadoop@hadoop000 mapreduce]$ ls
hadoop-mapreduce-client-app-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-common-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-core-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-hs-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-hs-plugins-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-jobclient-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-jobclient-2.6.0-cdh5.15.1-tests.jar
hadoop-mapreduce-client-nativetask-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-client-shuffle-2.6.0-cdh5.15.1.jar
hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar
lib
lib-examples
sources

提交example案例到YARN上运行

 hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar pi 2 3

[hadoop@hadoop000 ~]$ hadoop dfs -cat /wc/input/1.txt
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.hello   world   hello
hello
hello   world
[hadoop@hadoop000 ~]$
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar wordcount /wc/input /wc/output[hadoop@hadoop000 ~]$ hadoop dfs -cat /wc/output/part-r-00000
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.hello   4
world   2

提交流量统计案例到YARN上运行

  • mvn clean package -DskipTests 注意在当前的项目环境
(base) locahost:untitled5 jacksun$ mvn clean package -DskipTests
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< org.example:untitled5 >------------------------
[INFO] Building untitled5 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ untitled5 ---
[INFO] Deleting /Users/jacksun/IdeaProjects/untitled5/target
[INFO]
[INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ untitled5 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ untitled5 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 15 source files to /Users/jacksun/IdeaProjects/untitled5/target/classes
[INFO]
[INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ untitled5 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/jacksun/IdeaProjects/untitled5/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ untitled5 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /Users/jacksun/IdeaProjects/untitled5/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ untitled5 ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ untitled5 ---
[INFO] Building jar: /Users/jacksun/IdeaProjects/untitled5/target/untitled5-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  43.078 s
[INFO] Finished at: 2020-09-02T10:04:51+08:00
[INFO] ------------------------------------------------------------------------
(base) locahost:untitled5 jacksun$ ls
D:      access      output      src
Hadoop.iml  input       pom.xml     target
(base) locahost:untitled5 jacksun$ cd target/
(base) locahost:target jacksun$ ls
classes             maven-status
generated-sources       test-classes
generated-test-sources      untitled5-1.0-SNAPSHOT.jar
maven-archiver
(base) locahost:target jacksun$ (base) locahost:target jacksun$ scp untitled5-1.0-SNAPSHOT.jar hadoop@192.168.43.200:~/lib/
hadoop@192.168.43.200's password:
untitled5-1.0-SNAPSHOT.jar          100%   18KB 750.6KB/s   00:00
(base) locahost:target jacksun$ 
  • 到编译后的/target/目录jar包和相关的数据上传到服务器scp xxx hadoop@localhost:dir

  • 再上传到hdfsHadoop fs -put /dir


hadoop jar untitled5-1.0-SNAPSHOT.jar com.bigdata.hadoop.mr.access.AccessYARNApp /access/input/access.log /access/ouput/
  • 执行作业hadoop jar xx.jar完整的类名和包名args参数
20/09/02 10:13:22 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
20/09/02 10:13:22 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
20/09/02 10:13:23 INFO input.FileInputFormat: Total input paths to process : 1
20/09/02 10:13:24 INFO mapreduce.JobSubmitter: number of splits:1
20/09/02 10:13:24 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1598998523059_0003
20/09/02 10:13:25 INFO impl.YarnClientImpl: Submitted application application_1598998523059_0003
20/09/02 10:13:25 INFO mapreduce.Job: The url to track the job: http://hadoop000:8088/proxy/application_1598998523059_0003/
20/09/02 10:13:25 INFO mapreduce.Job: Running job: job_1598998523059_0003
20/09/02 10:13:35 INFO mapreduce.Job: Job job_1598998523059_0003 running in uber mode : false
20/09/02 10:13:35 INFO mapreduce.Job:  map 0% reduce 0%
20/09/02 10:13:42 INFO mapreduce.Job:  map 100% reduce 0%
20/09/02 10:13:51 INFO mapreduce.Job:  map 100% reduce 33%
20/09/02 10:13:53 INFO mapreduce.Job:  map 100% reduce 67%
20/09/02 10:14:01 INFO mapreduce.Job:  map 100% reduce 100%
20/09/02 10:14:03 INFO mapreduce.Job: Job job_1598998523059_0003 completed successfully
20/09/02 10:14:03 INFO mapreduce.Job: Counters: 50File System CountersFILE: Number of bytes read=1185FILE: Number of bytes written=575593FILE: Number of read operations=0FILE: Number of large read operations=0FILE: Number of write operations=0HDFS: Number of bytes read=2444HDFS: Number of bytes written=552HDFS: Number of read operations=12HDFS: Number of large read operations=0HDFS: Number of write operations=6Job Counters Killed reduce tasks=1Launched map tasks=1Launched reduce tasks=3Data-local map tasks=1Total time spent by all maps in occupied slots (ms)=13914Total time spent by all reduces in occupied slots (ms)=71064Total time spent by all map tasks (ms)=4638Total time spent by all reduce tasks (ms)=23688Total vcore-milliseconds taken by all map tasks=4638Total vcore-milliseconds taken by all reduce tasks=23688Total megabyte-milliseconds taken by all map tasks=14247936Total megabyte-milliseconds taken by all reduce tasks=72769536Map-Reduce FrameworkMap input records=23Map output records=23Map output bytes=1121Map output materialized bytes=1185Input split bytes=110Combine input records=0Combine output records=0Reduce input groups=21Reduce shuffle bytes=1185Reduce input records=23Reduce output records=21Spilled Records=46Shuffled Maps =3Failed Shuffles=0Merged Map outputs=3GC time elapsed (ms)=696CPU time spent (ms)=8510Physical memory (bytes) snapshot=783241216Virtual memory (bytes) snapshot=16559239168Total committed heap usage (bytes)=674758656Shuffle ErrorsBAD_ID=0CONNECTION=0IO_ERROR=0WRONG_LENGTH=0WRONG_MAP=0WRONG_REDUCE=0File Input Format Counters Bytes Read=2334File Output Format Counters Bytes Written=552[hadoop@hadoop000 lib]$ hadoop fs -ls /access/ouput/
Found 4 items
-rw-r--r--   1 hadoop supergroup          0 2020-09-02 10:14 /access/ouput/_SUCCESS
-rw-r--r--   1 hadoop supergroup        393 2020-09-02 10:13 /access/ouput/part-r-00000
-rw-r--r--   1 hadoop supergroup         80 2020-09-02 10:13 /access/ouput/part-r-00001
-rw-r--r--   1 hadoop supergroup         79 2020-09-02 10:13 /access/ouput/part-r-00002[hadoop@hadoop000 lib]$ hadoop fs -cat /access/ouput/part-r-00000
13480253104,180,180,360
13502468823,7335,110349,117684
13560436666,1116,954,2070
13560439658,2034,5892,7926
13602846565,1938,2910,4848
13660577991,6960,690,7650
13719199419,240,0,240
13726230503,2481,24681,27162
13726238888,12481,44681,57162
13760778710,120,120,240
13826544101,264,0,264
13922314466,3008,3720,6728
13925057413,11058,48243,59301
13926251106,240,0,240
13926435656,132,1512,1644
[hadoop@hadoop000 lib]$  

  • http://192.168.43.200:8088/cluster/观察结果

Hadoop基础-10-YARN相关推荐

  1. Hadoop基础--HDFS/Yarn/MapReduce概述

    HDFS概述==> 1. Hadoop优势(4高): 1.高可靠性: Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失: 2.高扩展型: 在 ...

  2. Hadoop基础教程-第10章 HBase:Hadoop数据库(10.1 NoSQL介绍)(草稿)

    第10章 HBase:Hadoop数据库 10.1 NoSQL介绍 10.1.1 NoSQL简介 随着互联网技术(互联网+,物联网)发展,特别是大数据时代到来,我们需要存储处理更多数据,这种需求远远超 ...

  3. Hadoop基础-配置历史服务器

    Hadoop基础-配置历史服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比 ...

  4. Hadoop 1.x和Hadoop 2.x,Hadoop 1.x局限性和Hadoop 2.x YARN优点之间的区别

    Before reading this post, please go through my previous posts to get some Basic knowledge about BigD ...

  5. hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装

    hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来 ...

  6. hadoop生态圈面试精华之Hadoop基础

    Hadoop基础 介绍下Hadoop 回答技巧:说下Hadoop核心组件,讲下HDFS原理.MapReduce过程等,也可以在介绍完组件部分后, 看看面试官会不会继续往下问(比如让你说下HDFS读写流 ...

  7. Hadoop基础学习0

    20161209 10:43--12:00 Hadoop,The Apache™ Hadoop® project develops open-source software for reliable, ...

  8. Hadoop基础-网络拓扑机架感知及其实现

    Hadoop基础-网络拓扑机架感知及其实现 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网络拓扑结构 在本地网络中,两个节点被称为"彼此近邻"是什么意思? ...

  9. Hadoop基础-HDFS集群中大数据开发常用的命令总结

    Hadoop基础-HDFS集群中大数据开发常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本盘博客仅仅列出了我们在实际生成环境中常用的hdfs命令,如果想要了解更多, ...

  10. Hadoop之Hadoop基础知识面试复习

    Hadoop之Hadoop基础知识常问面试题 列举几个hadoop生态圈的组件并做简要描述. Zookeeper:是一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护, ...

最新文章

  1. 更换yum的源为阿里云或者网易
  2. 物理化学 化学 动力学(上)
  3. PostgreSQL学习笔记2之模式
  4. Eclipse里如何指定目标JRE版本
  5. 女子在朋友圈辱骂前男友被起诉,最后法院判决结果舒适...
  6. html 正方形缩略图,html – 纯CSS图像缩略图
  7. WORD Application.Documents.Open函数返回null的一种解决方法
  8. 搜狗拼音皮肤 php文件,搜狗输入法皮肤制作教程(组图版)
  9. ubuntu下用VirtualBox安装Windows虚拟机
  10. Linux网络编程--recv函数返回值详解
  11. App性能测试揭秘(Android篇)
  12. 五个网络游戏植入商品营销的案例
  13. 解决 org.gjt.mm.mysql.Driver 报错问题(目前有效,看后续会不会出什么问题)
  14. 精辟!(/usr/bin/ld: cannot find -lxxx)可能出现的问题和原因
  15. Python的学习(十八)---- 单元测试工具nose
  16. elasticsearch springboot 实现分词搜索
  17. 基于Arduino实现简单人体红外感应灯(人体红外传感器+LED)
  18. CUDA: 对齐和未对齐结构之间的巨大访问速度差距实例
  19. 在tinymce富文本中上传本地视频编辑器中不能预览的解决方案
  20. JSON编辑器,在线与离线

热门文章

  1. nacl溶解度_氯化钠溶解度4 氯化钠溶解度不同温度的
  2. 调查结果:您使用什么.NET Framework功能?
  3. 移动端手机调试的方法
  4. c语言中符号起什么作用,C语言中的符号 和 | 是什么意思?
  5. python解锁电脑屏幕_怎样解除电脑屏幕锁定_教你解除电脑屏幕锁定的方法-系统城...
  6. Hello OsChina
  7. expdp异地备份 (expdp导出数据到其他服务器)
  8. Xcode升级以后构建ios出现 “unable to find utility PackageApplication, not a developer tool or in PATH”的报错解决
  9. tensoflow2.6训练自己的图像分类
  10. 京东Java岗:来自面试官的夺命连环56问,直接当场怀疑人生~