首页 > 作文

hadoop 全面解读自定义分区

更新时间:2023-04-05 20:32:35 阅读: 评论:0

分区概念

分区这个词对很多同学来说并不陌生,比如java很多中间件中,像kafka的分区,mysql的分区表等,分区存在的意义在于将数据按照业务规则进行合理的划分,方便后续对各个分区数据高效处理

hadoop分区

hadoop中的分区,是把不同数据输出到不同reducetask ,最终到输出不同文件中

hadoop 默认分区规则

hash分区按照key的hashcode % reducetask 数量 = 分区号默认reducetask 数量为1,当然也可以在driver 端设置

以下是partition 类中摘取出来的源码,还是很容易懂的

hash分区代码演示

下面是wordcount案例中的driver部分的代码,默认情况下我们不做任何设置,最终输出一个统计单词个数的txt文件,如果我们在这段代码中添加这样一行

再次运行下面的程序后,会出现什么结果呢?

可以看到,最终输出了2个统计结果文件,每个文件中的内容有所不同,这就是默认情况下,当reducer个数设置为多个时,会按照hash分区算法计算结果并输出到不同分区对应的文件中去

自定义分区步骤

自定义类继承partitioner重写getpartition方法,并在此方法中根据业务规则控制不同的数据进入到不同分区在job的驱动类中,设置自定义的partitioner类自定义partition后,要根据自定义的partition逻辑设置相应数量的reducetask

业务需求

将下面文件中 的人物名称按照姓氏,“马”姓的放入第一个分区,“李”姓的放入第二个分区,其他的放到其他第三个分区中

自定义分区

将自定义分区关联到driver类中,注意这里的reducetasks个数旁氏美白淡斑和自定义的分区数量保持一致

下面运行driver类,观察最终的输出结果,也是按照预期,将不同的姓氏数据输出到了不同的文件中

关于自定义分区的总结

如果reducetask的数量 > 自定义partion中的分区数量,则会多产生几个空的输出文件如果 1 < reducetask <学生公寓管理系统 自定义partion中的分区数量,有一部分的数据处理过程中无法找到相应的分区文件存储,会抛异常如果reduce黄玫瑰代表什么task中泰拳王争霸赛 = 1 ,则不管自定义的partion中分区数量为多少个,最终结果都只会交给这一个reducetask 处理,最终只会产生一个结果文件分区号必须从0开始,逐一累加

到此这篇关于hadoop 全面解读自定义分区的文章就介绍到这了,更多替父从军相关hadoop 自定义分区内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-05 20:32:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/9a4d73ff1ea80ae50ab361e8f7764155.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:hadoop 全面解读自定义分区.doc

本文 PDF 下载地址:hadoop 全面解读自定义分区.pdf

下一篇:返回列表
标签:分区   自定义   文件   数量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图