tez hadoop mapreduce yarn apache-tez

tez hadoop



Cómo wordCount mapReduce trabajos, ejecuta en clúster de hilos hadoop con apache tez? (1)

Como dice la página de github de tez , tez es muy simple y en esencia tiene solo dos componentes:

  1. El motor de canalización de procesamiento de datos, y

  2. Un maestro para la aplicación de procesamiento de datos, donde uno puede armar ''tareas'' arbitrarias de procesamiento de datos descritas anteriormente en una tarea-DAG

Bueno, mi primera pregunta es, ¿cómo los trabajos de mapreduce existentes como wordcount que existe en tez-examples.jar, se convirtieron a task-DAG? ¿dónde? o ellos no ...?

y mi segunda y más importante pregunta es sobre esta parte:

Cada ''tarea'' en tez tiene lo siguiente:

  1. Entrada para consumir pares clave / valor desde.
  2. Procesador para procesarlos.
  3. Salida para recoger los pares clave / valor procesados.

¿Quién está a cargo de dividir los datos de entrada entre las tez-tareas? ¿Es el código que el usuario proporciona o es Yarn (el administrador de recursos) o incluso el mismo Tez?

La pregunta es la misma para la fase de salida. Gracias por adelantado


Para responder a su primera pregunta sobre la conversión de trabajos de MapReduce a Tez DAG:

Cualquier trabajo de MapReduce se puede pensar en un solo DAG con 2 vértices (etapas). El primer vértice es la fase de Mapa y está conectado a un vértice de salida Reducir a través de un borde de Mezcla.

Hay 2 formas en que los trabajos de MR se pueden ejecutar en Tez:

  1. Un enfoque es escribir un DAG nativo de 2 etapas usando las API de Tez directamente. Esto es lo que está actualmente presente en tez-examples.
  2. El segundo es usar las API de MapReduce y usar el modo yarn-tez. En este escenario, hay una capa que intercepta el envío de MR Job y, en lugar de usar MR, traduce el trabajo de MR en un Tez DAG de 2 etapas y ejecuta el DAG en el tiempo de ejecución de Tez.

Para las preguntas relacionadas con el manejo de datos que tiene:

El usuario proporciona la lógica para comprender los datos que se deben leer y cómo dividirlos. Tez luego toma cada división de datos y asume la responsabilidad de asignar una división o un conjunto de divisiones a una tarea determinada.

El marco de Tez luego controla la generación y el movimiento de los datos, es decir, dónde generar los datos entre los pasos intermedios y cómo mover los datos entre 2 vértices / etapas. Sin embargo, no controla la lógica subyacente de contenido / estructura, partición o serialización que proporcionan los complementos del usuario.

Lo anterior es solo una vista de alto nivel con intrincaciones adicionales. Obtendrá respuestas más detalladas al publicar preguntas específicas en la lista de Desarrollo ( http://tez.apache.org/mail-lists.html )