Konfigurieren von Anwendungen zur Verwendung einer spezifischen Java Virtual Machine - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren von Anwendungen zur Verwendung einer spezifischen Java Virtual Machine

Java 8 ist die Standard-JVM (Java Virtual Machine) für Cluster-Instances mit Amazon EMR ab Version 5.0.0. So überschreiben Sie diese JVM-Einstellung, z. B. um Java 8 mit einem Cluster zu verwenden, der mit erstellt wurde Amazon EMR Version 4.8.0—eingestellt JAVA_HOME für eine Anwendung, indem die Einstellung der Umgebungsklassifizierung zugewiesen wird, application-env. (z. B.. Für Hadoop und Hive, zum Beispiel:

[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]

Wenn Sie für Spark einen Treiber für die Bereitstellung im Cluster-Modus schreiben, verwendet der Treiber Java 7. Die Umgebung kann dann aber so eingestellt werden, dass die Executors Java 8 verwenden. Zu diesem Zweck empfehlen wir die Definition der Hadoop- und Spark-Klassifizierungen:

[ { "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": {} } ]

Service-Ports

Die folgenden Ports sind YARN- und HDFS-Service-Ports. Diese Einstellungen stellen die Hadoop-Standardwerte dar. Andere Anwendungsservices werden bei Standard-Ports gehostet, sofern nicht anders dokumentiert. Weitere Informationen enthält die Projektdokumentation der Anwendung.

Port-Einstellungen für YARN und HDFS
Einstellung Hostname/Port
fs.default.name Standardwert (hdfs://emrDeterminedIP:8020 (auf Englisch)
dfs.datanode.address Standard (0.0.0.0:50010)
dfs.datanode.http.address Standard (0.0.0.0:50075)
dfs.datanode.https.address Standard (0.0.0.0:50475)
dfs.datanode.ipc.address Standard (0.0.0.0:50020)
dfs.http.address Standard (0.0.0.0:50070)
dfs.https.address Standard (0.0.0.0:50470)
dfs.secondary.http.address Standard (0.0.0.0:50090)
yarn.nodemanager.address Standard (${yarn.nodemanager.hostname}:0)
yarn.nodemanager.localizer.address Standard (${yarn.nodemanager.hostname}:8040)
yarn.nodemanager.webapp.address Standard (${yarn.nodemanager.hostname}:8042)
yarn.resourcemanager.address Standard (${yarn.resourcemanager.hostname}:8032)
yarn.resourcemanager.admin.address Standard (${yarn.resourcemanager.hostname}:8033)
yarn.resourcemanager.resource-tracker.address Standard (${yarn.resourcemanager.hostname}:8031)
yarn.resourcemanager.scheduler.address Standard (${yarn.resourcemanager.hostname}:8030)
yarn.resourcemanager.webapp.address Standard (${yarn.resourcemanager.hostname}:8088)
yarn.web-proxy.address Standard (no-value)
yarn.resourcemanager.hostname emrDeterminedIP
Anmerkung

Der Begriff emrDeterminedIP ist eine IP-Adresse, die von der Amazon EMR Steuerebene. In der neueren Version wurde diese Konvention entfernt, mit Ausnahme der Einstellungen yarn.resourcemanager.hostname und fs.default.name.

Anwendungsbenutzer

Die Anwendungen führen Prozesse als deren eigene Benutzer aus. So werden z. B. Hive-JVMs als Benutzer hive, MapReduce-JVMs als mapred ausgeführt und so weiter. Dies wird im folgenden Prozessstatusbeispiel gezeigt:

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