Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Personalizzazione della configurazione di cluster e applicazioni con AMI le versioni precedenti di Amazon EMR
La EMR versione 4.0.0 di Amazon ha introdotto un metodo semplificato di configurazione delle applicazioni utilizzando classificazioni di configurazione. Per ulteriori informazioni, consulta Configurazione delle applicazioni. Quando usi una AMI versione, configuri le applicazioni utilizzando le azioni di bootstrap insieme agli argomenti che passi. Ad esempio, le azioni configure-hadoop
e configure-daemons
bootstrap impostano proprietà di Hadoop e YARN —specific environment come. --namenode-heap-size
Nelle versioni più recenti, queste proprietà sono configurate mediante le classificazioni di configurazione hadoop-env
e yarn-env
. Per le azioni di bootstrap che eseguono configurazioni comuni, consulta il repository su Github. emr-bootstrap-actions
Le seguenti tabelle associano le azioni di bootstrap alle classificazioni di configurazione nelle EMR versioni più recenti di Amazon.
Nome di file dell'applicazione interessata | AMIversione: azione bootstrap | Classificazione di configurazione |
---|---|---|
core-site.xml |
configure-hadoop -c
|
core-site |
log4j.properties |
configure-hadoop -l |
hadoop-log4j |
hdfs-site.xml |
configure-hadoop -s |
hdfs-site
|
N/A | n/a | 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 |
Nome di file dell'applicazione interessata | AMIazione bootstrap di versione | Classificazione di configurazione |
---|---|---|
hive-env.sh |
N/A | hive-env |
hive-site.xml |
hive-script --install-hive-site
${MY_HIVE_SITE_FILE} |
hive-site |
hive-exec-log4j.properties |
N/A | hive-exec-log4j |
hive-log4j.properties |
n/a | hive-log4j |
Nome di file dell'applicazione interessata | AMIazione bootstrap di versione | Classificazione di configurazione |
---|---|---|
emrfs-site.xml |
configure-hadoop -e |
emrfs-site |
N/A | s3get -s s3://custom-provider.jar -d
/usr/share/aws/emr/auxlib/ |
emrfs-site (con la nuova impostazione fs.s3.cse.encryptionMaterialsProvider.uri ) |
Per un elenco di tutte le classificazioni, consulta Configurazione delle applicazioni.
Variabili di ambiente applicazione
Quando si utilizza una AMI versione, viene utilizzato uno hadoop-user-env.sh
script insieme all'azione configure-daemons
bootstrap per configurare l'ambiente Hadoop. Lo script include le seguenti operazioni:
#!/bin/bash export HADOOP_USER_CLASSPATH_FIRST=true; echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh
Nella EMR versione 4.x di Amazon, esegui la stessa operazione utilizzando la classificazione della hadoop-env
configurazione, come illustrato nell'esempio seguente:
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_USER_CLASSPATH_FIRST":"true", "HADOOP_CLASSPATH":"/path/to/my.jar" } } ] } ]
Altro esempio: l'utilizzo di configure-daemons
e il passaggio di --namenode-heap-size=2048
e --namenode-opts=-XX:GCTimeRatio=19
equivale alle classificazioni di configurazione esposte di seguito.
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" } } ] } ]
Altre variabili di ambiente applicazione non sono più definite in /home/hadoop/.bashrc
, ma sono principalmente impostate in file /etc/default
per componente o applicazione, ad esempio /etc/default/hadoop
. Gli script wrapper /usr/bin/
installati dall'applicazione RPMs possono anche impostare variabili di ambiente aggiuntive prima di utilizzare lo script bin effettivo.
Porte di servizio
Quando si utilizza una AMI versione, alcuni servizi utilizzano porte personalizzate.
Impostazione | AMIversione 3.x | Valore di default open source |
---|---|---|
fs.default.name | hdfs://IP: 9000 emrDetermined | predefinito (hdfs: //:8020) emrDeterminedIP |
dfs.datanode.address | 0.0.0.0:9200 | valore di default (0.0.0.0:50010) |
dfs.datanode.http.address | 0.0.0.0:9102 | valore di default (0.0.0.0:50075) |
dfs.datanode.https.address | 0.0.0.0:9402 | valore di default (0.0.0.0:50475) |
dfs.datanode.ipc.address | 0.0.0.0:9201 | valore di default (0.0.0.0:50020) |
dfs.http.address | 0.0.0.0:9101 | valore di default (0.0.0.0:50070) |
dfs.https.address | 0.0.0.0:9202 | valore di default (0.0.0.0:50470) |
dfs.secondary.http.address | 0.0.0.0:9104 | valore di default (0.0.0.0:50090) |
yarn.nodemanager.address | 0.0.0.0:9103 | valore di default (${yarn.nodemanager.hostname}:0) |
yarn.nodemanager.localizer.address | 0.0.0.0:9033 | valore di default (${yarn.nodemanager.hostname}:8040) |
yarn.nodemanager.webapp.address | 0.0.0.0:9035 | valore di default (${yarn.nodemanager.hostname}:8042) |
yarn.resourcemanager.address | emrDeterminedIP predefinito (hdfs: //:8020) ----sep----:9022 |
valore di default (${yarn.resourcemanager.hostname}:8032) |
yarn.resourcemanager.admin.address | emrDeterminedIP :9022 ----sep----:9025 |
valore di default (${yarn.resourcemanager.hostname}:8033) |
yarn.resourcemanager.resource-tracker.address | emrDeterminedIP :9025 ----sep----:9023 |
valore di default (${yarn.resourcemanager.hostname}:8031) |
yarn.resourcemanager.scheduler.address | emrDeterminedIP :9023 ----sep----:9024 |
valore di default (${yarn.resourcemanager.hostname}:8030) |
yarn.resourcemanager.webapp.address | 0.0.0.0:9026 | valore di default (${yarn.resourcemanager.hostname}:8088) |
yarn.web-proxy.address | emrDeterminedIP :9024 ----sep----:9046 |
valore di default (no-value) |
yarn.resourcemanager.hostname | 0.0.0.0 (predefinito) | emrDeterminedIP |
Nota
emrDeterminedIP
È un indirizzo IP generato da AmazonEMR.
Utenti
Quando si utilizza una AMI versione, l'utente hadoop
esegue tutti i processi e possiede tutti i file. Nella EMR versione 4.0.0 e successive di Amazon, gli utenti esistono a livello di applicazione e componente.
Sequenza di installazione, artifact installati e posizioni dei file di log
Quando si utilizza una AMI versione, gli elementi dell'applicazione e le relative directory di configurazione vengono installati nella directory. /home/hadoop/
Ad esempio, se hai installato Hive, la directory sarebbe application
/home/hadoop/hive
. Nella EMR versione 4.0.0 di Amazon e successive, gli artefatti dell'applicazione vengono installati nella directory. /usr/lib/
Quando si utilizza una AMI versione, i file di registro si trovano in varie posizioni. La tabella seguente elenca tali posizioni.application
Daemon o applicazione | Percorso della directory |
---|---|
instance-state | nodo/ instance-id /instance-state/ |
hadoop-hdfs-namenode | demoni/instance-id /.log hadoop-hadoop-namenode |
hadoop-hdfs-datanode | demoni/instance-id /hadoop-hadoop-datanode.log |
filato hadoop (ResourceManager) | demoni//instance-id yarn-hadoop-resourcemanager |
hadoop-yarn (server proxy) | demoni//instance-id yarn-hadoop-proxyserver |
mapred-historyserver | demoni//instance-id |
httpfs | demoni/ /httpfs.log instance-id |
hive-server | nodo/ /hive-server/hive-server.log instance-id |
hive-metastore | nodo/ /apps/hive.log instance-id |
alveare CLI | nodo/ /apps/hive.log instance-id |
YARNregistri degli utenti delle applicazioni e registri dei contenitori | task-attempts/ |
Mahout | N/D |
Pig | N/D |
spark-historyserver | N/D |
File della cronologia dei processi mapreduce | jobs/ |
Runner di comandi
Quando si utilizza una AMI versione, molti script o programmi, ad esempio/home/hadoop/contrib/streaming/hadoop-streaming.jar
, non vengono inseriti nell'ambiente del percorso di accesso alla shell, quindi è necessario specificare il percorso completo quando si utilizza un file jar come command-runner.jar o script-runner.jar per eseguire gli script. command-runner.jar
Si trova sulla, AMI quindi non è necessario conoscerne il completo URI come nel caso di. script-runner.jar
Fattore di replica
Il fattore di replica consente di configurare quando avviare un JVM Hadoop. È possibile avviare un nuovo Hadoop JVM per ogni attività, che offre un migliore isolamento delle attività, oppure è possibile condividerle JVMs tra le attività, riducendo il sovraccarico del framework. Se si elaborano molti file di piccole dimensioni, è opportuno riutilizzarli più volte per JVM ammortizzare i costi di avvio. Tuttavia, se ogni operazione richiede molto tempo o elabora una grande quantità di dati, è possibile scegliere di non riutilizzarla per garantire che tutta la memoria venga liberata JVM per le attività successive. Quando si utilizza una AMI versione, è possibile personalizzare il fattore di replica utilizzando l'azione configure-hadoop
bootstrap per impostare la proprietà. mapred.job.reuse.jvm.num.tasks
L'esempio seguente dimostra l'impostazione del fattore di riutilizzo per un JVM riutilizzo infinito. JVM
Nota
I caratteri di continuazione della riga Linux (\) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.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"
]