19 febrero 2018

No hay mejor andar que no parar, HADOOP 3.0

Aprovechando la jornada de trabajo con Felipe Haynes y Raú Marín de Hortonworks y  David Olmos y Gustavo Fernández de Zylk. Os dejamos un pequeño articulo sobre la nueva versión de Hadoop 3.0 .
Recordar que Zylk y Hortonworks realizan el próximo 15 de marzo en el Hotel NH Collection Villa de Bilbao un evento con conferencias, networking y casos de éxito de la utilización del Big Data 




Principales diferencias entre  HADOOP 2.0 y 3.0 :

CARACTERÍSTICA
HADOOP 2.x
HADOOP 3.x
Versión Java mínima soportada
java 7
java 8
Esquema de almacenamiento
Usa un esquema de replica que multiplica x3 el espacio de almacenamiento.
Soporta erasure coding(1) en HDFS reduciendo el espacio de almacenamiento.
Tolerancia a fallos
Puede manejarse mediante la replicación (que es un desperdicio de espacio).
Puede manejarse mediante erasure coding ofreciendo el mismo nivel de tolerancia a fallos pero con una considerable reducción de espacio de almacenamiento.
Storage Overhead
(Sobrecarga del espacio de almacenamiento)
HDFS tiene una sobrecarga del 200% en el espacio de almacenamiento, ya que hace copias al 100% de los datos (el factor de réplica mínimo y por defecto en Hadoop 2 es de 3) los cuáles, en la mayoría de las ocasiones, no son usados . Por ejemplo: Si hay 6 bloques, habrá 18 bloques ocupados debido al esquema de replicación.
Con el  erasure coding   en Hadoop 3, si hay 6 bloques de datos, ocupará un espacio de 9 bloques - 6 bloques de datos y 3 para la paridad - lo que conlleva una menor sobrecarga de almacenamiento. El resultado final: en lugar de necesitar multiplicar por 3 el almacenamiento, el método de almacenamiento de erasure coding tendrá una sobrecarga de 1.5x, manteniendo el mismo nivel de recuperación de datos. Reduce a la mitad el costo de almacenamiento de HDFS a la vez que conserva la durabilidad de los datos. La sobrecarga de almacenamiento se puede reducir de 200% a 50%. Además, se beneficia de un ahorro de costes en infraestructuras.
YARN Timeline Service
Utiliza un viejo timeline service que tiene problemas de escalabilidad.
Mejora el timeline service v2 y mejora la escalabilidad y la confiabilidad del mismo.
Rango de puertos por defecto
En Hadoop 2.0, algunos puertos predeterminados son del rango de puertos efímeros(2) de Linux (32768-61000). Por lo tanto, en el momento de la puesta en marcha, pueden  fallar al conectarse al entrar en conflicto con otras aplicaciones.
En Hadoop 3.0 estos puertos se han movido fuera del rango efímero.
Sistemas de ficheros compatibles
  • HDFS (Sistema de ficheros por defecto)
  • Sistema de archivos FTP: almacena todos sus datos en servidores FTP accesibles remotamente
  • Sistema de archivos Amazon S3 (Simple Storage Service)
  • Sistema de archivos Windows Azure Storage Blobs (WASB).
Es compatible con todos los anteriores, así como con el sistema de archivos Microsoft Azure Data Lake y Aliyun Object Storage System .
Escalabilidad
  • Podemos escalar hasta 10,000 nodos por clúster.
  • Hadoop 2 y Hadoop 1 solo usan un único NameNode para administrar todos los Namespaces.
  • En Hadoop 2 hay  solamente un NameNode en standby
  • Se pueden escalar más de 10.000 nodos por cluster.
  • Hadoop 3 tiene múltiples Namenodes para múltiples Namespaces debido al uso de  NameNode Federation que mejora la escalabilidad.
  • Hadoop 3 soporta múltiples NameNodes en stanby.
Nuevos casos de uso
Hadoop 2 no soporta GPUs (Graphics Processing Unit)
Hadoop 3 permite la programación de recursos adicionales, tales como discos y tarjetas gráficas para una mejor integración. Por ejemplo, el administrador del clúster podría definir recursos como GPU, licencias de software o almacenamiento conectado localmente. Las tareas de YARN se pueden programar según la disponibilidad de estos recursos. Esta característica proporciona la base para admitir GPU en clústeres de Hadoop, lo que mejora un rendimiento de los cálculos necesarios para los casos de uso de Ciencia de datos e Inteligencia Artificial.
Nuevos componentes
El uso de Erasure Coding incluye nuevos componentes en la arquitectura:

  • Namenode Extension (ECManager): reside en el Namenode y coordina toda la tarea de codificación y decodificación.

  • Client Extension (ECClient):es la extensión del cliente HDFS que notifica al ECManager los bloques que faltan y lee los datos reconstruidos por el ECWorker.

  • Datanode Extension (ECWorker): ubicados en los Datanode. Cada vez que se decodifica o codifica un bloque, el ECWorker del Datanode lleva a cabo su cálculo siguiendo las instrucciones enviadas por el ECManager quién le suministra el esquema de codificación.

(1) La funcionalidad HDFS Erasure Coding usa RAID (Redundant Array of Inexpensive Disks). RAID implementa EC utilizando stripping, es decir, almacena los ficheros de manera lógica en forma de bloque (unidad pequeña) y almacena cada bloque en discos diferente. Para cada bloque (celda) se calculará y almacenará la paridad. Esto se llama codificación. Se almacena 1 bloque de paridad por cada 2 bloques de datos. Lo que implica tener un 50% de sobrecarga del espacio de almacenamiento frente al 200% que supone el antiguo replicado con factor 3 del 100% de los datos en Hadoop 2.

(2) Los puertos efímeros son puertos temporales asignados por la pila de IP de una máquina y se asignan dentro de un rango designado de puertos para este propósito. Cuando la conexión finaliza, el puerto efímero está disponible para su reutilización, aunque la mayoría de las pilas IP no reutilizarán ese número de puerto hasta que se haya utilizado todo el conjunto de puertos efímeros. Por lo tanto, si el programa cliente se vuelve a conectar, se le asignará un número de puerto efímero diferente para su lado de la nueva conexión.)


Para más información se puede consultar:


·        How Apache Hadoop 3 Adds Value Over Apache Hadoop 2

·        Apache Hadoop 3.0.0

·        Comparison Between Hadoop 2.x vs Hadoop 3.x 1

·        What’s New in Hadoop 3.0 – Enhancements in Apache Hadoop 3

·        What's new in hadoop 3.0

·        Getting to Know Hadoop 3.0 -Features and Enhancements. Why Hadoop 3.0? What’s New in Hadoop 3.0? Difference between Hadoop 2.x vs. Hadoop 3.x

·        Hadoop 3.0 - Revolution or evolution?