Job提交和监听
- 检查input 和output 的规范
- 计算InputSplit 的值
- 设置DistributedCache 必要的accounting information ,如果需要。
- 拷贝作业的jar和配置文件到MR系统文件夹。
- 将Job提交到ResourceManager 并可选的监听状态。
Job的输入
MR框架依赖于Job的InputFomat来:
- 验证作业输入规范
- 将输入文件切分成逻辑InputSplit实例,每个分配一个Mapper
- 提供RecordReader用于从InputSplit收集输入记录,以被Mapper处理。
文件系统的Blocksize是InputSplit上限,下限可以通过mapreduce.input.fileinputformat.split.minsize
进行设置。
Job的输出
- 验证作业的输出规范。例如:检查输出文件夹是否已经存在。
- 提供RecordWriter的实现,用于写作业输出文件。输出文件被存在FileSystem中。
其他有用的特性
提交作业到队列
例如:队列使用ACLs控制用户提交到哪个队列。Queues主要用于Hadoop的调度器。
Counters
Counters代表全局计数器。由MR框架或者应用定义。
DistributedCache – (有时间还是要仔细看一下,作用是什么)
DistributedCache是由MR框架提供用于缓存应用程序用到的文件(text, archives, jars and so on),缓存的文件在作业执行过程中,不能被修改。
DistributedCache 也可以被视为基本的软件分发机制,用在map和reduce任务中。
跳过坏记录