Map Reduce Shuffle(洗牌)

本文介绍了MapReduce中InputFormat和OutputFormat的作用,强调了Mapper输出key/value的一致性要求。接着详细讲解了Map Reduce Shuffle的过程,包括解决Jar包依赖、数据清洗、降噪以及如何干预分区策略以避免数据倾斜。还提到了开启Map端压缩以优化网络带宽,并解释了CombinerReducer的工作原理。最后,文章提供了与MapReduce和HDFS相关的其他主题链接。
摘要由CSDN通过智能技术生成

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(第三方)

Map Reduce Shuffle(洗牌)

  • 掌握MR任务提交源码流程

  • 解决MR任务计算过程中的Jar包依赖

JobSubmitter(DFS|YARNRunner)
    submitJobInternal(Job.this, cluster);
    	checkSpecs(job);#检查输出目录是否存在
    	JobID jobId 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值