Diferenzas
Isto amosa as diferenzas entre a revisión seleccionada e a versión actual da páxina.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
inv:desenvolvemento:amazon_elastic_mapreduce [2015/05/25 17:13] – ismael.rodriguez | inv:desenvolvemento:amazon_elastic_mapreduce [2015/11/12 19:06] – [Ejecutar un trabajo] ismael.rodriguez | ||
---|---|---|---|
Liña 1: | Liña 1: | ||
====== Amazon Elastic MapReduce ====== | ====== Amazon Elastic MapReduce ====== | ||
- | |||
Amazon Elastic MapReduce ([[http:// | Amazon Elastic MapReduce ([[http:// | ||
===== Creación de un cluster con EMR ===== | ===== Creación de un cluster con EMR ===== | ||
- | Amazon Elastic MapReduce (Amazon | + | Un cluster |
+ | * Lanzamiento de las instancias EC2 de las que se compone el cluster | ||
+ | * Ejecución de los scripts de instalación, tanto automáticos de amazon (como las imagenes preconfiguradas [[http:// | ||
+ | * Trabajos | ||
+ | * Apagado automático del cluster una vez se han terminado todos los steps. | ||
- | Amazon EMR has made enhancements to Hadoop and other open-source applications to work seamlessly with AWS. For example, Hadoop clusters running on Amazon EMR use Amazon Elastic Compute Cloud instances as virtual Linux servers for the master and slave nodes, Amazon Simple Storage Service for bulk storage of input and output data, and Amazon CloudWatch to monitor | + | En las siguientes subsecciones se explican todos lo básico para poder lanzar un cluster EMR y analizar los resultados de las ejecuciones. |
- | Open-source projects that run on top of the Hadoop architecture can also be run on Amazon EMR. The most popular applications, | + | ==== Almacenamiento |
- | + | ||
- | You can run your cluster as a transient process: one that launches the cluster, loads the input data, processes the data, stores the output results, and then automatically shuts down. This is the standard model for a cluster that is performing a periodic processing task. Shutting down the cluster automatically ensures that you are only billed for the time required to process your data. The other model for running a cluster is as a long-running cluster. In this model, you launch a cluster and submit jobs interactively using the command line or you submit units of work called steps. From there you might interactively query the data, use the cluster as a data warehouse, or do periodic processing on a large data set. In this model, the cluster persists even when there are no steps or jobs queued for processing. | + | |
- | ==== Almacenamento | + | |
Amazon EMR puede hacer uso de Amazon S3 como almacenamiento de los datos de entrada, los ficheros de log y los datos de salida. Para más información sobre este tipo de sistema de almacenamiento visita la [[http:// | Amazon EMR puede hacer uso de Amazon S3 como almacenamiento de los datos de entrada, los ficheros de log y los datos de salida. Para más información sobre este tipo de sistema de almacenamiento visita la [[http:// | ||
Liña 18: | Liña 18: | ||
Una vez creado el contenedor, suele ser una buena práctica organizarlo de la siguiente manera: | Una vez creado el contenedor, suele ser una buena práctica organizarlo de la siguiente manera: | ||
- | * Crear una carpeta '' | + | * Crear una carpeta '' |
* Crear una carpeta '' | * Crear una carpeta '' | ||
* Crear una carpeta '' | * Crear una carpeta '' | ||
Liña 24: | Liña 24: | ||
{{ : | {{ : | ||
- | ==== Configuración | + | ==== Configuración |
- | ==== Logs ==== | + | Una vez se dispone de un contenedor S3, ya es posible lanzar un cluster EMR plenamente útil. Después de pulsar en '' |
+ | {{ : | ||
- | ===== Spark sobre EMR ====== | + | El siguiente paso es la configuración del software que estará disponible en el cluster. En primer lugar se elige la distribución de Hadoop preconfigurada por amazon (versión mayor que emr-4.0.0). Además, es posible añadir software adicional que proporciona Amazon. Es importante que entre este software se encuentre |
- | ==== Instalar | + | {{ : |
+ | |||
+ | Es importante configurar | ||
<code bash> | <code bash> | ||
- | s3:// | + | [{" |
</ | </ | ||
- | ==== Executar | + | Una vez configurado el software, se continua con la configuración del hardware. La configuración más típica se compone por un nodo '' |
- | * **Step type**: Custom JAR | + | {{ :inv:desenvolvemento: |
- | * **JAR Location**: <code bash>s3://< | + | |
- | * **Arguments**: <code bash>/ | + | |
- | ===== Java 8 en EMR ===== | + | También es posible añadir un par de [[https:// |
+ | {{ : | ||
+ | Además del software preconfigurado por amazon, se pueden realizar más acciones de instalación de software o configuración mediante acciones de lanzamiento (Bootstrap actions). | ||
+ | {{ : | ||
+ | Para añadir una nueva acción de lanzamiento, | ||
+ | {{ : | ||
+ | Por último, aunque es posible añadir trabajos una vez desplegado el cluster, el procedimiento habitual y más seguro es añadir los trabajos ('' | ||
+ | {{ : | ||
+ | Por ejemplo, para añadir la ejecución de un archivo '' | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | ==== Logs ==== | ||
+ | Durante el despliegue y ejecución del cluster, se irán generando una serie de logs que serán guardados en la carpeta indicada dentro del contenedor S3 ([[http:// | ||
+ | |||
+ | De entre los logs generados, cabe destacar: | ||
+ | * ''/< | ||
+ | * ''/< | ||
+ | * controller — Información sobre el procesamiento del trabajo. | ||
+ | * syslog — Describe la ejecución del trabajo mediante hadoop. | ||
+ | * stderr — La salida estandar de error del trabajo (en Spark suele ser aquí donde están los logs generados por la ejecución del trabajo) | ||
+ | * stdout — La salida estandar del trabajo. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Spark sobre EMR ====== | ||
+ | Desde la versión 4 de la imagen de Hadoop de Amazon ('' | ||
+ | |||
+ | |||
+ | ==== Ejecutar un trabajo ==== | ||
+ | Para ejecutar un trabajo sobre Spark, las opciones son las siguientes (sustituir los argumentos entre <> por sus valores reales): | ||
+ | * **Step type**: Spark application | ||
+ | * **Deploy mode**: Cluster | ||
+ | * **Spark-submit options**: '' | ||
+ | * **Applicaiton location**: Ruta al archivo en una unidad S3. | ||
+ | * **Arguments**: | ||
+ | {{ : | ||
+ | ==== Lectura y escritura en S3 ==== | ||
+ | Spark es capaz de leer y escribir mediante el protocolo s3 sin necesidad de realizar cambios. | ||
+ | |||
+ | ===== Java 8 en EMR ===== | ||
+ | La última versión AMI disponible (3.7.0) contiene como versión java 7. Para aquellos que usan java 8 (algo común en este tipo de entorno, por el uso de funciones lambda), pueden instalarlo en el cluster mediante un script ejecutado como bootstrap action. Para ello, solo es necesario almacenar en el contenedor S3 el siguiente script (([[https:// | ||
<code bash> | <code bash> | ||
# Check java version | # Check java version |