Tez
Tez es el último marco de computación de código abierto de Apache que soporta trabajos de gráficos acíclicos dirigidos (DAG). Puede convertir varios trabajos dependientes en un trabajo, lo que mejora en gran medida el rendimiento de los trabajos de DAG. Tez se basa en YARN y puede ejecutar trabajos de MapReduce sin ninguna modificación.
MRS utiliza Tez como motor de ejecución predeterminado de Hive. Tez supera notablemente al motor de computación MapReduce original en términos de eficiencia de ejecución.
Para más detalles sobre Tez, consulte https://tez.apache.org/.
Relación entre Tez y MapReduce
Tez utiliza un DAG para organizar tareas de MapReduce. En el DAG, un nodo es un RDD, y un borde indica una operación en el RDD. La idea principal es dividir aún más las tareas de Map y Reduce. Una tarea de Map se divide en las tareas Input-Processor-Sort-Merge-Output y la tarea Reduce se divide en las tareas Input-Shuffle-Sort-Merge-Process-output. Tez reagrupa de forma flexible varias tareas pequeñas para formar un trabajo DAG grande.
Una tarea de Hive on MapReduce contiene varias tareas de MapReduce. Cada tarea almacena resultados intermedios en HDFS. El reducer en la etapa anterior proporciona datos para el mapper en la siguiente etapa. Una tarea Hive on Tez puede completar el mismo proceso de procesamiento en una sola tarea, y no es necesario acceder a HDFS entre tareas.
Relación entre Tez y Yarn
Tez es un marco de computación que se ejecuta en Yarn. El entorno de tiempo de ejecución se compone de ResourceManager y ApplicationMaster de Yarn. ResourceManager es un nuevo sistema de gestión de recursos, y ApplicationMaster es responsable de cortar los datos de trabajo de MapReduce, asignar tareas, solicitar recursos, programar tareas y tolerar fallas. Además, TezUI depende del TimelineServer proporcionado por Yarn para mostrar el proceso de ejecución de las tareas de Tez.