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:
- 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.
- 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
- 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.
- 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
- hadoop dfs -cat /foodir/myfile.txt
- 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: -
- hbase (main): 003: 0> crie 'teste', 'cf'
0 linha (s) em 1.2200 segundos
- hbase (main): 004: 0> coloque 'teste', 'linha1', 'cf: a', 'valor1'
0 linha (s) em 0, 0560 segundos
- hbase (main): 005: 0> coloque 'teste', 'linha2', 'cf: b', 'valor2'
0 linha (s) em 0, 0370 segundos
- hbase (main): 006: 0> coloque 'teste', 'linha3', 'cf: c', 'valor3'
0 linha (s) em 0, 0450 segundos
- 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ção | HDFS | HBase |
Por que precisamos deles | Necessidade de processar grandes conjuntos de dados em grandes grupos de computadores | O HBase é um armazenamento de dados orientado a colunas distribuído, construído sobre HDFS |
Nós falham todos os dias | a) 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ção | Anexar apenas | Gravação aleatória, incremental em massa |
Padrão de leitura | Varredura de tabela completa, varredura de tabela de partição | Leitura aleatória, varredura de pequeno alcance ou varredura de tabela |
Padrão W / R | O HDFS é ideal para casos de uso de gravação única e de leitura várias vezes | O HBase é ideal para gravação e leitura aleatória de dados armazenados no HDFS. |
Desempenho do Hive (SQL) | Relativamente bom | 4-5 vezes mais lento |
Armazenamento Estruturado | Faça você mesmo ou TSV ou arquivo de sequência | Modelo de dados da família de colunas esparsas |
Tamanho máximo de dados | Normalmente, as lojas podem armazenar cerca de 30 PB | Aproximadamente 1 PB |
Alterações dinâmicas | O 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 dados | Os 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 dados | Todos 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 dados | No HDFS, usamos a técnica Map Reduce, que divide os arquivos nos pares Chave - Valor | O HBase é baseado no modelo Bigtable do Google, que também usa pares de valores-chave |
Operações | Possui operações de alta latência | Possui 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 -
- HBase vs Cassandra - Qual é o Melhor (Infográficos)
- Descubra as 7 melhores diferenças entre Hadoop e HBase
- Top 12 Comparação de Apache Hive vs Apache HBase (Infographics)