CombineHiveInputFormat 是 Hadoop 提供的一个 InputFormat,它的作用是将小文件进行合并,从而提高 MapReduce 作业的执行效率。

在 CombineHiveInputFormat 中,split 的过程如下:

  1. 首先,会通过 JobConf 获取输入路径(Input Path)列表,这个列表可以包含多个输入路径。
  2. 然后,根据输入路径列表,使用 FileInputFormat 的静态方法 listStatus 获取每个输入路径的文件列表。
  3. 对于每个文件,会根据文件的大小以及 Hadoop 配置中的参数(比如 mapred.min.split.size 和 mapred.max.split.size)来决定是否需要进行 split。
  4. 如果文件的大小小于 mapred.min.split.size,那么这个文件会被忽略,不会生成 split。
  5. 如果文件的大小大于等于 mapred.min.split.size,但小于等于 mapred.max.split.size,那么这个文件将会生成一个 split。
  6. 如果文件的大小大于 mapred.max.split.size,那么这个文件会被切分成多个 split,每个 split 的大小为 mapred.max.split.size。这样可以确保每个 split 的大小都不会超过 mapred.max.split.size。
  7. 最后,会将每个 split 添加到 List splits 中,并返回 splits。

总结起来,CombineHiveInputFormat 的 split 过程就是根据输入路径列表获取文件列表,并根据文件的大小进行切分,最终生成一个或多个 split。这样可以将小文件合并成大文件,提高 MapReduce 作业的执行效率

CombineHiveInputFormat 是如何进行split

原文地址: http://www.cveoy.top/t/topic/ilGk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录