Diferença entre HDFS e HBase

HDFS (Sistema de arquivos distribuídos do Hadoop) O HDFS permite armazenar grandes quantidades de dados de maneira distribuída e redundante, executada em hardware comum. HBase (banco de dados do Hadoop) é um banco de dados NoSQL que é executado no topo do cluster do Hadoop

Vamos dar uma olhada nos componentes e na arquitetura do HDFS e HBase, respectivamente:

Componentes do HDFS

  • NameNode
  • DataNode

NameNode: NameNode pode ser considerado como um mestre do sistema. Ele mantém a árvore do sistema de arquivos e os metadados para todos os arquivos e diretórios presentes no sistema. Dois arquivos 'imagem de espaço para nome' e 'log de edição' são usados ​​para armazenar informações de metadados. O Namenode possui conhecimento de todos os nós de dados que contêm blocos de dados para um determinado arquivo, no entanto, ele não armazena os locais dos blocos persistentemente. Essas informações são reconstruídas sempre dos nós de dados quando o sistema é iniciado.

DataNode: DataNodes são escravos que residem em cada máquina em um cluster e fornecem o armazenamento real. É responsável por atender, ler e escrever solicitações para os clientes.

Arquitetura HDFS: -

Componentes do HBase: -

  • Hbase master
  • Servidor de região
  • Região
  • Funcionário do zoológico

HMaster : É o servidor mestre na arquitetura HBase. É o agente de monitoramento para monitorar todo o Region Server e também é responsabilidade do HMaster ser a interface para todas as alterações de metadados. É executado no NameNode.

Servidores de regiões: quando o Region Server recebe solicitações de gravação e leitura do cliente, ele atribui a solicitação a uma região específica, onde reside a família de colunas real. No entanto, o cliente pode entrar em contato diretamente com os servidores da região, não há necessidade de permissão obrigatória do HMaster para o cliente em relação à comunicação com os servidores da região. O cliente requer ajuda do HMaster quando são necessárias operações relacionadas a alterações de metadados e esquemas.

Regiões: as regiões são os elementos básicos de construção do cluster HBase que consistem na distribuição de tabelas e são constituídos por famílias de colunas. Ele contém várias lojas, uma para cada família de colunas. Consiste principalmente em dois componentes, que são Memstore e Hfile.

ZooKeeper: No Hbase, o Zookeeper é um servidor de monitoramento centralizado que mantém as informações de configuração e fornece sincronização distribuída. Sincronização distribuída é acessar os aplicativos distribuídos em execução no cluster com a responsabilidade de fornecer serviços de coordenação entre os nós. Se o cliente quiser se comunicar com as regiões, o cliente do servidor precisará abordar o ZooKeeper primeiro.

Arquitetura do HBase: - O HBase faz parte do ecossistema do Hadoop.

Modelo em profundidade: -

Comparação cara a cara entre HDFS e HBase (infográficos)

Abaixo está a 14ª comparação entre HDFS vs HBase

Principais diferenças entre HDFS e HBase

Abaixo está a diferença entre HDFS e HBase:

  1. O HDFS é um sistema de arquivos distribuído adequado para o armazenamento de arquivos grandes. Mas o HBase, por outro lado, é construído sobre o HDFS e fornece pesquisas rápidas de registros (e atualizações) para tabelas grandes.
  2. O HDFS se baseia no sistema de arquivos GFS. Mas o HBase é distribuído - usa HDFS para armazenamento, coluna - Orientado, Multidimensional (Versões) e Sistema de Armazenamento
  3. O HDFS usa o HIVE como um de seus componentes para a linguagem quire, a qual é a linguagem de consulta HIVE (HQL), mas o Hbase NÃO é um banco de dados SQL que significa: - Sem junções, nenhum mecanismo de consulta, nenhum tipo de dados, nenhum SQL (droga), sem esquema e nenhum DBA necessário.
  4. Como o HDFS é uma unidade de armazenamento distribuído, portanto, não há linguagem específica além dos comandos usados ​​como o sabor UNIX, como por exemplo: - Hadoop dfs -mkdir / foodir
  5. hadoop dfs -cat /foodir/myfile.txt
  6. hadoop dfs -rm /foodir/myfile.txt

Mas, por outro lado, o Hbase tem sua própria interface na forma do Hbase Shell, como por exemplo: -

  1. hbase (main): 003: 0> crie 'teste', 'cf'

0 linha (s) em 1.2200 segundos

  1. hbase (main): 004: 0> coloque 'teste', 'linha1', 'cf: a', 'valor1'

0 linha (s) em 0, 0560 segundos

  1. hbase (main): 005: 0> coloque 'teste', 'linha2', 'cf: b', 'valor2'

0 linha (s) em 0, 0370 segundos

  1. hbase (main): 006: 0> coloque 'teste', 'linha3', 'cf: c', 'valor3'

0 linha (s) em 0, 0450 segundos

  1. hbase (main): 007: 0> digitalizar 'teste'

COLUNA DE LINHA + CÉLULA

coluna da linha1 = cf: a, carimbo de data / hora = 1288380727188, valor = valor1

coluna da linha2 = cf: b, carimbo de data e hora = 1288380738440, valor = valor2

coluna row3 = cf: c, registro de data e hora = 1288380747365, value = value3

3 linha (s) em 0, 0590 segundos

Tabela de comparação HDFS vs HBase

Base para ComparaçãoHDFSHBase
Por que precisamos delesNecessidade de processar grandes conjuntos de dados em grandes grupos de computadoresO HBase é um armazenamento de dados orientado a colunas distribuído, construído sobre HDFS
Nós falham todos os diasa) Falha é esperada, e não excepcional
b) O número de nós em um cluster não é constante
HBase é um projeto de código aberto Apache cujo objetivo é fornecer armazenamento para a Computação Distribuída Hadoop
Padrão de gravaçãoAnexar apenasGravação aleatória, incremental em massa
Padrão de leituraVarredura de tabela completa, varredura de tabela de partiçãoLeitura aleatória, varredura de pequeno alcance ou varredura de tabela
Padrão W / RO HDFS é ideal para casos de uso de gravação única e de leitura várias vezesO HBase é ideal para gravação e leitura aleatória de dados armazenados no HDFS.
Desempenho do Hive (SQL)Relativamente bom4-5 vezes mais lento
Armazenamento EstruturadoFaça você mesmo ou TSV ou arquivo de sequênciaModelo de dados da família de colunas esparsas
Tamanho máximo de dadosNormalmente, as lojas podem armazenar cerca de 30 PBAproximadamente 1 PB
Alterações dinâmicasO HDFS possui uma arquitetura rígida que não permite alterações. Não facilita o armazenamento dinâmico.O HBase permite alterações dinâmicas e pode ser utilizado para aplicativos independentes.
Distribuição de dadosOs dados são armazenados de maneira distribuída pelos nós em um cluster. Os dados são divididos em blocos e, em seguida, são armazenados nos nós presentes no cluster HDFS.As tabelas são distribuídas no cluster por regiões e as regiões são divididas e redistribuídas automaticamente à medida que seus dados aumentam
Armazenamento de dadosTodos os dados são armazenados na forma de arquivos pequenos e todos os arquivos têm um tamanho típico de 64 MB (que é 128 MB na versão mais recente)Todos os dados estão sendo armazenados na forma de tabelas, linhas e colunas
Modelagem de dadosNo HDFS, usamos a técnica Map Reduce, que divide os arquivos nos pares Chave - ValorO HBase é baseado no modelo Bigtable do Google, que também usa pares de valores-chave
OperaçõesPossui operações de alta latênciaPossui operações de baixa latência
AcessibilidadeÉ acessado principalmente por meio de tarefas MR (Map Reduce)Pode ser acessado através de comandos shell, API do cliente em Java, REST, Avro ou Thrift

Conclusão - HDFS vs HBase

Em conclusão geral, o HDFS e o HBase possuem tecnologias maravilhosas por si só. O HDFS e o HBase foram criados para armazenar o Big Data e facilitar o acesso e a computação. Ambos, HDFS e HBase, andam lado a lado, pois um HDFS armazena os dados e o outro HBase coloca um esquema nos dados sobre como armazenar e recuperá-los posteriormente para o uso do cliente.

O Hbase é um banco de dados distribuído orientado a colunas NoSql disponível no apache Foundation. O HBase oferece mais desempenho para recuperar menos registros do que o Hadoop ou o Hive. É muito fácil procurar por qualquer valor de entrada, pois suporta indexação, transações e atualização.

Podemos realizar análises on-line em tempo real usando o Hbase integrado ao ecossistema Hadoop. Possui um sharding automático e configurável para conjuntos de dados ou tabelas e fornece APIs repousantes para executar as tarefas do MapReduce.

Artigo recomendado

Este foi um guia para HDFS vs HBase, seu significado, comparação direta, diferenças principais, tabela de comparação e conclusão. este artigo tem toda a diferença útil entre HDFS e HBase. Você também pode consultar os seguintes artigos para saber mais -

  1. HBase vs Cassandra - Qual é o Melhor (Infográficos)
  2. Descubra as 7 melhores diferenças entre Hadoop e HBase
  3. Top 12 Comparação de Apache Hive vs Apache HBase (Infographics)

Categoria: