InputFormat/OutputFormat
InputFormat&OutputFormat
-
InputFormat
-
FileInputFormat
- TextInputFormat
key/Value :key表示行字节的偏移量、value表示一行文本数据 切片计算规则 :以文件为单位,以SpliSize做切割
- NlineInputFormat
key/Value :key表示行字节的偏移量、value表示一行文本数据 切片计算规则 :以文件为单位,以n行作为一个切片
mapreduce.input.lineinputformat.linespermap=1000
控制一个切片的数据量- KeyValueTextInputFormat
key/Value :key 、value使用`\t`分割一行数据(默认) 切片计算规则 :以文件为单位,以SpliSize做切割
mapreduce.input.keyvaluelinerecordreader.key.value.separator=\t
- SequenceFileInputFormat
- CombineTextInputFormat
key/Value :key表示行字节的偏移量、value表示一行文本数据 切片计算规则 :以SpliSize做切割
可以解决小文件计算,优化MR任务。要求所有小文件格式必须一致
-
MultipleInputs
解决不同格式输入的数据,要求Mapper端输出的key/value必须一致。
- DBInputFormat
- TableInputFormat(第三方)
-
-
OutputFormat
- FileOutputFormat
- TextOutputFormat
- SequenceFileOutputFormat
- LazyOutputFormat
- MultipleOutputs
- DBOutputFormat
- TableOutputFormat(第三方)
- FileOutputFormat
Map Reduce Shuffle(洗牌)
-
掌握MR任务提交源码流程
-
解决MR任务计算过程中的Jar包依赖
JobSubmitter(DFS|YARNRunner)
submitJobInternal(Job.this, cluster);
checkSpecs(job);#检查输出目录是否存在
JobID jobId