Amazon EMR, versión 5.22.0 - Amazon EMR

Amazon EMR, versión 5.22.0

Versiones de las aplicaciones de la versión 5.22.0

Esta versión admite las siguientes aplicaciones: Flink, Ganglia, HBase, HCatalog, Hadoop, Hive, Hue, JupyterHub, Livy, MXNet, Mahout, Oozie, Phoenix, Pig, Presto, Spark, Sqoop, TensorFlow, Tez, Zeppelin y ZooKeeper.

En la siguiente tabla se enumeran las versiones de la aplicación disponibles en esta versión de Amazon EMR y las versiones de la aplicación en las tres versiones anteriores de Amazon EMR (cuando corresponda).

Para ver un historial completo de las versiones de la aplicación disponibles para cada versión de Amazon EMR, consulte los temas siguientes:

Información sobre la versión de la aplicación
emr-5.22.0 emr-5.21.2 emr-5.21.1 emr-5.21.0
AWS SDK para Java 1.11.5101.11.4791.11.4791.11.479
Python 2.7, 3.62.7, 3.62.7, 3.62.7, 3.6
Scala 2.11.122.11.122.11.122.11.12
AmazonCloudWatchAgent - - - -
Delta - - - -
Flink1.7.11.7.01.7.01.7.0
Ganglia3.7.23.7.23.7.23.7.2
HBase1.4.91.4.81.4.81.4.8
HCatalog2.3.42.3.42.3.42.3.4
Hadoop2.8.52.8.52.8.52.8.5
Hive2.3.42.3.42.3.42.3.4
Hudi - - - -
Hue4.3.04.3.04.3.04.3.0
Iceberg - - - -
JupyterEnterpriseGateway - - - -
JupyterHub0.9.40.9.40.9.40.9.4
Livy0.5.00.5.00.5.00.5.0
MXNet1.3.11.3.11.3.11.3.1
Mahout0.13.00.13.00.13.00.13.0
Oozie5.1.05.0.05.0.05.0.0
Phoenix4.14.14.14.04.14.04.14.0
Pig0.17.00.17.00.17.00.17.0
Presto0.2150.2150.2150.215
Spark2.4.02.4.02.4.02.4.0
Sqoop1.4.71.4.71.4.71.4.7
TensorFlow1.12.01.12.01.12.01.12.0
Tez0.9.10.9.10.9.10.9.1
Trino (PrestoSQL) - - - -
Zeppelin0.8.10.8.00.8.00.8.0
ZooKeeper3.4.133.4.133.4.133.4.13

Notas de la versión 5.22.0

Las siguientes notas de la versión incluyen información sobre la versión 5.22.0 de Amazon EMR. Los cambios son respecto a la versión 5.21.0.

importante

A partir de la versión 5.22.0 de Amazon EMR, este servicio utiliza AWS Signature Version 4 exclusivamente para autenticar las solicitudes a Amazon S3. Las versiones anteriores de Amazon EMR utilizan AWS Signature Version 2 en algunos casos, a menos que las notas de la versión indiquen que se utiliza exclusivamente Signature Version 4. Para más información, consulte Autenticación de solicitudes (AWS Signature Version 4) y Autenticación de solicitudes (AWS Signature Version 2) en la Guía para desarrolladores de Amazon Simple Storage Service.

Fecha de lanzamiento inicial: 20 de marzo de 2019

Actualizaciones
  • Flink 1.7.1

  • HBase 1.4.9

  • Oozie 5.1.0

  • Phoenix 4.14.1

  • Zeppelin 0.8.1

  • Conectores y controladores:

    • Conector de DynamoDB 4.8.0

    • MariaDB Connector 2.2.6

    • Controlador JDBC de Amazon Redshift, versión 1.2.20.1043

Nuevas características
  • Se modificó la configuración de EBS predeterminada para los tipos de instancias de EC2 con almacenamiento exclusivo para EBS. Al crear un clúster utilizando la versión 5.22.0 y posteriores de Amazon EMR, la cantidad predeterminada de almacenamiento de EBS aumenta en función del tamaño de la instancia. Además, podemos dividir un mayor almacenamiento en varios volúmenes, lo que ofrece un mayor desempeño de IOPS. Si desea utilizar una configuración de almacenamiento para instancias de EBS diferente, puede especificarlo al crear un clúster de EMR o añadir nodos a un clúster existente. Para más información sobre la cantidad de almacenamiento y la cantidad de volúmenes asignados de forma predeterminada a cada tipo de instancia, consulte Almacenamiento predeterminado de EBS para instancias en la Guía de administración de Amazon EMR.

Cambios, mejoras y problemas resueltos
  • Spark

    • Se ha introducido una nueva propiedad de configuración para Spark en YARN, spark.yarn.executor.memoryOverheadFactor. El valor de esta propiedad es un factor de escala que establece el valor de la sobrecarga de memoria en un porcentaje de la memoria del ejecutor, con un mínimo de 384 MB. Si la sobrecarga de memoria se establece de forma explícita mediante spark.yarn.executor.memoryOverhead, esta propiedad no tendrá ningún efecto. El valor predeterminado es 0.1875, que representa el 18,75 %. Este valor predeterminado para Amazon EMR deja más espacio en los contenedores de YARN para la sobrecarga de memoria del ejecutor que el 10 % predeterminado que ha establecido Spark internamente. El valor predeterminado de Amazon EMR del 18,75 % mostró empíricamente menos errores relacionados con la memoria en los puntos de referencia de TPC-DS.

    • Se ha agregado portabilidad con versiones anteriores para SPARK-26316 a fin de mejorar el rendimiento.

  • En las versiones 5.19.0, 5.20.0 y 5.21.0 de Amazon EMR, las etiquetas de los nodos de YARN se almacenan en un directorio de HDFS. En algunas situaciones, esto provoca demoras en el inicio del nodo principal y, a continuación, provoca que el clúster agote el tiempo de espera y se produzca un error en el lanzamiento. A partir de la versión 5.22.0 de Amazon EMR, este problema se ha resuelto. Las etiquetas de los nodos de YARN se almacenan en el disco local de cada nodo del clúster, lo que evita las dependencias de HDFS.

Problemas conocidos
  • Hue (corregido en la versión 5.24.0 de Amazon EMR)

    • Hue en ejecución en Amazon EMR no es compatible con Solr. A partir de la versión 5.20.0 de Amazon EMR, un problema de configuración incorrecta hace que Solr se habilite y aparezca un mensaje de error inofensivo similar al siguiente:

      Solr server could not be contacted properly: HTTPConnectionPool('host=ip-xx-xx-xx-xx.ec2.internal', port=1978): Max retries exceeded with url: /solr/admin/info/system?user.name=hue&doAs=administrator&wt=json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))

      Para evitar que aparezca el mensaje de error de Solr:

      1. Conéctese a la línea de comandos del nodo principal utilizando SSH.

      2. Use un editor de texto para abrir el archivo hue.ini. Por ejemplo:

        sudo vim /etc/hue/conf/hue.ini

      3. Busque el término appblacklist y modifique la línea de la siguiente manera:

        appblacklist = search
      4. Guarde los cambios y reinicie Hue como se muestra en el siguiente ejemplo:

        sudo stop hue; sudo start hue
  • Problema conocido en clústeres con varios nodos principales y autenticación de Kerberos

    Si ejecuta clústeres con varios nodos principales y autenticación de Kerberos en las versiones 5.20.0 y posteriores de Amazon EMR, es posible que tenga problemas con las operaciones del clúster, como la reducción vertical o el envío escalonado, después de que el clúster se haya estado ejecutando durante algún tiempo. El periodo de tiempo depende del periodo de validez del ticket de Kerberos que se haya definido. El problema de la reducción vertical afecta tanto a las solicitudes de reducción vertical automática como a las solicitudes de reducción vertical explícita que haya enviado. Las operaciones adicionales del clúster también pueden verse afectadas.

    Solución:

    • SSH como usuario de hadoop con el nodo principal líder del clúster de EMR con varios nodos principales.

    • Ejecute el siguiente comando para renovar el ticket de Kerberos para el usuario de hadoop.

      kinit -kt <keytab_file> <principal>

      Normalmente, el archivo keytab se encuentra en /etc/hadoop.keytab y la entidad principal tiene la forma de hadoop/<hostname>@<REALM>.

    nota

    Esta solución alternativa estará en vigor durante el periodo de validez del ticket de Kerberos. Esta duración es de 10 horas de forma predeterminada, pero se puede configurar con los ajustes de Kerberos. Debe volver a ejecutar el comando anterior una vez que venza el ticket de Kerberos.

Versiones de los componentes de la versión 5.22.0

A continuación, se muestran los componentes que Amazon EMR instala con esta versión. Algunos se instalan como parte de paquetes de aplicación de Big Data. Otros son exclusivos de Amazon EMR y se instalan para ciertos procesos y características del sistema. Normalmente, estos componentes comienzan con emr o aws. Normalmente, los paquetes de aplicación de macrodatos de la versión más reciente de Amazon EMR son las versiones más recientes que pueden encontrarse en la comunidad. Intentamos que las versiones de la comunidad estén disponibles en Amazon EMR lo más rápido posible.

Algunos componentes de Amazon EMR son distintos de las versiones que se encuentran en la comunidad. Estos componentes tienen una etiqueta de versión con el formato CommunityVersion-amzn-EmrVersion. La EmrVersion empieza por 0. Por ejemplo, si un componente de la comunidad de código abierto llamado myapp-component con la versión 2.2 se ha modificado tres veces para incluirlo en diferentes versiones de lanzamiento de Amazon EMR, la versión que se mostrará será 2.2-amzn-2.

Componente Versión Descripción
aws-sagemaker-spark-sdk1.2.1SDK de Amazon SageMaker Spark
emr-ddb4.8.0Conector de Amazon DynamoDB para aplicaciones del ecosistema de Hadoop.
emr-goodies2.6.0Bibliotecas especialmente prácticas para el ecosistema de Hadoop.
emr-kinesis3.4.0Conector de Amazon Kinesis para aplicaciones del ecosistema de Hadoop.
emr-s3-dist-cp2.11.0Aplicación de copia distribuida optimizada para Amazon S3.
emr-s3-select1.2.0Conector S3Select de EMR
emrfs2.31.0Conector de Amazon S3 para aplicaciones del ecosistema de Hadoop.
flink-client1.7.1Scripts y aplicaciones de cliente de línea de comando de Apache Flink.
ganglia-monitor3.7.2Agente de Ganglia incrustado para aplicaciones del ecosistema de Hadoop junto con el agente de monitorización de Ganglia.
ganglia-metadata-collector3.7.2Recopilador de metadatos de Ganglia para agregación de métricas a partir de los agentes de monitorización de Ganglia.
ganglia-web3.7.1Aplicación web para visualizar las métricas recopiladas por el recopilador de metadatos de Ganglia.
hadoop-client2.8.5-amzn-2Los clientes de línea de comando de Hadoop como, por ejemplo "hdfs", "hadoop" o "yarn".
hadoop-hdfs-datanode2.8.5-amzn-2Servicio de nivel de nodos de HDFS para el almacenamiento de bloques.
hadoop-hdfs-library2.8.5-amzn-2Biblioteca y cliente de línea de comandos HDFS
hadoop-hdfs-namenode2.8.5-amzn-2Servicio de HDFS para realizar un seguimiento de nombres de archivo y bloquear ubicaciones.
hadoop-httpfs-server2.8.5-amzn-2Punto de enlace HTTP para operaciones HDFS.
hadoop-kms-server2.8.5-amzn-2Servidor de administración de claves criptográficas basado en el API KeyProvider de Hadoop.
hadoop-mapred2.8.5-amzn-2Bibliotecas de motor de ejecución de MapReduce para ejecutar una aplicación de MapReduce.
hadoop-yarn-nodemanager2.8.5-amzn-2Servicio de YARN para la administración de contenedores en un nodo individual.
hadoop-yarn-resourcemanager2.8.5-amzn-2Servicio de YARN para la asignación y administración de recursos de clúster y aplicaciones distribuidas.
hadoop-yarn-timeline-server2.8.5-amzn-2Servicio para recuperar información actual e histórica para aplicaciones de YARN.
hbase-hmaster1.4.9Servicio para un clúster de HBase responsable de la coordinación de regiones y ejecución de comandos administrativos.
hbase-region-server1.4.9Servicio que atiende a una o varias regiones de HBase.
hbase-client1.4.9Cliente de línea de comando de HBase.
hbase-rest-server1.4.9Servicio que proporciona un punto de enlace HTTP RESTful para HBase.
hbase-thrift-server1.4.9Service que proporciona un punto de enlace de Thrift a HBase.
hcatalog-client2.3.4-amzn-1El cliente de línea de comando "hcat" para manipular hcatalog-server.
hcatalog-server2.3.4-amzn-1Service que proporciona a HCatalog, una tabla y capa de administración de almacenamiento para aplicaciones distribuidas.
hcatalog-webhcat-server2.3.4-amzn-1Punto de enlace HTTP que proporciona una interfaz REST a HCatalog.
hive-client2.3.4-amzn-1Cliente de línea de comando de Hive.
hive-hbase2.3.4-amzn-1Hive-hbase client.
hive-metastore-server2.3.4-amzn-1Service para acceder al metaalmacén de Hive, un repositorio semántico que almacena metadatos para SQL en operaciones de Hadoop.
hive-server22.3.4-amzn-1Servicio para aceptar consultas de Hive como solicitudes web.
hue-server4.3.0Aplicación web para analizar datos con aplicaciones del ecosistema de Hadoop
jupyterhub0.9.4Servidor multiusuario para blocs de notas Jupyter
livy-server0.5.0-incubatingInterfaz de REST para interactuar con Apache Spark
nginx1.12.1nginx [engine x] es un servidor HTTP y proxy inverso
mahout-client0.13.0Biblioteca para machine learning.
mxnet1.3.1Una biblioteca flexible, escalable y eficiente para el aprendizaje profundo.
mysql-server5.5.54+Servidor de bases de datos MySQL.
nvidia-cuda9.2.88Controladores Nvidia y conjunto de herramientas Cuda
oozie-client5.1.0Cliente de línea de comando de Oozie.
oozie-server5.1.0Servicio para aceptar solicitudes de flujo de trabajo de Oozie.
opencv3.4.0Biblioteca de visión artificial de código abierto.
phoenix-library4.14.1-HBase-1.4Las bibliotecas de Phoenix para servidor y cliente
phoenix-query-server4.14.1-HBase-1.4Un servidor ligero que proporciona acceso a JDBC, así como acceso de formato Protocol Buffers y JSON al API de Avatica
presto-coordinator0.215Servicio para aceptar las consultas y administrar la ejecución de consultas entre presto-workers.
presto-worker0.215Service para ejecutar partes de una consulta.
pig-client0.17.0Cliente de línea de comando de Pig.
r3.4.1Proyecto R para análisis estadístico
spark-client2.4.0Clientes de línea de comando de Spark.
spark-history-server2.4.0IU web para la visualización de eventos registrados durante la vida útil de una aplicación Spark completada.
spark-on-yarn2.4.0Motor de ejecución en memoria para YARN.
spark-yarn-slave2.4.0Bibliotecas de Apache Spark necesarias para esclavos de YARN.
sqoop-client1.4.7Cliente de línea de comando de Apache Sqoop.
tensorflow1.12.0Biblioteca de software de código abierto de TensorFlow para cálculos numéricos de alto rendimiento.
tez-on-yarn0.9.1La aplicación YARN de tez y bibliotecas.
webserver2.4.25+Servidor HTTP de Apache.
zeppelin-server0.8.1Bloc de notas basado en web que permite el análisis de datos interactivo.
zookeeper-server3.4.13Servicio centralizado para mantener información de configuración, nomenclatura, proporcionar sincronización distribuida y proporcionar servicios de grupo.
zookeeper-client3.4.13Cliente de línea de comando de ZooKeeper.

Clasificaciones de configuración de la versión 5.22.0

Las clasificaciones de configuración le permiten personalizar las aplicaciones. Suelen corresponder a un archivo XML de configuración para la aplicación como, por ejemplo, hive-site.xml. Para obtener más información, consulte Configuración de aplicaciones.

Clasificaciones de emr-5.22.0
Clasificaciones Descripción

capacity-scheduler

Cambiar los valores en el archivo capacity-scheduler.xml de Hadoop.

container-log4j

Cambiar los valores en el archivo container-log4j.properties de Hadoop YARN.

core-site

Cambiar los valores en el archivo core-site.xml de Hadoop.

emrfs-site

Cambiar la configuración de EMRFS.

flink-conf

Cambiar la configuración de flink-conf.yaml.

flink-log4j

Cambiar la configuración de log4j.properties de Flink.

flink-log4j-yarn-session

Cambiar la configuración de log4j-yarn-session.properties de Flink.

flink-log4j-cli

Cambiar la configuración de log4j-cli.properties de Flink.

hadoop-env

Cambiar los valores en el entorno de Hadoop para todos los componentes de Hadoop.

hadoop-log4j

Cambiar los valores en el archivo log4j.properties de Hadoop.

hadoop-ssl-server

Cambiar la configuración del servidor ssl de Hadoop

hadoop-ssl-client

Cambiar la configuración del cliente ssl de Hadoop

hbase

Configuración de Amazon EMR mantenida para Apache HBase.

hbase-env

Cambiar los valores en el entorno de HBase.

hbase-log4j

Cambiar los valores en el archivo hbase-log4j.properties de HBase.

hbase-metrics

Cambiar los valores en el archivo hadoop-metrics2-hbase.properties de HBase.

hbase-policy

Cambiar los valores en el archivo hbase-policy.xml de HBase.

hbase-site

Cambiar los valores en el archivo hbase-site.xml de HBase.

hdfs-encryption-zones

Configurar zonas de cifrado de HDFS.

hdfs-site

Cambiar los valores en hdfs-site.xml de HDFS.

hcatalog-env

Cambiar los valores en el entorno de HCatalog.

hcatalog-server-jndi

Cambiar los valores en jndi.properties de HCatalog.

hcatalog-server-proto-hive-site

Cambiar los valores en proto-hive-site.xml de HCatalog.

hcatalog-webhcat-env

Cambiar los valores en el entorno de HCatalog WebHCat.

hcatalog-webhcat-log4j2

Cambiar los valores en log4j2.properties de HCatalog WebHCat.

hcatalog-webhcat-site

Cambiar los valores en el archivo webhcat-site.xml de HCatalog WebHCat.

hive-beeline-log4j2

Cambiar los valores en el archivo beeline-log4j2.properties de Hive.

hive-parquet-logging

Cambiar los valores en el archivo parquet-logging.properties de Hive.

hive-env

Cambiar los valores en el entorno de Hive.

hive-exec-log4j2

Cambiar los valores en el archivo hive-exec-log4j2.properties de Hive.

hive-llap-daemon-log4j2

Cambiar los valores en el archivo llap-daemon-log4j2.properties de Hive.

hive-log4j2

Cambiar los valores en el archivo hive-log4j2.properties de Hive.

hive-site

Cambiar los valores en el archivo hive-site.xml de Hive.

hiveserver2-site

Cambiar los valores en el archivo hiveserver2-site.xml de Hive Server2.

hue-ini

Cambiar los valores en el archivo ini de Hue

httpfs-env

Cambiar los valores en el entorno de HTTPFS.

httpfs-site

Cambiar los valores en el archivo httpfs-site.xml de Hadoop.

hadoop-kms-acls

Cambiar los valores en el archivo kms-acls.xml de Hadoop.

hadoop-kms-env

Cambiar los valores en el entorno de Hadoop KMS.

hadoop-kms-log4j

Cambiar los valores en el archivo kms-log4j.properties de Hadoop.

hadoop-kms-site

Cambiar los valores en el archivo kms-site.xml de Hadoop.

jupyter-notebook-conf

Cambiar los valores en el archivo jupyter_notebook_config.py de Jupyter Notebook.

jupyter-hub-conf

Cambiar los valores en el archivo jupyterhub_config.py de JupyterHubs.

jupyter-s3-conf

Configurar la persistencia en S3 del bloc de notas de Jupyter.

jupyter-sparkmagic-conf

Cambiar los valores en el archivo config.json de Sparkmagic.

livy-conf

Cambiar los valores en el archivo livy.conf de Livy.

livy-env

Cambiar los valores en el entorno de Livy.

livy-log4j

Cambiar la configuración de log4j.properties de Livy.

mapred-env

Cambiar los valores en el entorno de aplicación de MapReduce.

mapred-site

Cambiar los valores en el archivo mapred-site.xml de la aplicación MapReduce.

oozie-env

Cambiar los valores en el entorno de Oozie.

oozie-log4j

Cambiar los valores en el archivo oozie-log4j.properties de Oozie.

oozie-site

Cambiar los valores en el archivo oozie-site.xml de Oozie.

phoenix-hbase-metrics

Cambiar los valores en el archivo hadoop-metrics2-hbase.properties de Phoenix.

phoenix-hbase-site

Cambiar los valores en el archivo hbase-site.xml de Phoenix.

phoenix-log4j

Cambiar los valores en el archivo log4j.properties de Phoenix.

phoenix-metrics

Cambiar los valores en el archivo hadoop-metrics2-phoenix.properties de Phoenix.

pig-env

Cambiar los valores en el entorno de Pig.

pig-properties

Cambiar los valores en el archivo pig.properties de Pig.

pig-log4j

Cambiar los valores en el archivo log4j.properties de Pig.

presto-log

Cambiar los valores en el archivo log.properties de Presto.

presto-config

Cambiar los valores en el archivo config.properties de Presto.

presto-password-authenticator

Cambiar los valores en el archivo password-authenticator.properties de Presto.

presto-env

Cambiar valores en el archivo presto-env.sh de Presto.

presto-node

Cambiar valores en el archivo node.properties de Presto.

presto-connector-blackhole

Cambiar los valores en el archivo blackhole.properties de Presto.

presto-connector-cassandra

Cambiar los valores en el archivo cassandra.properties de Presto.

presto-connector-hive

Cambiar los valores en el archivo hive.properties de Presto.

presto-connector-jmx

Cambiar los valores en el archivo jmx.properties de Presto.

presto-connector-kafka

Cambiar los valores en el archivo kafka.properties de Presto.

presto-connector-localfile

Cambiar los valores en el archivo localfile.properties de Presto.

presto-connector-memory

Cambiar los valores del archivo memory.properties de Presto.

presto-connector-mongodb

Cambiar los valores en el archivo mongodb.properties de Presto.

presto-connector-mysql

Cambiar los valores en el archivo mysql.properties de Presto.

presto-connector-postgresql

Cambiar los valores en el archivo postgresql.properties de Presto.

presto-connector-raptor

Cambiar los valores en el archivo raptor.properties de Presto.

presto-connector-redis

Cambiar los valores en el archivo redis.properties de Presto.

presto-connector-redshift

Cambiar los valores en el archivo redshift.properties de Presto.

presto-connector-tpch

Cambiar los valores en el archivo tpch.properties de Presto.

presto-connector-tpcds

Cambiar los valores del archivo tpcds.properties de Presto.

spark

Configuración de Amazon EMR mantenida para Apache Spark.

spark-defaults

Cambiar los valores en el archivo spark-defaults.conf de Spark.

spark-env

Cambiar los valores en el entorno de Spark.

spark-hive-site

Cambiar los valores en el archivo hive-site.xml de Spark.

spark-log4j

Cambiar los valores en el archivo log4j.properties de Spark.

spark-metrics

Cambiar los valores en el archivo metrics.properties de Spark.

sqoop-env

Cambiar los valores en el entorno de Sqoop.

sqoop-oraoop-site

Cambiar los valores en el archivo oraoop-site.xml de Sqoop OraOop.

sqoop-site

Cambiar los valores en el archivo sqoop-site.xml de Sqoop.

tez-site

Cambiar los valores en el archivo tez-site.xml de Tez.

yarn-env

Cambiar los valores en el entorno de YARN.

yarn-site

Cambiar los valores en el archivo yarn-site.xml de YARN.

zeppelin-env

Cambiar los valores en el entorno de Zeppelin.

zookeeper-config

Cambiar los valores del archivo zoo.cfg de ZooKeeper.

zookeeper-log4j

Cambiar los valores en el archivo log4j.properties de ZooKeeper.