Cómo ejecutar un archivo jar de Hadoop utilizando Yarn

HadoopHadoopBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del proceso de ejecución de un archivo jar de Hadoop utilizando el administrador de recursos Yarn. Hadoop es un potente marco (framework) para el procesamiento distribuido de datos, y Yarn es el componente de gestión de recursos y programación de trabajos que permite la ejecución eficiente de trabajos de Hadoop. Al final de este tutorial, tendrá una sólida comprensión de cómo ejecutar archivos jar de Hadoop en la plataforma Yarn, así como técnicas para optimizar y solucionar problemas en la ejecución de sus trabajos de Hadoop.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopYARNGroup(["Hadoop YARN"]) hadoop/HadoopYARNGroup -.-> hadoop/yarn_setup("Hadoop YARN Basic Setup") hadoop/HadoopYARNGroup -.-> hadoop/apply_scheduler("Applying Scheduler") hadoop/HadoopYARNGroup -.-> hadoop/yarn_app("Yarn Commands application") hadoop/HadoopYARNGroup -.-> hadoop/yarn_container("Yarn Commands container") hadoop/HadoopYARNGroup -.-> hadoop/yarn_log("Yarn Commands log") hadoop/HadoopYARNGroup -.-> hadoop/yarn_jar("Yarn Commands jar") hadoop/HadoopYARNGroup -.-> hadoop/resource_manager("Resource Manager") hadoop/HadoopYARNGroup -.-> hadoop/node_manager("Node Manager") subgraph Lab Skills hadoop/yarn_setup -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/apply_scheduler -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/yarn_app -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/yarn_container -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/yarn_log -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/yarn_jar -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/resource_manager -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} hadoop/node_manager -.-> lab-415232{{"Cómo ejecutar un archivo jar de Hadoop utilizando Yarn"}} end

Introducción a Hadoop y YARN

¿Qué es Hadoop?

Hadoop es un marco (framework) de software de código abierto para almacenar y procesar grandes conjuntos de datos en un entorno de computación distribuida. Está diseñado para escalar desde servidores individuales hasta miles de máquinas, cada una ofreciendo cómputo y almacenamiento locales. Hadoop se basa en el modelo de programación MapReduce, que divide una tarea en sub-tareas más pequeñas, las distribuye entre un clúster de computadoras y luego combina los resultados.

¿Qué es YARN?

YARN (Yet Another Resource Negotiator, o "Otro Negociador de Recursos") es un marco (framework) de gestión de recursos y programación de trabajos en Hadoop. Es responsable de administrar los recursos de cómputo en un clúster de Hadoop y programar la ejecución de aplicaciones. YARN separa las funciones de gestión de recursos y programación/monitoreo de trabajos del JobTracker en demonios (daemons) separados: un ResourceManager global y ApplicationMasters por aplicación.

graph TD A[Client] --> B[ResourceManager] B --> C[NodeManager] C --> D[Container] D --> E[Application]

Ecosistema de Hadoop

Hadoop es parte de un ecosistema más amplio de herramientas y tecnologías que trabajan juntas para proporcionar una plataforma integral de procesamiento y análisis de datos. Algunos de los componentes clave en el ecosistema de Hadoop incluyen:

  • HDFS (Hadoop Distributed File System, o "Sistema de Archivos Distribuido de Hadoop")
  • MapReduce
  • Hive
  • Spark
  • Kafka
  • Impala
  • Sqoop
  • Flume

Casos de uso de Hadoop

Hadoop se utiliza ampliamente en una variedad de industrias y aplicaciones, incluyendo:

  • Análisis de big data
  • Procesamiento de registros (logs)
  • Análisis de flujos de clics (clickstream)
  • Sistemas de recomendación
  • Detección de fraude
  • Investigación genómica
  • Procesamiento de datos del Internet de las Cosas (IoT)

Ejecución de un archivo jar de Hadoop con YARN

Envío de un archivo jar de Hadoop a YARN

Para ejecutar un archivo jar de Hadoop utilizando YARN, puede seguir estos pasos:

  1. Construya su aplicación de Hadoop: Desarrolle su aplicación de Hadoop y empaquétela en un archivo jar.

  2. Cargue el archivo jar en HDFS: Utilice el comando hadoop fs para cargar su archivo jar en el Sistema de Archivos Distribuido de Hadoop (HDFS, por sus siglas en inglés).

hadoop fs -put my-hadoop-app.jar /user/username/jars/
  1. Envie el trabajo a YARN: Utilice el comando yarn jar para enviar su aplicación de Hadoop a YARN para su ejecución.
yarn jar /user/username/jars/my-hadoop-app.jar com.example.MyHadoopApp

Este comando enviará su aplicación de Hadoop al ResourceManager de YARN, que luego programará y gestionará la ejecución de su aplicación en el clúster.

Monitoreo y solución de problemas de trabajos de Hadoop en YARN

Puede utilizar la interfaz web (web UI) de YARN o el comando yarn application para monitorear el estado y el progreso de sus trabajos de Hadoop que se están ejecutando en YARN.

## Ver la lista de aplicaciones en ejecución
yarn application -list

## Ver los detalles de una aplicación específica
yarn application -status application_1234567890_0001

Si encuentra algún problema o error durante la ejecución de su trabajo de Hadoop, puede ver los registros (logs) de la aplicación y los registros del NodeManager para ayudar a solucionar el problema.

## Ver los registros de una aplicación específica
yarn logs -applicationId application_1234567890_0001

Asignación y optimización de recursos

Al ejecutar trabajos de Hadoop en YARN, puede configurar varios parámetros para optimizar la asignación de recursos y el rendimiento de sus aplicaciones. Algunos parámetros clave a considerar son:

  • Memoria y CPU: Especifique la memoria y los recursos de CPU necesarios para los contenedores de su aplicación.
  • Número de contenedores: Ajuste el número de contenedores (tareas) que se utilizarán para su aplicación.
  • Paralelismo: Configure el nivel de paralelismo para sus trabajos de MapReduce o Spark.
  • Compresión: Habilite la compresión de datos para reducir la sobrecarga de la red y el almacenamiento.

Al configurar adecuadamente estos parámetros, puede garantizar una utilización eficiente de los recursos y mejorar el rendimiento general de sus aplicaciones de Hadoop que se ejecutan en YARN.

Optimización y solución de problemas en la ejecución de archivos jar de Hadoop

Configuración y optimización de recursos

Al ejecutar trabajos de Hadoop en YARN, es importante configurar adecuadamente la asignación de recursos para garantizar una utilización y un rendimiento eficientes. Aquí hay algunas técnicas clave de optimización:

Configuración de memoria y CPU

Establezca los requisitos de memoria y CPU adecuados para los contenedores de su aplicación utilizando las opciones --driver-memory, --executor-memory, --num-executors y --executor-cores.

yarn jar my-hadoop-app.jar \
  --driver-memory 4g \
  --executor-memory 2g \
  --num-executors 10 \
  --executor-cores 2 \
  com.example.MyHadoopApp

Ajuste del paralelismo

Ajuste el nivel de paralelismo de sus trabajos de MapReduce o Spark estableciendo el número de tareas de mapeo (map) y reducción (reduce) o el número de particiones.

yarn jar my-hadoop-app.jar \
  -D mapreduce.job.maps=50 \
  -D mapreduce.job.reduces=20 \
  com.example.MyMapReduceApp

Compresión de datos

Habilite la compresión de datos para reducir la sobrecarga de la red y el almacenamiento. Puede configurar el códec (codec) de compresión y el nivel de compresión.

yarn jar my-hadoop-app.jar \
  -Dmapreduce.output.fileoutputformat.compress=true \
  -Dmapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec \
  com.example.MyMapReduceApp

Solución de problemas en la ejecución de archivos jar de Hadoop

Si encuentra problemas durante la ejecución de su archivo jar de Hadoop, aquí hay algunos pasos de solución de problemas que puede seguir:

  1. Verifique los registros (logs) de la aplicación: Utilice el comando yarn logs para ver los registros de su aplicación de Hadoop e identificar cualquier error o advertencia.

  2. Inspeccione los registros del NodeManager: Verifique los registros del demonio (daemon) NodeManager en los nodos donde se está ejecutando su aplicación para obtener información más detallada sobre los problemas.

  3. Verifique la disponibilidad de recursos: Asegúrese de que el clúster de Hadoop tenga suficientes recursos (memoria, CPU, espacio en disco) disponibles para ejecutar su aplicación.

  4. Analice la configuración de la aplicación: Revise los parámetros de configuración que ha establecido para su aplicación, como la memoria, la CPU y el paralelismo, y realice ajustes según sea necesario.

  5. Depure el código de su aplicación: Si el problema está relacionado con la lógica de su aplicación, utilice técnicas de depuración para identificar y corregir cualquier error o problema en el código de su aplicación de Hadoop.

Siguiendo estos pasos de optimización y solución de problemas, puede garantizar que sus archivos jar de Hadoop se ejecuten de manera eficiente y efectiva en el clúster de YARN.

Resumen

En este completo tutorial de Hadoop, ha aprendido cómo ejecutar un archivo jar de Hadoop utilizando el administrador de recursos Yarn. Ha explorado el proceso paso a paso, así como técnicas para optimizar y solucionar problemas en la ejecución de trabajos de Hadoop. Con este conocimiento, ahora puede desplegar y gestionar con confianza sus aplicaciones de Hadoop en la plataforma Yarn, asegurando un procesamiento de datos eficiente y confiable a escala.