尚硅谷大数据技术之Hadoop(MapReduce)(新)第2章 Hadoop序列化

3.1.5 CombineTextInputFormat案例实操

1.需求

将输入的大量小文件合并成一个切片统一处理。

(1)输入数据

准备4个小文件

(2)期望

期望一个切片处理4个文件

2.实现过程

(1)不做任何处理,运行1.6的WordCount案例程序,观察切片个数为4

(2)在WordcountDriver增加如下代码运行程序,并观察运行的切片个数为3

(a)驱动类中添加代码如下:

// 如果不设置InputFormat,它默认用的是TextInputFormat.class

job.setInputFormatClass(CombineTextInputFormat.class);

//虚拟存储切片最大值设置4m

CombineTextInputFormat.setMaxInputSplitSize(job, 4194304);

(b)运行如果为3个切片。

3在WordcountDriver增加如下代码运行程序,并观察运行的切片个数为1

(a)驱动中添加代码如下:

// 如果不设置InputFormat,它默认用的是TextInputFormat.class

job.setInputFormatClass(CombineTextInputFormat.class);

//虚拟存储切片最大值设置20m

CombineTextInputFormat.setMaxInputSplitSize(job, 20971520);

(b)运行如果为1个切片。

3.1.6 FileInputFormat实现