Essa é uma pergunta ingênua, mas eu sou novo no paradigma NoSQL e não sei muito sobre isso. Portanto, se alguém puder me ajudar a entender claramente a diferença entre o HBase e o Hadoop ou se fornecer alguns indicadores que possam me ajudar a entender a diferença.
Até agora, eu fiz algumas pesquisas e acc. no meu entender, o Hadoop fornece uma estrutura para trabalhar com grande parte dos dados (arquivos) no HDFS e o HBase é um mecanismo de banco de dados acima do Hadoop, que basicamente trabalha com dados estruturados em vez de grandes quantidades de dados brutos. O Hbase fornece uma camada lógica sobre o HDFS, assim como o SQL. Está correto?
Pls sinta-se livre para me corrigir.
Obrigado.
Respostas:
O Hadoop é basicamente três coisas, um FS (Hadoop Distributed File System), uma estrutura de computação (MapReduce) e uma ponte de gerenciamento (Yet Another Resource Negotiator). O HDFS permite armazenar grandes quantidades de dados de maneira distribuída (fornece acesso de leitura / gravação mais rápido) e redundante (fornece melhor disponibilidade). E o MapReduce permite processar esses enormes dados de maneira distribuída e paralela. Mas o MapReduce não se limita apenas ao HDFS. Sendo um FS, o HDFS não possui o recurso de leitura / gravação aleatória. É bom para acesso sequencial a dados. E é aí que o HBase entra em cena. É um banco de dados NoSQL que é executado no topo do cluster Hadoop e fornece acesso aleatório de leitura / gravação em tempo real aos seus dados.
Você pode armazenar dados estruturados e não estruturados no Hadoop e no HBase também. Ambos fornecem vários mecanismos para acessar os dados, como o shell e outras APIs. E, o HBase armazena dados como pares de chave / valor de maneira colunar, enquanto o HDFS armazena dados como arquivos simples. Algumas das principais características de ambos os sistemas são:
Hadoop
HBase
O Hadoop é mais adequado para o processamento de lotes offline, enquanto o HBase é usado quando você precisa em tempo real.
Uma comparação análoga seria entre MySQL e Ext4.
fonte
O projeto Apache Hadoop inclui quatro módulos principais
HBase é um banco de dados distribuído e escalável que suporta armazenamento de dados estruturados para tabelas grandes. Assim como
Bigtable
aproveita o armazenamento de dados distribuído fornecido pelo Google File System, o Apache HBase fornece recursos do tipo Bigtable sobre o Hadoop e o HDFS.Quando usar o HBase:
Mas o HBase tem algumas limitações
Resumo:
Veja o que fazer e o que não fazer do HBase no blog cloudera .
fonte
O Hadoop usa o sistema de arquivos distribuído, ou seja, o HDFS para armazenar dados grandes. Mas existem algumas limitações do HDFS e do Inorder para superar essas limitações, os bancos de dados NoSQL, como HBase, Cassandra e Mongodb, surgiram.
O Hadoop pode executar apenas o processamento em lote, e os dados serão acessados apenas de maneira sequencial. Isso significa que é preciso pesquisar em todo o conjunto de dados, mesmo nos trabalhos mais simples. Um grande conjunto de dados quando processado resulta em outro grande conjunto de dados, que também deve ser processado sequencialmente. Nesse ponto, é necessária uma nova solução para acessar qualquer ponto de dados em uma única unidade de tempo (acesso aleatório).
Como todos os outros sistemas de arquivos, o HDFS fornece armazenamento, mas de maneira tolerante a falhas, com alto rendimento e menor risco de perda de dados (devido à replicação) .Mas, como sistema de arquivos, o HDFS não possui acesso aleatório de leitura e gravação. É aqui que o HBase entra em cena. É um armazenamento de big data distribuído, escalável e modelado com base no BigTable do Google. Cassandra é um pouco semelhante ao hbase.
fonte
HBase e HDFS em uma imagem
HDFS é um sistema de arquivos distribuído adequado para o armazenamento de arquivos grandes. que não fornece pesquisas rápidas de registros individuais em arquivos.
O HBase , por outro lado, é construído sobre o HDFS e fornece pesquisas rápidas de registros (e atualizações) para tabelas grandes. Às vezes, isso pode ser um ponto de confusão conceitual. O HBase coloca seus dados internamente em "StoreFiles" indexados que existem no HDFS para pesquisas de alta velocidade.
Bem, no nível da infraestrutura, cada máquina de salve no cluster tem os seguintes demônios
O HBase consegue pesquisas rápidas no HDFS (às vezes também em outros sistemas de arquivos distribuídos) como armazenamento subjacente, usando o seguinte modelo de dados
Tabela
Linha
Coluna
Família de colunas
Qualificador de coluna
Célula
Registro de data e hora
Fluxo de solicitação de leitura do cliente:
Qual é a meta tabela na imagem acima?
fontes e mais informações:
fonte
Referência: http://www.quora.com/What-is-the-difference-between-HBASE-and-HDFS-in-Hadoop
Hadoop é um nome geral para vários subsistemas: 1) HDFS. Um sistema de arquivos distribuídos que distribui dados através de um cluster de máquinas, cuidando da redundância, etc. 2) Mapa Reduzir. Um sistema de gerenciamento de tarefas sobre o HDFS - para gerenciar tarefas de redução de mapa (e outros tipos) que processam os dados armazenados no HDFS.
Basicamente, significa um sistema offline - você armazena dados no HDFS e pode processá-los executando trabalhos.
HBase, por outro lado, em um banco de dados baseado em coluna. Ele usa o HDFS como armazenamento - que cuida de backup \ redundência \ etc, mas é uma "loja on-line" - o que significa que você pode consultá-lo por linhas \ linhas etc específicas e obter um valor imediato.
fonte
O HDFS é um sistema de arquivos distribuído baseado em Java que permite armazenar grandes dados em vários nós em um cluster Hadoop. Enquanto o HBase é um banco de dados NoSQL (semelhante ao NTFS e MySQL).
Como o HDFS e o HBase armazenam todos os tipos de dados, como estruturados, semiestruturados e não estruturados em um ambiente distribuído.
Diferenças entre HDFS e HBase
O HDFS armazena grandes conjuntos de dados em um ambiente distribuído e aproveita o processamento em lote nesses dados.
Enquanto o HBase armazena dados de maneira orientada a colunas, onde cada coluna é armazenada em conjunto, para que a leitura se torne mais rápida, alavancando o processamento em tempo real.
fonte