Este blog é sobre codificação de eliminação HDFS. Neste blog, discutiremos o conceito de Erasure Coding no Hadoop , questões do antigo esquema de replicação. Dois algoritmos para codificação de eliminação do Hadoop, como o algoritmo XOR , o algoritmo Reed-Solomon, também são discutidos neste blog.
Por fim, veremos a arquitetura e as vantagens da codificação de eliminação no Hadoop HDFS.
Problema com a replicação do esquema antigo
Codificação de eliminação de HDFS é um novo recurso introduzido para reduzir a sobrecarga de armazenamento em aproximadamente 50% em comparação com a replicação 3x. O Hadoop HDFS replica cada bloco 3 vezes para vários propósitos. É uma forma muito simples de redundância para proteger contra a falha do datanode.
Junto com os prós tem vários contras que é muito caro. 3 x replicação tem 200% de sobrecarga no espaço de armazenamento e outros recursos. Conjuntos de dados com baixa atividade de E/S, réplicas de adição raramente são acessadas durante a operação normal, mas ainda consomem outros recursos.
Esta é a razão pela qual a codificação Hadoop Erasure surgiu. Ele fornece o mesmo nível de tolerância a falhas com menos armazenamento de espaço e 50% de sobrecarga de armazenamento.
Ao comparar os diferentes esquemas de armazenamento, uma consideração importante é:
- Durabilidade dos dados (número de tolerância a falhas simultâneas)
- Eficiência de armazenamento
Portanto, na replicação N-way, há tolerância a falhas N-1 com eficiência de armazenamento 1/n.
O que é a codificação de eliminação de HDFS no Hadoop?
A codificação de eliminação HDFS usa RAID . RAID implementa EC usa stripping. O stripping armazena logicamente os dados na forma de um bloco. Em seguida, armazena esses blocos no disco diferente. Ele calcula a paridade para cada bloco e loja. Isso é codificado. Através da paridade recupera o erro.
Para tolerância a falhas, o EC estende a mensagem com dados redundantes. A codificação HDFS Erasure funcionará em células de dados de tamanho uniforme. O codec recebe um número de células de dados como entrada. E então produz células de paridade como saída.
Todo esse processo é chamado de Codificação. A paridade e a célula de dados juntas são chamadas de grupo de codificação de apagamento. O processo pelo qual a célula de dados perdida se reconstrói sobre as células restantes é conhecido como decodificação.
Dois algoritmos disponíveis para a codificação de eliminação HDFS são os seguintes:
a) Algoritmo XOR
É a implementação simples da codificação Hadoop Erasure.
Vamos supor que as células de dados X e Y e Z sejam células de dados, então a célula de paridade é XOR dessas três células de dados x ⊕ y ⊕ z portanto, durante a operação XOR, apenas um bit de paridade é gerado e, se algum bit for perdido, ele poderá ser recuperado pelas células de dados restantes e um bit de paridade.
É muito limitado, pois produz 1 bit de paridade, de modo que a operação XOR pode tolerar apenas 1 falha com n tamanho de grupo.
“Na operação XOR, tolerância a falhas 1 e eficiência de armazenamento é n-1/n quando o tamanho do grupo é n. ”
b) Algoritmo Reed-Solomon
Reed-Solomon aborda a limitação da operação XOR. Ele usa álgebra linear para gerar várias células de paridade. RS usa dois parâmetros k e m, k é um número de células de dados e m é um número de células de paridade.
O RS funciona multiplicando k células de dados com uma matriz geradora (G), para gerar a palavra de código estendida com k células de dados e m células de paridade. A falha de armazenamento pode ser recuperada pela multiplicação inversa da matriz geradora com as palavras de código estendidas, desde que k de células k+m estejam disponíveis.
“Com Reed, Solomon tolerância a falhas é de até m células e eficiência de armazenamento k/k+m onde k são células de dados e m são células de paridade.”
Decisão de projeto e arquitetura
O striping EC tem várias vantagens:
- O stripping permite o EC on-line (gravando dados imediatamente no formato EC), evitando uma fase de conversão e economizando espaço de armazenamento imediatamente.
- Ele distribui um pequeno arquivo para vários Datanodes. Ele elimina vários arquivos agrupados em um único grupo de codificação. Assim, simplifica a operação de arquivos, como exclusão e migração entre namespaces federados.
- Para um melhor suporte de arquivos pequenos, o EC suporta a remoção. No futuro, o HDFS também suportará um layout EC contíguo.
A EC adicionou muitos novos componentes:
- Extensões NameNode (ECManager ) – Os arquivos Stripe HDFS são compostos logicamente de grupos de blocos. Cada um dos quais contém um certo número de blocos internos. Para reduzir o consumo de memória do Namenode desses blocos adicionais, ele introduziu um novo protocolo hierárquico de nomenclatura de blocos. O EC infere o ID de um grupo de blocos do ID de qualquer um de seus blocos internos. Isso permite o gerenciamento no nível do grupo de blocos em vez do bloco.
- Extensões de cliente (cliente EC) – O cliente pode executar operações de leitura e gravação em vários blocos internos em um grupo de blocos em paralelo.
- Extensões de DataNode (ECWorker)- O DataNode executa uma tarefa de trabalhador EC adicional para recuperação de blocos codificados de apagamento com falha. Assim, NameNode detecta os blocos EC com falha, namenode fornece instruções de recuperação para datanodes. Em seguida, ele passa a tarefa de recuperação como resposta de pulsação.
Benefícios da codificação de eliminação
- Disponibilidade de dados com capacidade menor: HDFS Os códigos de apagamento permitem a disponibilidade de dados em menor capacidade. Inicialmente, replique os blocos em três réplicas. Portanto, o espaço de armazenamento de três réplicas é grande. Mas agora, na codificação de apagamento, armazene dados grandes como um bit de paridade, portanto, o armazenamento reduz o espaço.
- Desempenho: Como o EC armazena dados como paridade em vez de 3 réplicas, oferece melhor desempenho.
- Recuperação rápida: Ele descobre e recupera erros de bloco HDFS tanto ativamente (em segundo plano) quanto passivamente (no caminho de leitura).
Conclusão
Em conclusão, podemos dizer que a codificação HDFS Erasure reduziu a sobrecarga de armazenamento em 50%. EC reduz a sobrecarga devido aos bits de paridade. Portanto, esses recursos HDFS capacitar a funcionalidade do Apache Hadoop.
Se você tiver alguma dúvida ou sugestão relacionada à codificação de eliminação em HDFS, por favor, comente-nos na seção abaixo.