Yarn工作机制?思维导图 代码示例(java 架构)

打印 上一主题 下一主题

主题 1045|帖子 1045|积分 3135

YARN 工作机制

YARN(Yet Another Resource Negotiator)是Hadoop生态体系中的资源管理和调度框架,它负责管理集群中的所有资源,并为应用步伐提供调度服务。以下是关于YARN工作机制的详细介绍:
YARN 架构组件


  • ResourceManager (RM)

    • 管理整个集群的资源分配。
    • 负责启动和监控ApplicationMaster。

  • NodeManager (NM)

    • 每个节点上的代理,负责容器的生命周期管理。
    • 监控并陈诉节点健康状况给ResourceManager。

  • ApplicationMaster (AM)

    • 每个应用步伐都有一个ApplicationMaster实例。
    • 向ResourceManager请求资源,并与NodeManager通信以启动和监控使命。

  • Container

    • 由NodeManager管理的资源隔离环境。
    • 包罗CPU、内存等资源,用于运行详细的使命。

YARN 工作流程


  • 客户端提交作业

    • 用户通过命令行或API提交作业到ResourceManager。

  • ResourceManager分配Container给ApplicationMaster

    • ResourceManager根据可用资源为ApplicationMaster分配一个Container。

  • 启动ApplicationMaster

    • NodeManager在分配的Container中启动ApplicationMaster进程。

  • ApplicationMaster注册到ResourceManager

    • ApplicationMaster向ResourceManager注册自己,并开始请求更多资源。

  • ApplicationMaster请求资源

    • ApplicationMaster根据应用步伐需求向ResourceManager请求更多Container来运行使命。

  • ResourceManager分配Container给ApplicationMaster

    • ResourceManager将Container分配给ApplicationMaster,用于运行Map/Reduce使命或其他类型的使命。

  • ApplicationMaster启动使命

    • ApplicationMaster在得到的Container中启动详细使命。

  • 使命执行

    • Map/Reduce使命在NodeManager上执行,处理数据并将结果写入HDFS。

  • 状态更新和进度陈诉

    • 使命定期向ApplicationMaster陈诉进度,ApplicationMaster汇总后向ResourceManager陈诉。

  • 完成作业

    • 当所有使命完成后,ApplicationMaster清理工作并向ResourceManager注销自己。

  • 关照客户端

    • ApplicationMaster告知客户端作业已完成。

思维导图结构化表现

  1. YARN Work Mechanism
  2. ├── Architecture Components
  3. │   ├── ResourceManager (RM)
  4. │   │   └── 管理集群资源分配,启动和监控ApplicationMaster
  5. │   ├── NodeManager (NM)
  6. │   │   └── 节点上的代理,管理容器生命周期,监控节点健康状况
  7. │   ├── ApplicationMaster (AM)
  8. │   │   └── 请求资源并与NodeManager通信启动和监控任务
  9. │   └── Container
  10. │       └── 资源隔离环境,包含CPU、内存等资源
  11. └── Work Flow
  12.     ├── 客户端提交作业
  13.     ├── ResourceManager分配Container给ApplicationMaster
  14.     ├── 启动ApplicationMaster
  15.     ├── ApplicationMaster注册到ResourceManager
  16.     ├── ApplicationMaster请求资源
  17.     ├── ResourceManager分配Container给ApplicationMaster
  18.     ├── ApplicationMaster启动任务
  19.     ├── 任务执行
  20.     ├── 状态更新和进度报告
  21.     ├── 完成作业
  22.     └── 通知客户端
复制代码
Java代码示例:提交YARN应用

以下是一个简化版的Java代码片断,演示了如何使用YARN API提交一个简朴的MapReduce作业。请留意,这只是一个框架性的示例,实际应用中需要实现详细的Mapper和Reducer逻辑。
  1. import org.apache.hadoop.conf.Configuration;
  2. import org.apache.hadoop.fs.Path;
  3. import org.apache.hadoop.io.IntWritable;
  4. import org.apache.hadoop.io.Text;
  5. import org.apache.hadoop.mapreduce.Job;
  6. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  7. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  8. public class YarnAppSubmitter {
  9.   public static void main(String[] args) throws Exception {
  10.     // 设置作业配置
  11.     Configuration conf = new Configuration();
  12.     Job job = Job.getInstance(conf, "word count");
  13.     job.setJarByClass(YarnAppSubmitter.class);
  14.    
  15.     // 设置Mapper和Reducer类
  16.     job.setMapperClass(TokenizerMapper.class);
  17.     job.setReducerClass(IntSumReducer.class);
  18.     // 设置键值对类型
  19.     job.setOutputKeyClass(Text.class);
  20.     job.setOutputValueClass(IntWritable.class);
  21.     // 设置输入输出路径
  22.     FileInputFormat.addInputPath(job, new Path(args[0]));
  23.     FileOutputFormat.setOutputPath(job, new Path(args[1]));
  24.     // 提交作业并等待完成
  25.     System.exit(job.waitForCompletion(true) ? 0 : 1);
  26.   }
  27. }
复制代码
这段代码展示了如何创建和配置一个MapReduce作业,并将其提交给YARN集群。TokenizerMapper和IntSumReducer是用户界说的Mapper和Reducer类,它们实现了详细的数据处理逻辑。如果您想相识更详细的代码实现,请提供更多的细节大概指定您想要相识的详细部分。
进一步优化和高级特性

对于更复杂的场景,您可以思量以下几点来进一步优化YARN应用步伐:


  • 调整资源配置:根据作业需求调整Container大小(如内存、CPU核心数),确保合理分配资源。
  • 启用压缩:对中间数据启用压缩可以减少磁盘I/O和网络传输的数据量。
  • 使用Combiner:如果大概的话,在Mapper端应用Combiner来预先汇总数据,从而减少传输到Reducer的数据量。
  • 配置调度器计谋:选择得当的调度器(如Capacity Scheduler或Fair Scheduler),并根据业务需求进行参数调优。
  • 管理数据当地性:尽量让计算靠近数据存储的位置执行,以减少网络传输开销。
这些优化措施可以帮助进步YARN应用步伐的性能和服从。如果您有特定的需求或遇到的题目,请提供更多细节以便给出更有针对性的建议。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表