翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
特定の Java 仮想マシンを使用するようにアプリケーションを設定
Amazon EMRリリースには、デフォルトの Java 仮想マシン (JVM) バージョンが異なります。このページでは、さまざまなリリースとアプリケーションJVMのサポートについて説明します。
考慮事項
アプリケーションでサポートされている Java バージョンの詳細については、「Amazon EMRリリースガイド」の「アプリケーションページ」を参照してください。
-
Amazon では、クラスターで 1 つのランタイムバージョンを実行するEMRことのみがサポートされ、同じクラスターで異なるランタイムバージョンで異なるノードまたはアプリケーションを実行することはサポートされていません。
-
Amazon EMR7.x の場合、デフォルトの Java 仮想マシン (JVM) は、Apache Livy を除き、Java 17 をサポートするアプリケーションでは Java 17 です。アプリケーションでサポートされているJDKバージョンの詳細については、「Amazon リリースガイド」の対応するEMRリリースページを参照してください。
-
Amazon 7EMR.1.0 以降、Flink は をサポートし、デフォルトで Java 17 に設定されています。別のバージョンの Java ランタイムを使用するには、
flink-conf
の設定を上書きします。Java 8 または Java 11 を使用するように Flink を設定する方法の詳細については、「Configure Flink to run with Java 11」を参照してください。 -
Amazon 5EMR.x および 6.x の場合、デフォルトの Java 仮想マシン (JVM) は Java 8 です。
-
Amazon EMRリリース 6.12.0 以降では、一部のアプリケーションは Java 11 および 17 もサポートしています。
-
Amazon EMRリリース 6.9.0 以降では、Trino はデフォルトで Java 17 をサポートしています。Java 17 と Trino の詳細については、Trino のブログ、「Trino updates to Java 17
」を参照してください。
-
ランタイムバージョンを選択する際には、次に示すアプリケーション固有の考慮事項に留意してください。
アプリケーション | Java の設定に関する注意点 |
---|---|
Spark |
Spark をデフォルト以外の Java バージョンで稼働させるには、Spark と Hadoop の両方を設定する必要があります。例については、「を上書きする JVM」を参照してください。
|
Spark RAPIDS |
Spark 用に設定された Java バージョンRAPIDSで を実行できます。 |
Iceberg |
Iceberg は、それを使用するアプリケーションの設定済み Java バージョンで稼働させることができます。 |
Delta |
Delta は、それを使用するアプリケーションの設定済み Java バージョンで稼働させることができます。 |
Hudi |
Hudi は、それを使用するアプリケーションの設定済み Java バージョンで稼働させることができます。 |
Hadoop |
JVM for Hadoop を更新するには、 を変更します |
[Hive] |
Hive の Java バージョンを 11 または 17 に設定するには、使用する Java バージョンに Hadoop JVM設定を設定します。 |
HBase |
JVM の を更新するにはHBase、 を変更します |
Flink |
Flink JVMの を更新するには、 を変更します |
Oozie |
Oozie が Java 11 または 17 で稼働するように構成するには、Oozie サーバーと Oozie LauncherAM ランチャー AM の設定を行い、クライアント側の実行ファイルとジョブ設定を変更します。 |
Pig | Pig は Java 8 のみをサポートしています。Hadoop で Java 11 または 17 を使用し、それと同じクラスターで Pig を稼働させることはできません。 |
を上書きする JVM
Amazon EMRリリースJVMの設定を上書きするには - たとえば、Amazon EMRリリース 6.12.0 を使用するクラスターで Java 17 を使用するには、Flink を除く
すべてのアプリケーションの環境分類に application
-envJAVA_HOME
設定を指定します。Flink の環境分類は flink-conf
です。Flink の Java ランタイムを設定する手順については、「Flink が Java 11 で実行されるよう設定する」を参照してください。
Apache Spark で JVM設定を上書きする
Amazon EMRリリース 6.12 以降で Spark を使用する場合、クラスターモードで送信するドライバーを記述すると、ドライバーは Java 8 を使用しますが、エグゼキュターが Java 11 または 17 を使用するように環境を設定できます。また、Amazon EMRリリース 5.x より前のバージョンで Spark を使用し、クラスターモードで送信するドライバーを作成すると、ドライバーは Java 7 を使用します。エグゼキューターが Java 8 を使用するよう環境を設定できます。
JVM for Spark を上書きするには、Hadoop 分類と Spark 分類の両方を設定することをお勧めします。
{ "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} }, { "Classification": "spark-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} }
Apache で JVM設定を上書きする HBase
Java 11 を使用するHBaseように を設定するには、クラスターの起動時に次の設定を行います。
[ { "Classification": "hbase-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-11" } } ], "Properties": {} } ]
Apache Hadoop と Hive で JVM設定を上書きする
次の例は、Hadoop と Hive の JVMをバージョン 17 に設定する方法を示しています。
[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-17" } } ], "Properties": {} } ]
サービスポート
以下は、 YARNおよび HDFSサービスポートです。これらの設定には、Hadoop のデフォルトが反映されます。特に文言化されていない限り、他のアプリケーションサービスはデフォルトのポートでホストされます。詳細については、アプリケーションのプロジェクトドキュメントを参照してください。
設定 | ホスト名 / ポート |
---|---|
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
デフォルト ( |
|
|
注記
用語emrDeterminedIP
は、Amazon EMRコントロールプレーンによって生成される IP アドレスです。新しいバージョンでは、この規則は削除されています ( yarn.resourcemanager.hostname
および fs.default.name
設定は除く)。
アプリケーションユーザー
アプリケーションでは、プロセスを独自のユーザーとして実行します。たとえば、Hive JVMsはユーザー として実行されhive
、 MapReduce JVMs は として実行されますmapred
。これを、次のプロセスステータスの例に示します。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hive 6452 0.2 0.7 853684 218520 ? Sl 16:32 0:13 /usr/lib/jvm/java-openjdk/bin/java -Xmx256m -Dhive.log.dir=/var/log/hive -Dhive.log.file=hive-metastore.log -Dhive.log.threshold=INFO -Dhadoop.log.dir=/usr/lib/hadoop
hive 6557 0.2 0.6 849508 202396 ? Sl 16:32 0:09 /usr/lib/jvm/java-openjdk/bin/java -Xmx256m -Dhive.log.dir=/var/log/hive -Dhive.log.file=hive-server2.log -Dhive.log.threshold=INFO -Dhadoop.log.dir=/usr/lib/hadoop/l
hbase 6716 0.1 1.0 1755516 336600 ? Sl Jun21 2:20 /usr/lib/jvm/java-openjdk/bin/java -Dproc_master -XX:OnOutOfMemoryError=kill -9 %p -Xmx1024m -ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Dhbase.log.dir=/var/
hbase 6871 0.0 0.7 1672196 237648 ? Sl Jun21 0:46 /usr/lib/jvm/java-openjdk/bin/java -Dproc_thrift -XX:OnOutOfMemoryError=kill -9 %p -Xmx1024m -ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Dhbase.log.dir=/var/
hdfs 7491 0.4 1.0 1719476 309820 ? Sl 16:32 0:22 /usr/lib/jvm/java-openjdk/bin/java -Dproc_namenode -Xmx1000m -Dhadoop.log.dir=/var/log/hadoop-hdfs -Dhadoop.log.file=hadoop-hdfs-namenode-ip-10-71-203-213.log -Dhadoo
yarn 8524 0.1 0.6 1626164 211300 ? Sl 16:33 0:05 /usr/lib/jvm/java-openjdk/bin/java -Dproc_proxyserver -Xmx1000m -Dhadoop.log.dir=/var/log/hadoop-yarn -Dyarn.log.dir=/var/log/hadoop-yarn -Dhadoop.log.file=yarn-yarn-
yarn 8646 1.0 1.2 1876916 385308 ? Sl 16:33 0:46 /usr/lib/jvm/java-openjdk/bin/java -Dproc_resourcemanager -Xmx1000m -Dhadoop.log.dir=/var/log/hadoop-yarn -Dyarn.log.dir=/var/log/hadoop-yarn -Dhadoop.log.file=yarn-y
mapred 9265 0.2 0.8 1666628 260484 ? Sl 16:33 0:12 /usr/lib/jvm/java-openjdk/bin/java -Dproc_historyserver -Xmx1000m -Dhadoop.log.dir=/usr/lib/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/lib/hadoop