如何更改在 AWS 数据管道中运行的 Hive 活动的内存设置?
Posted
技术标签:
【中文标题】如何更改在 AWS 数据管道中运行的 Hive 活动的内存设置?【英文标题】:How to change memory settings for Hive Activity running in AWS data pipeline? 【发布时间】:2017-08-07 11:46:14 【问题描述】:在使用 AWS Data Pipeline
运行一个 Hive Activity
时,我的 Hive 活动失败并出现以下错误:
Diagnostics: Container [pid=,containerID=] is running beyond physical memory limits.
Current usage: 1.0 GB of 1 GB physical memory used;
2.8 GB of 5 GB virtual memory used. Killing container.
当我运行 Hive Activity 手动执行的 Hive 脚本时,我必须执行如下所示:
hive \
-hiveconf tez.am.resource.memory.mb=16000 \
-hiveconf mapreduce.map.memory.mb=10240 \
-hiveconf mapreduce.map.java.opts=-Xmx8192m \
-hiveconf mapreduce.reduce.memory.mb=10240 \
-hiveconf mapreduce.reduce.java.opts=-Xmx8192m \
-hiveconf hive.exec.parallel=true
-f <hive script file path.>
通过这些设置,Hive 脚本可以完美执行。
现在的问题是如何将这些设置传递给 AWS 数据管道的 Hive Activity?我似乎找不到任何方法将 -hiveconf
传递给 Hive 活动。
【问题讨论】:
【参考方案1】:您如何在 DataPipeline 中调用您的配置单元脚本? 如果您使用 ShellCommandActivity,您应该能够像在命令行上那样传递这些 -hiveconf 并且它应该可以正常运行。
【讨论】:
ShellCommandActivity 可以使用,但我想知道是否有任何方法可以使用 HiveActivity 本身来实现同样的目的。 我知道有点晚了,但是您应该可以使用数据管道中的“SCRIPT VARIABLE”选项来完成这项工作,并且有***.com/questions/23415400/… @DhairyaVerma ,当我们在 2017 年遇到这个特殊问题时,我们找不到任何解决这个问题的方法。所以我们最终只使用了 ShellCommandActivity。或许到了 2020 年,AWS 已经为这个问题提供了一些解决方案。以上是关于如何更改在 AWS 数据管道中运行的 Hive 活动的内存设置?的主要内容,如果未能解决你的问题,请参考以下文章
覆盖现有插入模式如何在 aws 数据管道的 redshiftcopyactivity 中工作