首页 > 解决方案 > 如何在 emr 6.4 上为 hive 指定 outputfilecommitter / algorithm

问题描述

我正在尝试从 EMR 5.18 迁移到 EMR 6.4,并且似乎 hive 现在使用的 mapreduce.fileoutputcommitter.algorithm.version 值为 1,即使我将其配置为 2,如下所示:

{
  "Classification": "core-site",
  "Properties": {
    ...
    "mapreduce.fileoutputcommitter.algorithm.version": "2",
    ...
  }
}

这在 5.18 中有效。在 5.18 中,我在重命名阶段看到如下消息:

2021-10-28 07:33:13,691 [INFO] [TezChild] |s3n2.S3NativeFileSystem2|: rename s3://**********/.hive-staging_hive_2021-10-28_07-30-50_813_8017322768660599110-1/_task_tmp.-ext-10000/_tmp.000001_0 s3://***********/.hive-staging_hive_2021-10-28_07-30-50_813_8017322768660599110-1/_tmp.-ext-10000/000001_0
2021-10-28 07:33:14,481 [INFO] [TezChild] |exec.FileSinkOperator|: RECORDS_OUT_1_default.**************:3860

在 6.4 中(使用相同的核心站点配置我看到以下内容:

2021-10-28 15:09:31,116 [INFO] [TezChild] |s3n.S3NativeFileSystem|: rename s3://*****/.hive-staging_hive_2021-10-28_14-55-19_880_6458647626005146122-1/_task_tmp.-ext-10000/_tmp.000001_0 s3://*****/.hive-staging_hive_2021-10-28_14-55-19_880_6458647626005146122-1/_tmp.-ext-10000/000001_0.avro using algorithm version 1
2021-10-28 15:09:31,617 [INFO] [TezChild] |exec.FileSinkOperator|: RECORDS_OUT_1_default.****:384, RECORDS_OUT_OPERATOR_FS_20:384, RECORDS_OUT_INTERMEDIATE_Reducer_4:0, 

有没有办法为 hive 指定版本 2?

或者有没有办法将 EMRFS S3 优化的提交者与 hive 一起使用?我知道 spark 默认使用它,但我找不到为 hive 启用它的方法(也不清楚我是否可以或应该)。

提前致谢。

标签: amazon-s3hiveamazon-emr

解决方案


推荐阅读