amazon-s3 - 如何在 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 启用它的方法(也不清楚我是否可以或应该)。
提前致谢。
解决方案
推荐阅读
- javascript - 属性检查不作为打字稿中的 html 元素存在?
- php - 如何打印或显示 DOMXPath 对象以查看它包含的内容?
- javascript - Puppeteer 导入函数错误:this._pageBindings.get(...) 不是函数
- symfony - 如何使用 EasyAdmin 在单个表单中创建具有多个日期的实体
- java - 对象引用如何在 Linkedlist (Java) 中工作?
- sql - 在 SQL 中,语法 UPDATE ...SET (field1, field2, field3) = (value1, value2, value3) 是标准语法吗?
- yii2 - 在 Yii2 Advanced 中上传和访问图片的最佳方式是什么?
- php - range(strtotime("00:00"), strtotime("23:59"), 30*60) laravel 升级到 7 后不能正常工作。是 php 的问题吗?
- django - Django 使用 bulk_update 更新所有记录
- javascript - node.js 中 req.param 中的未知值