MapReduce Job Run

  • 客户端:提交MapReduce  job
  • YARN resouce manager,协调集群计算资源分配
  • YARN node manager,产生并且监控在集群中的机器上的containers
  • MapReduce application master,协调MapReduce job中运行的task
  • HDFS,用来共享job文件和其他实例

Job Submission

  • 询问resource manager来获取一个新的应用id,用来作为MapReduce job ID
  • 检查job的输出指定,如果文件已经存在或者未指定输出抛出一个错误
  • 计算输入分割,如果分割无法被计算降抛出一个错误
  • 复制资源来运行job,包括job的JAR file,配置文件,计算输入分割到共享的文件系统中,以job ID命名。job JAR会被复制高的备份,以便运行时有多个nodemanager可以运行
  • 调用submitApplication()在resource manager来提交任务

Job Initialization

  • 当resource manager收到调用它的submitApplication()方法,它将其交给YARN scheduler,scheduler分配一个容器,并且resource manager 生成一个application master进程在哪里,在node manager的管理下。
  • 对于MapReduce jobs,application master就是一个Java应用主类是MRAppMaster.

  

时间: 2024-10-05 10:04:26

MapReduce Job Run的相关文章

[Hadoop] - Hadoop Mapreduce Error: GC overhead limit exceeded

在运行mapreduce的时候,出现Error: GC overhead limit exceeded,查看log日志,发现异常信息为 2015-12-11 11:48:44,716 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.OutOfMemoryError: GC overhead limit exceeded at java.io.DataInputStream.readU

Hadoop读书笔记(十一)MapReduce中的partition分组

Hadoop读书笔记系列文章:http://blog.csdn.net/caicongyang/article/category/2166855 1.partition分组 partition是指定分组算法,以及通过setNumReduceTasks设定Reduce的任务个数 2.代码 KpiApp.ava package cmd; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; i

MapReduce分布式缓存程序,无法在Windows下的Eclipse中执行问题解决

在写mapreduce程序中经常要用到hadoop自动的分布式缓存DistributedCache(新版本已经换新的API),但是在windows下Eclipse中执行,会出现类似如下错误: 2016-03-03 10:53:21,424 WARN [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform..

MapReduce中使用字符串拼接导致的问题

今天在帮业务方优化mapreduce作业时遇到一个用字符串拼接的问题. reduce中字符串拼接代码: while (it.hasNext()) { line = it.next().toString(); artID+=line+","; ct++; } 采用的是String直接拼接,结果是该作业作业只剩一个reduce一直在运行,而且时间长达6小时,其他已经完成的reduce只用了10多分钟. 咨询了一下业务方,artID有的会很长,这个时候会一直进行字符串拼接. 我又看了一下未完

mapreduce设置setMapOutputKeyClass与setMapOutputValueClass原因

一般的mapreduce的wordcount程序如下: public class WcMapper extends Mapper<LongWritable, Text, Text, LongWritable> { @Override protected void map(LongWritable key, Text value, Context ctx) throws IOException, InterruptedException { String[] words = value.toSt

解决sqoop报错Invalid number; item = ITEM_UNICODE

报错栈: java.sql.SQLException: Invalid number; item = ITEM_UNICODE at com.intersys.jdbc.SysList.getInt(SysList.java:1735) at com.intersys.jdbc.CacheResultSet.getInt(CacheResultSet.java:247) at org.apache.sqoop.lib.JdbcWritableBridge.readInteger(JdbcWrit

解决sqoop报错:SQLServerException: 将字符串转换为 uniqueidentifier 时失败。

报错栈: Error: java.io.IOException: Cannection handler cannot recover failure: at org.apache.sqoop.mapreduce.db.SQLServerDBRecordReader.nextKeyValue(SQLServerDBRecordReader.java:169) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyVal

sqoop相关整理记录

生产背景: 在从mysql导入到hive中,遇到如下问题: 1) 源mysql和集群机器不在同一个网段中,导致执行导入命令,网络连接失败. 2) 某些字符导入到hive中,出现报错终止. 2.1  sqoop使用的JDBC-connector 版本太低(更换版本). 从hive导出到mysql中,遇到如下问题: 1)某些字符插入mysql,出现报错终止. 1.1 可能mysql本身编码的限制,某些字符不支持,比如uft8和utf8mb4 1.2  sqoop使用的JDBC-connector 版

【甘道夫】Hadoop2.2.0环境使用Sqoop-1.4.4将Oracle11g数据导入HBase0.96,并自动生成组合行键

目的: 使用Sqoop将Oracle中的数据导入到HBase中,并自动生成组合行键! 环境: Hadoop2.2.0 Hbase0.96 sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz Oracle11g jdk1.7 Ubuntu14 Server 这里关于环境吐槽一句: 最新版本的Sqoop1.99.3功能太弱,只支持导入数据到HDFS,没有别的任何选项,太土了!(如有不同意见欢迎讨论给出解决方案) 命令: sqoop import --connect