Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Personalización de la configuración de clústeres y aplicaciones con versiones anteriores de la AMI de Amazon EMR
En la versión 4.0.0 de Amazon EMR se introdujo un método simplificado de configurar aplicaciones mediante clasificaciones de configuración. Para obtener más información, consulte Configuración de aplicaciones. Cuando se utiliza una versión de AMI, las aplicaciones se configuran mediante acciones de arranque y pasando argumentos. Por ejemplo, las acciones de arranque configure-hadoop
y configure-daemons
configuran propiedades del entorno específicas de Hadoop y YARN como --namenode-heap-size
. En versiones más recientes, estas se configuran con las clasificaciones de configuración hadoop-env
y yarn-env
. Para ver las acciones de arranque que realizan configuraciones comunes, consulte el emr-bootstrap-actions repositorio en Github
En las siguientes tablas, se asignan acciones de arranque a clasificaciones de configuración de las versiones de Amazon EMR más recientes.
Hadoop | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nombre de archivo de aplicación afectado | Acción de arranque de versión de la AMI | Clasificación de configuración | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 |
Hive | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nombre de archivo de aplicación afectado | Acción de arranque de versión de la AMI | Clasificación de configuración | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 |
EMRFS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nombre de archivo de aplicación afectado | Acción de arranque de versión de la AMI | Clasificación de configuración | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 el nuevo valor fs.s3.cse.encryptionMaterialsProvider.uri ) |
Para ver una lista de todas las clasificaciones, consulte Configuración de aplicaciones.
Variables de entorno de la aplicación
Cuando se utiliza una versión de AMI, se usa un script hadoop-user-env.sh
junto con la acción de arranque configure-daemons
para configurar el entorno de Hadoop. El script incluye las siguientes acciones:
#!/bin/bash export HADOOP_USER_CLASSPATH_FIRST=true; echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh
En la versión 4.x de Amazon EMR, se hace lo mismo con la clasificación de configuración hadoop-env
, tal y como se muestra en el ejemplo siguiente:
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_USER_CLASSPATH_FIRST":"true", "HADOOP_CLASSPATH":"/path/to/my.jar" } } ] } ]
Otro ejemplo consiste en usar configure-daemons
y pasar --namenode-heap-size=2048
y --namenode-opts=-XX:GCTimeRatio=19
, que es equivalente a las siguientes clasificaciones de configuración.
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" } } ] } ]
Otras variables de entorno de aplicaciones ya no están definidas en /home/hadoop/.bashrc
. En su lugar, se definen principalmente en archivos /etc/default
por componente o aplicación, como por ejemplo /etc/default/hadoop
. Los scripts encapsuladores en /usr/bin/
instalados por RPM de aplicaciones también pueden establecer variables de entorno adicionales antes de implicar el script de bin real.
Puertos de servicio
Cuando se utiliza una versión de AMI, algunos servicios utilizan puertos personalizados.
Cambios en la configuración del puerto | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Opción | AMI versión 3.x | Opción predeterminada de código abierto | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs.default.name | hdfs://emrDeterminedIP:9000 | valor predeterminado (hdfs://emrDeterminedIP :8020) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.datanode.address | 0.0.0.0:9200 | valor predeterminado (0.0.0.0:50010) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.datanode.http.address | 0.0.0.0:9102 | valor predeterminado (0.0.0.0:50075) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.datanode.https.address | 0.0.0.0:9402 | valor predeterminado (0.0.0.0:50475) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.datanode.ipc.address | 0.0.0.0:9201 | valor predeterminado (0.0.0.0:50020) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.http.address | 0.0.0.0:9101 | valor predeterminado (0.0.0.0:50070) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.https.address | 0.0.0.0:9202 | valor predeterminado (0.0.0.0:50470) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dfs.secondary.http.address | 0.0.0.0:9104 | valor predeterminado (0.0.0.0:50090) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.nodemanager.address | 0.0.0.0:9103 | valor predeterminado (${yarn.nodemanager.hostname}:0) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.nodemanager.localizer.address | 0.0.0.0:9033 | valor predeterminado (${yarn.nodemanager.hostname}:8040) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.nodemanager.webapp.address | 0.0.0.0:9035 | valor predeterminado (${yarn.nodemanager.hostname}:8042) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.resourcemanager.address | emrDeterminedIP :9022 |
valor predeterminado (${yarn.resourcemanager.hostname}:8032) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.resourcemanager.admin.address | emrDeterminedIP :9025 |
valor predeterminado (${yarn.resourcemanager.hostname}:8033) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.resourcemanager.resource-tracker.address | emrDeterminedIP :9023 |
valor predeterminado (${yarn.resourcemanager.hostname}:8031) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.resourcemanager.scheduler.address | emrDeterminedIP :9024 |
valor predeterminado (${yarn.resourcemanager.hostname}:8030) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.resourcemanager.webapp.address | 0.0.0.0:9026 | valor predeterminado (${yarn.resourcemanager.hostname}:8088) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.web-proxy.address | emrDeterminedIP :9046 |
valor predeterminado (sin valor) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn.resourcemanager.hostname | 0.0.0.0 (valor predeterminado) | emrDeterminedIP |
nota
La emrDeterminedIP
es una dirección IP generada por Amazon EMR.
Usuarios
Cuando se utiliza una versión de AMI, el usuario hadoop
ejecuta todos los procesos y es propietario de todos los archivos. En la versión 4.0.0 y posteriores de Amazon EMR, los usuarios existen en el nivel de aplicación y de componente.
Secuencia de instalación, artefactos instalados y ubicaciones de archivos de registro
Cuando se utiliza una versión de AMI, los artefactos de aplicación y sus directorios de configuración se instalan en el directorio /home/hadoop/
. Por ejemplo, si instaló Hive, el directorio sería application
/home/hadoop/hive
. En la versión 4.0.0 y posteriores de Amazon EMR, los artefactos de la aplicación se instalan en el directorio /usr/lib/
. Cuando se utiliza una versión de AMI, los archivos log se encuentran en diversos lugares. En la tabla siguiente se indican las ubicaciones.application
Cambios en las ubicaciones de registro en Amazon S3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Daemon o aplicación | Ubicación del directorio | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance-state | node/id-instancia /instance-state/ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hadoop-hdfs-namenode | daemons/ instance-id/.log hadoop-hadoop-namenode |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hadoop-hdfs-datanode | daemons/ instance-id /.log hadoop-hadoop-datanode |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hadoop-yarn () ResourceManager | daemons/ instance-id /yarn-hadoop-resourcemanager |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hadoop-yarn (servidor proxy) | daemons/ instance-id /yarn-hadoop-proxyserver |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mapred-historyserver | daemons/id-instancia / |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
httpfs | daemons/id-instancia /httpfs.log |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hive-server | node/id-instancia /hive-server/hive-server.log |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hive-metastore | node/id-instancia /apps/hive.log |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hive CLI | node/id-instancia /apps/hive.log |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Registros de contenedor y de usuario de aplicaciones YARN | task-attempts/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mahout | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pig | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spark-historyserver | N/D | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
archivos de historial de tareas mapreduce | jobs/ |
Command Runner
Cuando se utiliza una versión de AMI, muchos scripts o programas, como /home/hadoop/contrib/streaming/hadoop-streaming.jar
, no se colocan en el entorno de ruta de inicio de sesión del shell, por lo que debe especificar la ruta completa cuando utilice un archivo jar como command-runner.jar o script-runner.jar para ejecutar los scripts. command-runner.jar
está ubicado en la AMI y, por tanto, no hay necesidad de conocer un URI completo como ocurría con script-runner.jar
.
Factor de replicación
El factor de replicación le permite configurar cuándo iniciar una JVM de Hadoop. Puede iniciar una nueva JVM de Hadoop para cada tarea, lo que proporciona un mejor aislamiento de tareas, o bien puede compartir las JVM entre tareas, lo que proporciona una menor sobrecarga de la plataforma. Si está procesando muchos archivos pequeños, es razonable reutilizar el JVM muchas veces para amortizar el costo de startup. Sin embargo, si cada tarea tarda mucho tiempo o procesa una gran cantidad de datos, es posible que desee no reutilizar la JVM para garantizar que se libere toda la memoria para las tareas siguientes. Cuando se utiliza una versión de AMI, puede personalizar el factor de replicación mediante la acción de arranque configure-hadoop
para establecer la propiedad mapred.job.reuse.jvm.num.tasks
.
El siguiente ejemplo muestra cómo configurar el factor de reutilización de JVM para el uso infinito de la JVM.
nota
Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).
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"
]