hadoop 自定义分区

分区概念

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

Hadoop分区

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

hadoop 默认分区规则

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

以下是Partition 类中摘取出来的源码,还是很容易懂的
hadoop 自定义分区_第1张图片

hash分区代码演示

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

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

public class DemoJobDriver {

    public static void main(String[] args) throws Exception {

        //1、获取job
       

你可能感兴趣的:(hadoop,大数据,hadoop自定义分区,hadoop,自定义分区总结,hadoop,使用自定义分区)