繁体   English   中英

Amazon Elastic MapReduce 引导操作不工作

[英]Amazon Elastic MapReduce Bootstrap Actions not working

我尝试了以下引导操作组合来增加我的工作的堆大小,但它们似乎都不起作用:

--mapred-key-value mapred.child.java.opts=-Xmx1024m 
--mapred-key-value mapred.child.ulimit=unlimited

--mapred-key-value mapred.map.child.java.opts=-Xmx1024m 
--mapred-key-value mapred.map.child.ulimit=unlimited

-m mapred.map.child.java.opts=-Xmx1024m
-m mapred.map.child.ulimit=unlimited 

-m mapred.child.java.opts=-Xmx1024m 
-m mapred.child.ulimit=unlimited 

什么是正确的语法?

您有两种选择来实现这一目标:

自定义 JVM 设置

为了应用自定义设置,您可能需要查看Amazon Elastic MapReduce (Amazon EMR)Bootstrap Actions文档,特别是操作Configure Daemons

这个预定义的引导操作允许您为 Hadoop 守护程序指定堆大小或其他 Java 虚拟机 (JVM) 选项。 您可以使用此引导操作为需要比 Hadoop 默认分配更多的 memory 的大型作业配置 Hadoop。 您还可以使用此引导操作来修改高级 JVM 选项,例如垃圾收集行为。

还提供了一个示例,它将堆大小设置为 2048 并配置 Java namenode 选项

$ ./elastic-mapreduce –create –alive \
  --bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-daemons \
  --args --namenode-heap-size=2048,--namenode-opts=-XX:GCTimeRatio=19   

预定义 JVM 设置

或者,根据常见问题解答如何为我的工作流程配置 Hadoop 设置? 如果您的作业流任务是内存密集型任务,您可以选择每个内核使用较少的任务并减少作业跟踪器堆大小。 对于这种情况,预定义的 Bootstrap Action 可用于在启动时配置您的作业流- 这指的是操作Configure Memory-Intensive Workloads ,它允许您将集群范围的 Hadoop 设置设置为适合内存密集型作业流的值工作负载,例如:

$ ./elastic-mapreduce --create \
--bootstrap-action \
  s3://elasticmapreduce/bootstrap-actions/configurations/latest/memory-intensive

Hadoop Memory-Intensive Configuration Settings中列出了此预定义引导操作应用的特定配置设置。

祝你好运!

Steffen 的回答很好并且有效。 另一方面,如果您只是想要一些快速而肮脏的东西并且只想替换一个或两个变量,那么您可能希望通过命令行更改它,如下所示:

elastic-mapreduce --create \
--bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop \
  --args "-m,mapred.child.java.opts=-Xmx999m"

我看过另一个文档,尽管是一个较旧的文档,它只是在一个引号中引用整个表达式,如下所示:

--bootstrap-action "s3://elasticmapreduce/bootstrap-actions/configure-hadoop -m \
    mapred.child.java.opts=-Xmx999m"    ### I tried this style, it no longer works!

无论如何,这在AWS EMR 文档中并不容易找到。 我怀疑 mapred.child.java.opts 是最常被覆盖的变量之一——当我收到 GC 错误时,我也在寻找答案:“java.lang.OutOfMemoryError: GC overhead limit exceeded”,无意中发现了这个页面. 200m 的默认值太小了( 有关默认值的文档)。

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM