Anpassen der Cluster- und Anwendungskonfiguration mit früheren AMI Versionen von Amazon EMR - 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.

Anpassen der Cluster- und Anwendungskonfiguration mit früheren AMI Versionen von Amazon EMR

Mit der EMR Amazon-Version 4.0.0 wurde eine vereinfachte Methode zur Konfiguration von Anwendungen mithilfe von Konfigurationsklassifizierungen eingeführt. Weitere Informationen finden Sie unter Anwendungen konfigurieren. Wenn Sie eine AMI Version verwenden, konfigurieren Sie Anwendungen mithilfe von Bootstrap-Aktionen zusammen mit Argumenten, die Sie übergeben. Die Aktionen configure-hadoop und configure-daemons Bootstrap legen beispielsweise Hadoop- und YARN spezifische Umgebungseigenschaften wie fest. --namenode-heap-size In neueren Versionen werden diese mit den Konfigurationsklassifizierungen hadoop-env und yarn-env konfiguriert. Bootstrap-Aktionen, die allgemeine Konfigurationen durchführen, finden Sie im Repository auf Github. emr-bootstrap-actions

In den folgenden Tabellen werden Bootstrap-Aktionen den Konfigurationsklassifizierungen in neueren EMR Amazon-Release-Versionen zugeordnet.

Hadoop
Dateiname der betroffenen Anwendung AMIVersion: Bootstrap-Aktion Konfigurationsklassifizierung
core-site.xml configure-hadoop -c core-site
log4j.properties configure-hadoop -l hadoop-log4j
hdfs-site.xml configure-hadoop -s hdfs-site
hdfs-encryption-zones
mapred-site.xml configure-hadoop -m mapred-site
yarn-site.xml configure-hadoop -y yarn-site
httpfs-site.xml configure-hadoop -t httpfs-site
capacity-scheduler.xml configure-hadoop -z capacity-scheduler
yarn-env.sh configure-daemons --resourcemanager-opts yarn-env
Hive
Dateiname der betroffenen Anwendung AMIVersion: Bootstrap-Aktion Konfigurationsklassifizierung
hive-env.sh hive-env
hive-site.xml hive-script --install-hive-site ${MY_HIVE_SITE_FILE} hive-site
hive-exec-log4j.properties hive-exec-log4j
hive-log4j.properties hive-log4j
EMRFS
Dateiname der betroffenen Anwendung AMIVersion: Bootstrap-Aktion Konfigurationsklassifizierung
emrfs-site.xml configure-hadoop -e emrfs-site
s3get -s s3://custom-provider.jar -d /usr/share/aws/emr/auxlib/ emrfs-site (mit neuer Einstellung fs.s3.cse.encryptionMaterialsProvider.uri)

Eine Liste aller Klassifizierungen finden Sie unter Anwendungen konfigurieren.

Variablen für die Anwendungsumgebung

Wenn Sie eine AMI Version verwenden, wird ein hadoop-user-env.sh Skript zusammen mit der configure-daemons Bootstrap-Aktion verwendet, um die Hadoop-Umgebung zu konfigurieren. Das Skript umfasst die folgenden Aktionen:

#!/bin/bash export HADOOP_USER_CLASSPATH_FIRST=true; echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh

In EMR Amazon-Version 4.x machen Sie dasselbe mit der hadoop-env Konfigurationsklassifizierung, wie im folgenden Beispiel gezeigt:

[       {          "Classification":"hadoop-env",          "Properties":{          },          "Configurations":[             {                "Classification":"export",                "Properties":{                   "HADOOP_USER_CLASSPATH_FIRST":"true",                   "HADOOP_CLASSPATH":"/path/to/my.jar"                }             }          ]       }    ]

Ein weiteres Beispiel verdeutlicht, dass die Verwendung von configure-daemons und die Übergabe von --namenode-heap-size=2048 und --namenode-opts=-XX:GCTimeRatio=19 den folgenden Konfigurationsklassifizierungen entspricht.

[       {          "Classification":"hadoop-env",          "Properties":{          },          "Configurations":[             {                "Classification":"export",                "Properties":{                   "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19"                }             }          ]       }    ]

Andere Umgebungsvariablen der Anwendung werden nicht länger in /home/hadoop/.bashrc definiert. Stattdessen werden sie hauptsächlich in /etc/default-Dateien nach Komponente oder Anwendung eingerichtet, z. B. /etc/default/hadoop. Wrapper-Skripte, die von der Anwendung /usr/bin/ installiert werden, RPMs können auch zusätzliche Umgebungsvariablen setzen, bevor das eigentliche Bin-Skript verwendet wird.

Service-Ports

Wenn Sie eine AMI Version verwenden, verwenden einige Dienste benutzerdefinierte Ports.

Änderungen der Port-Einstellungen
Einstellung AMIVersion 3.x Open-Source-Standard
fs.default.name hdfs://IP: 9000 emrDetermined Standard (hdfs://emrDeterminedIP:8020)
dfs.datanode.address 0.0.0.0:9200 Standard (0.0.0.0:50010)
dfs.datanode.http.address 0.0.0.0:9102 Standard (0.0.0.0:50075)
dfs.datanode.https.address 0.0.0.0:9402 Standard (0.0.0.0:50475)
dfs.datanode.ipc.address 0.0.0.0:9201 Standard (0.0.0.0:50020)
dfs.http.address 0.0.0.0:9101 Standard (0.0.0.0:50070)
dfs.https.address 0.0.0.0:9202 Standard (0.0.0.0:50470)
dfs.secondary.http.address 0.0.0.0:9104 Standard (0.0.0.0:50090)
yarn.nodemanager.address 0.0.0.0:9103 Standard (${yarn.nodemanager.hostname}:0)
yarn.nodemanager.localizer.address 0.0.0.0:9033 Standard (${yarn.nodemanager.hostname}:8040)
yarn.nodemanager.webapp.address 0.0.0.0:9035 Standard (${yarn.nodemanager.hostname}:8042)
yarn.resourcemanager.address emrDeterminedIP:9022 Standard (${yarn.resourcemanager.hostname}:8032)
yarn.resourcemanager.admin.address emrDeterminedIP:9025 Standard (${yarn.resourcemanager.hostname}:8033)
yarn.resourcemanager.resource-tracker.address emrDeterminedIP:9023 Standard (${yarn.resourcemanager.hostname}:8031)
yarn.resourcemanager.scheduler.address emrDeterminedIP:9024 Standard (${yarn.resourcemanager.hostname}:8030)
yarn.resourcemanager.webapp.address 0.0.0.0:9026 Standard (${yarn.resourcemanager.hostname}:8088)
yarn.web-proxy.address emrDeterminedIP:9046 Standard (no-value)
yarn.resourcemanager.hostname 0.0.0.0 (Standard) emrDeterminedIP
Anmerkung

Das Tool emrDeterminedIP ist eine IP-Adresse, die von Amazon generiert wirdEMR.

Benutzer

Bei Verwendung einer AMI Version hadoop führt der Benutzer alle Prozesse aus und besitzt alle Dateien. In EMR Amazon-Release-Version 4.0.0 und höher existieren Benutzer auf Anwendungs- und Komponentenebene.

Installationssequenz, installierte Artefakte und Speicherorte für die Protokolldatei

Wenn Sie eine AMI Version verwenden, werden Anwendungsartefakte und ihre Konfigurationsverzeichnisse im /home/hadoop/application Verzeichnis installiert. Wenn Sie beispielsweise das Verzeichnis Hive installiert hatten, lautete das Verzeichnis /home/hadoop/hive. In EMR Amazon-Version 4.0.0 und höher werden Anwendungsartefakte im /usr/lib/application Verzeichnis installiert. Wenn Sie eine AMI Version verwenden, befinden sich Protokolldateien an verschiedenen Stellen. In der folgenden Tabelle sind diese Speicherorte aufgeführt.

Änderungen der Protokollspeicherorte in Amazon S3
Daemon oder Anwendung Speicherort des Verzeichnisses
instance-state knoten/instance-id/instanzzustand/
hadoop-hdfs-namenode Dämonen/instance-id/.log hadoop-hadoop-namenode
hadoop-hdfs-datanode Dämonen/instance-id/.log hadoop-hadoop-datanode
hadoop-Garn () ResourceManager Dämonen/instance-id/yarn-hadoop-resourcemanager
hadoop-yarn (Proxy-Server) Dämonen/instance-id/yarn-hadoop-proxyserver
mapred-historyserver Dämonen/instance-id/
httpfs Dämonen/instance-id/httpfs.log
hive-server knoten/instance-id/hive-server/hive-server.log
hive-metastore knoten/instance-id/apps/hive.log
Bienenstock CLI knoten/instance-id/apps/hive.log
YARNAnwendungen, Benutzerprotokolle und Container-Protokolle task-attempts/
Mahout N/A
Pig N/A
spark-historyserver
Verlaufsdateien des MapReduce-Auftrags jobs/

Command Runner

Wenn Sie eine AMI Version verwenden/home/hadoop/contrib/streaming/hadoop-streaming.jar, werden viele Skripte oder Programme nicht in der Shell-Anmeldepfadumgebung platziert. Sie müssen also den vollständigen Pfad angeben, wenn Sie eine JAR-Datei wie command-runner.jar oder script-runner.jar verwenden, um die Skripten auszuführen. Das command-runner.jar befindet sich auf der, AMI sodass Sie nicht alles wissen müssen, URI wie es bei der Fall warscript-runner.jar.

Replikationsfaktor

Mit dem Replikationsfaktor können Sie konfigurieren, wann ein Hadoop JVM gestartet werden soll. Sie können JVM für jede Aufgabe ein neues Hadoop starten, was für eine bessere Aufgabenisolierung sorgt, oder Sie können die Aufgaben gemeinsam nutzen, wodurch JVMs der Framework-Overhead geringer wird. Wenn Sie viele kleine Dateien verarbeiten, ist es sinnvoll, diese JVM mehrfach wiederzuverwenden, um die Startkosten zu amortisieren. Wenn jedoch jede Aufgabe viel Zeit in Anspruch nimmt oder eine große Datenmenge verarbeitet, sollten Sie sich dafür entscheiden, die nicht wiederzuverwenden, JVM um sicherzustellen, dass der gesamte Speicher für nachfolgende Aufgaben freigegeben wird. Wenn Sie eine AMI Version verwenden, können Sie den Replikationsfaktor mithilfe der configure-hadoop Bootstrap-Aktion anpassen, um die mapred.job.reuse.jvm.num.tasks Eigenschaft festzulegen.

Das folgende Beispiel zeigt, wie der JVM Wiederverwendungsfaktor für unendliche JVM Wiederverwendung festgelegt wird.

Anmerkung

Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.11.0 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge \ InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop,\ Name="Configuring infinite JVM reuse",Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"]