¡Esta es una revisión vieja del documento!
Yarn se utiliza para subir datos o directamente lanzar tareas en HDFS (el sistema de archivos de Hadoop), que es distribuido. Esto acaban siendo tareas en batch, que se van corriendo cada hora o cada día.
Es un frontend web para administrar el cluster de Hadoop
Pig nos permite asignar un formato a los datos leídos y, con este, hacer operaciones sobre los datos. Puede utilizar varios gestores de ejecución como MapReduce o Tez (para executar en memoria, mucho más rápido).
Es un motor para ejecutar programas sobre un cluster Hadoop. Substituye al MapReduce que es únicamente para Java (a pesar de sus ports).
RDD es un objeto que internamente crea Spark para trabajar con datos.
Es una forma de lanzar queries parecidas al SQL a un cluster hadoop. Como Pig, puede ejecutarse sobre MapReduce o sobre Tez.
Se crean tablas de forma paecida al CREATE TABLE de SQL que definirán el estilo de datos.
Se puede extender Hive con User Defined Functions. También puedes cargar datos con varias aplicaciones o formatos (avro, xml…). También se puede usar con Spark (Spark puede usar Hive para obtener datos).
Otra forma distinta a Yarn para leer datos, en vez de hacerlo en batch, es leerlos por streams. Kafka es perfecto para esto, una queue pub-sub distribuida.
Storm puede procesar evento por evento. Se le puede añadir Trident, que permite procesar múltiples eventos a la vez.
Los datos pueden venir de un flujo tipo Flume, Logstash, whatever y se envían a Kafka.