これを実現するには、次の 2 つのオプションがあります。
カスタム JVM 設定
カスタム設定を適用するには、Amazon Elastic MapReduce (Amazon EMR)のBootstrap Actionsドキュメント、具体的にはアクションConfigure Daemonsを参照することをお勧めします。
この定義済みのブートストラップ アクションを使用すると、Hadoop デーモンのヒープ サイズまたはその他の Java 仮想マシン (JVM) オプションを指定できます。このブートストラップ アクションを使用して、Hadoop がデフォルトで割り当てるよりも多くのメモリを必要とする大規模なジョブ用に 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 設定
または、FAQ に従って、ジョブ フローの Hadoop 設定を構成するにはどうすればよいですか? ジョブ フロー タスクが大量のメモリを消費する場合は、コアあたりのタスク数を減らし、ジョブ トラッカーのヒープ サイズを減らすことを選択できます。この状況では、事前定義された Bootstrap アクションを使用して、起動時にジョブ フローを構成できます。これは、クラスター全体の Hadoop 設定をメモリ集約型のジョブ フローに適した値に設定できるアクションConfigure Memory-Intensive Workloadsを指します。たとえば、次のようになります。
$ ./elastic-mapreduce --create \
--bootstrap-action \
s3://elasticmapreduce/bootstrap-actions/configurations/latest/memory-intensive
この定義済みのブートストラップ アクションによって適用される特定の構成設定は、Hadoop メモリ集約型の構成設定に一覧表示されています。
幸運を!