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

Sofern wir eine Übersetzung der englischsprachigen Version des Handbuchs bereitstellen, gilt im Fall von Widersprüchen die englischsprachige Version des Handbuchs. Bei der Übersetzung handelt es sich um eine maschinelle Übersetzung.

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 – zum Beispiel, um Java 8 mit einem Cluster zu verwenden, der erstellt wird Amazon EMR Version 4.8.0 – eingestellt JAVA_HOME für eine Anwendung, indem sie die Einstellung an ihre Umgebungsklassifizierung bereitstellen, application-env. 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 Standard (hdfs://emrDeterminedIP:8020)
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, außer yarn.resourcemanager.hostname und fs.default.name Einstellungen.

Anwendungsbenutzer

Die Anwendungen führen Prozesse als deren eigene Benutzer aus. Beispielsweise laufen Hive jvms als Benutzer hive, maPreduce jvms laufen als mapred, 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