0

在使用AWS Data Pipeline运行一个Hive Activity,我的蜂巢活动未能与以下错误:如何更改在AWS数据管道中运行的Hive Activity的内存设置?

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 \ 
-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活动?我似乎无法找到任何方式将-hiveconf传递给Hive活动。

回答

1

如何在DataPipeline中调用您的配置单元脚本? 如果使用ShellCommandActivity,您应该可以像在命令行上那样传递这些-hiveconf,并且它应该可以正常运行。

+0

可以使用ShellCommandActivity,但我想知道是否有任何方法使用HiveActivity本身来实现同样的事情。 – Shekhar

+1

我知道它晚了点,但你应该能够在数据管道中使用“SCRIPT VARIABLE”选项来完成这项工作,并且有https://stackoverflow.com/questions/23415400/how-to-use-scriptvariables-in-hive -aws数据流水线 – Krish

相关问题