MapReduce进阶与经典案例

本文详细介绍了MapReduce的数据格式,包括文件格式、压缩格式及其应用。接着讲解了自定义Partitioner,包括HashPartitioner的默认实现、MapReduce个数的确定、自定义reduce数量及如何实现自定义Partition。最后,探讨了如何在MapReduce中读取外部配置文件,通过Configuration传递文件内容到Map任务中进行过滤处理,并给出了完整的代码实现和运行验证。
摘要由CSDN通过智能技术生成
  • 一.HDFS数据格式详解
  • 1、文件格式

  • 文件格式按面向的存储形式不同,分为面向行和面向列的两大类文件格式。

  • 面向行/列

    类型名称

    是否可切分

    优点

    缺点

    适用场景

    面向行

    文本文件格式(.txt)

    查看便编辑简单

    无压缩占空间大、传输压力大、数据解析开销大

    学习练习使用

    面向行

    sequenceFile序列文件格式(.seq)

    原生支持、二进制kv存储、支持行和块压缩

    本地查看不方便:小文件合并成kv结构后不易查看内部数据

    生产环境使用、map输出的默认文件格式

    面向列

    rcfile文件格式(.rc)

    数据加载快、查询快、空间利用率高、高负载能力

    每一项都不是最高

    学习生产均可

    面向列

    orcfile文件格式(.orc)

    兼具了rcfile优点,进一步提高了读取、存储效率、新数据类型的支持

    每一项都不是最高

    学习生产均可

  • 2、压缩格式

  • 压缩格式按其可切分计算性,分为可切分计算和不可切分计算两种。

  • 可切分性

    类型名称

    是否原生

    优点

    缺点

    适用场景

    可切分

    lzo(.lzo)

    压缩/解压速度快,合理的压缩率

    压缩率比gzip低,非原生、需要native安装

    单个文件越大,lzo优点越明显,压缩完成后>=200M为宜

    可切分

    bzip2(.bz2)

    高压缩率超过gzip,原生支持、不需要native安装,用linux bzip可解压操作

    压缩/解压速率慢

    处理速度要求不高、压缩率要求高的情况

    不可切分

    gzip(.gz)

    压缩/解压速度快,原生/native都支持,使用方便

    不可切分,对cpu要求较高

    压缩完成后<=128M的文件适宜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值