Hadoop 如何优化配置单元插入覆盖分区?

Hadoop 如何优化配置单元插入覆盖分区?,hadoop,mapreduce,hive,hdfs,Hadoop,Mapreduce,Hive,Hdfs,我在配置单元中编写了“插入覆盖分区”,将分区中的所有文件合并到更大的文件中 SQL: 使用上述设置,我将获得压缩输出,但生成输出文件所需的时间太长 即使它只运行地图作业,也需要很多时间 正在从配置单元侧寻找任何进一步的设置,以调整插入以更快地运行 指标。 15 GB文件==>需要10分钟 上面的设置帮助很大,持续时间从10分钟减少到了1分钟。有趣的是,看起来您主要是更改了拆分大小设置,这在时间上带来了巨大的变化,似乎我使用了不推荐的参数,例如80 GB的数据在拆分参数更改前花费了57分钟,更改后

我在配置单元中编写了“插入覆盖分区”,将分区中的所有文件合并到更大的文件中

SQL:

使用上述设置,我将获得压缩输出,但生成输出文件所需的时间太长

即使它只运行地图作业,也需要很多时间

正在从配置单元侧寻找任何进一步的设置,以调整插入以更快地运行

指标。

15 GB文件==>需要10分钟


上面的设置帮助很大,持续时间从10分钟减少到了1分钟。

有趣的是,看起来您主要是更改了拆分大小设置,这在时间上带来了巨大的变化,似乎我使用了不推荐的参数,例如80 GB的数据在拆分参数更改前花费了57分钟,更改后,800 GB花费了35分钟。谢谢。我不认为这是一个不推荐使用的参数,只是没有在Hive wiki中记录。我一直在使用“拆分大小”参数来更改正在使用的映射器的数量。
SET hive.exec.compress.output=true;
set hive.merge.smallfiles.avgsize=2560000000;
set hive.merge.mapredfiles=true;
set hive.merge.mapfiles =true;
SET mapreduce.max.split.size=256000000;
SET mapreduce.min.split.size=256000000;
SET mapreduce.output.fileoutputformat.compress.type =BLOCK;
SET hive.hadoop.supports.splittable.combineinputformat=true;
SET mapreduce.output.fileoutputformat.compress.codec=${v_compression_codec};

INSERT OVERWRITE TABLE ${source_database}.${table_name} PARTITION (${line}) \n SELECT ${prepare_sel_columns} \n from ${source_database}.${table_name} \n WHERE ${partition_where_clause};\n" 
SET hive.exec.compress.output=true;
SET mapreduce.input.fileinputformat.split.minsize=512000000; 
SET mapreduce.input.fileinputformat.split.maxsize=5120000000;
SET mapreduce.output.fileoutputformat.compress.type =BLOCK;
SET hive.hadoop.supports.splittable.combineinputformat=true;
SET mapreduce.output.fileoutputformat.compress.codec=${v_compression_codec};