sql >> Base de Datos >  >> NoSQL >> HBase

Codificación de borrado de HDFS en Big Data Hadoop

Este blog trata sobre la codificación de borrado de HDFS. En este blog discutiremos el concepto de codificación de borrado en Hadoop , problemas del antiguo esquema de replicación. En este blog también se analizan dos algoritmos para la codificación de borrado de Hadoop, como el algoritmo XOR , el algoritmo Reed-Solomon.

Por fin veremos la arquitectura y las ventajas de la codificación de borrado en Hadoop HDFS.

Problema con la replicación del esquema antiguo

Codificación de borrado HDFS es una nueva característica introducida para reducir los gastos generales de almacenamiento en aproximadamente un 50 % en comparación con la replicación 3x. Hadoop HDFS replica cada bloque 3 veces para varios propósitos. Es una forma muy simple de redundancia para protegerse contra la falla del nodo de datos.

Junto con los pros, tiene varias desventajas:es muy costoso. La replicación 3x tiene una sobrecarga del 200 % en espacio de almacenamiento y otros recursos. Conjuntos de datos con poca actividad de E/S, rara vez se accede a las réplicas adicionales durante el funcionamiento normal, pero aún consumen otros recursos.

Esta es la razón por la que surgió la codificación Hadoop Erasure. Proporciona el mismo nivel de tolerancia a fallas con menos almacenamiento de espacio y un 50 % de sobrecarga de almacenamiento.

Al comparar los diferentes esquemas de almacenamiento, una consideración importante es:

  • Durabilidad de los datos (número de tolerancia a fallas simultáneas)
  • Eficiencia de almacenamiento

Entonces, en la replicación de N vías, hay tolerancia a fallas N-1 con una eficiencia de almacenamiento de 1/n.

¿Qué es la codificación de borrado de HDFS en Hadoop?

La codificación de borrado de HDFS utiliza RAID . RAID implementa la eliminación de usos de EC. La eliminación almacena lógicamente los datos en forma de bloque. Luego almacena estos bloques en el disco diferente. Calcula la paridad para cada bloque y tienda. Esto está codificado. Por paridad recupera error.

Para la tolerancia a fallas, EC extiende el mensaje con datos redundantes. La codificación HDFS Erasure funcionará en celdas de datos de tamaño uniforme. El códec toma un número de celdas de datos como entrada. Y luego produce celdas de paridad como salida.

Todo este proceso se llama Codificación. La paridad y la celda de datos juntas se denominan grupo de codificación de borrado. El proceso mediante el cual la celda de datos perdidos se reconstruye sobre las celdas restantes se conoce como Decodificación.

Dos algoritmos disponibles para la codificación de borrado de HDFS son los siguientes:

a) Algoritmo XOR

Es la implementación simple de la codificación Hadoop Erasure.

Supongamos que las celdas de datos X, Y y Z son celdas de datos, luego la celda de paridad es XOR de estas tres celdas de datos x ⊕ y ⊕ z por lo tanto, durante la operación XOR, solo se genera un bit de paridad y, si se pierde algún bit, puede recuperarse con las celdas de datos restantes y un bit de paridad.

Es muy limitado ya que produce 1 bit de paridad, por lo que la operación XOR solo puede tolerar 1 falla con n tamaño de grupo.

En la operación XOR, la tolerancia a fallas es 1 y la eficiencia de almacenamiento es n-1/n cuando el tamaño del grupo es n.

b) Algoritmo de Reed-Solomon

Reed-Solomon aborda la limitación de la operación XOR. Utiliza álgebra lineal para generar múltiples celdas de paridad. RS usa dos parámetros k y m, k es un número de celdas de datos y m es un número de celdas de paridad.

RS funciona multiplicando k celdas de datos con una matriz generadora (G), para generar una palabra de código extendida con k celdas de datos y m celdas de paridad. La falla de almacenamiento se puede recuperar multiplicando el inverso de la matriz del generador con las palabras de código extendidas, siempre que haya disponible k de k+m celdas.

“Con Reed, tolerancia a fallas de Solomon es hasta m celdas y eficiencia de almacenamiento k/k+m donde k son celdas de datos ym son celdas de paridad.”

Decisión de diseño y arquitectura

El trazado de líneas EC tiene varias ventajas:

  • La eliminación permite EC en línea (escribir datos inmediatamente en formato EC), evitando una fase de conversión y ahorrando espacio de almacenamiento de inmediato.
  • Distribuye un pequeño archivo a múltiples Datanodes. Elimina paquetes de múltiples archivos en un solo grupo de codificación. Por lo tanto, simplifica la operación de archivos, como la eliminación y la migración entre espacios de nombres federados.
  • Para un mejor soporte de archivos pequeños, EC admite eliminación. En el futuro, HDFS también admitirá un diseño EC contiguo.

EC agregó muchos componentes nuevos:

  • Extensiones de NameNode (Administrador de EC ) – Los archivos Stripe HDFS se componen lógicamente de grupos de bloques. Cada uno de los cuales contiene un cierto número de bloques internos. Para reducir el consumo de memoria de Namenode de estos bloques adicionales, introdujo un nuevo protocolo de nomenclatura de bloques jerárquicos. EC deduce la ID de un grupo de bloques a partir de la ID de cualquiera de sus bloques internos. Esto permite la gestión a nivel de grupo de bloques en lugar de a nivel de bloque.
  • Extensiones de cliente (cliente EC) – El cliente puede realizar operaciones de lectura y escritura en varios bloques internos en un grupo de bloques en paralelo.
  • Extensiones de DataNode (ECWorker)- DataNode ejecuta una tarea de trabajador EC adicional para la recuperación de bloques codificados de borrado fallidos. Entonces, NameNode detecta los bloques EC fallidos, namenode da instrucciones de recuperación a los nodos de datos. Luego pasa la tarea de recuperación como respuesta de latido.

Beneficios de la codificación de borrado

  • Disponibilidad de datos a menor capacidad: HDFS  Los códigos de borrado permiten la disponibilidad de datos a menor capacidad. Inicialmente, replique los bloques en tres réplicas. Por lo tanto, el espacio de almacenamiento de tres réplicas es grande. Pero ahora, en la codificación de borrado, almacene grandes datos como un bit de paridad, por lo que el almacenamiento reduce el espacio.
  • Rendimiento: Como EC almacena datos como paridad en lugar de 3 réplicas, ofrece un mejor rendimiento.
  • Recuperación rápida: Descubre y recupera errores de bloque HDFS tanto de forma activa (en segundo plano) como pasiva (en la ruta de lectura).

Conclusión

En conclusión, podemos decir que la codificación HDFS Erasure ha reducido la sobrecarga de almacenamiento en un 50 %. EC reduce la sobrecarga debido a los bits de paridad. Por lo tanto, estas características de HDFS potencie la funcionalidad de Apache Hadoop.

Si tiene alguna consulta o sugerencia relacionada con la codificación de borrado en HDFS, coméntenos en la sección que figura a continuación.