簡體   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