如何根据大小拆分ORC文件?

时间:2017-03-03 14:48:14

标签: java apache hadoop orc apache-crunch

我有一个要求,我想将5GB ORC文件分成5个文件,每个文件大小为1 GB。 ORC文件是可拆分的。这是否意味着我们只能按条带分割文件条带? 但我有要求我想根据大小拆分orc文件。 将ex.split 5GB ORC文件分成5个文件,每个文件大小为1 GB。 如果可能请分享示例。

1 个答案:

答案 0 :(得分:2)

一种常见的方法,并考虑到您的文件大小可以是5GB,100GB,1TB,100TB等。您可能希望挂载指向此文件的Hive表并定义另一个指向不同目录的表,然后运行使用Hive提供的insert语句从一个表插入另一个表。

在脚本开头,请确保您有以下Hive标志:

set hive.merge.mapredfiles=true;
set hive.merge.mapfiles=true;
set hive.merge.smallfiles.avgsize=1073741824;
set hive.merge.size.per.task=1073741824;

这样,每个reducer的输出平均值为1073741824 Bytes,等于1GB

如果您只想使用Java代码,请使用以下标志:

mapred.max.split.size
mapred.min.split.size

请检查这些,它们非常有用: