What is Apache HBase and when should you use it?

Visão global: Apache HBase can be defined as the Hadoop database. It is a distributed, non-relational and open source database written in Java. It is developed based on the Google BigTable framework and runs on HDFS (Hadoop distributed file system). HBase é usado quando você tem uma exigência de aleatório, acesso em tempo real ao seu grande volume de dados. HBase é um candidato adequado quando você tem centenas de milhões ou bilhões de linhas e hardware suficiente para apoiá-lo. Como HBase baseia-se HDFS e HDFS funciona bem quando existe mínimo 5 nós de dados. Assim, em breve, HBase é um "armazém de dados’ Tipo de quadro que é distribuído e adequado para o processamento de grande volume de dados.

Neste artigo vou explicar os detalhes com conceitos arquitetônicos.

Introdução: HBase é um sistema de gerenciamento de banco de dados orientado coluna NoSQL que roda em cima do HDFS. O HBase não suporta linguagem de consulta estruturada como SQL. Aplicações HBase são todas as tarefas MapReduce e escrito em Java. HBase suporta aplicações escritas em DESCANSO, Thrift e Avro. Algumas das características importantes em HBase estão listados abaixo.

• HBase suporta sharding automática.
• HBase suporta HDFS como o seu armazenamento distribuído.
• HBase suporta MapReduce para o processamento paralelo de enorme volume de dados.
• HBase tem suporte para APIs do cliente Java.
• HBase suporta leitura fortemente consistente e gravação de operações. É apropriado para o contador de agregação de alta velocidade.

Diferença entre HBase e HDFS: Nós descrevemos que HBase baseia-se na parte superior dos HDFS. Então você pode ter confusão que HDFS e HBase semelhante. Mas é preciso lembrar que HDFS não é um sistema de arquivos simples, pelo contrário, é um armazenamento distribuído adequado para armazenar grande volume de dados. Não HDFS não suporta registro rápido olhar para cima para grande volume de dados. Mas HBase trabalha em cima do HDFS e proporciona rápido olhar para cima e atualização.

Quando você deve usar HBase?
HBase é um NoSQL e dados colunar loja típica. A selecção de um banco de dados e noSQL RDBMS depende da exigência de aplicação. Então, primeiro, devemos entender a exigência de forma clara e em seguida, selecione o banco de dados. Se você só precisa selecionar um NoSQL DB sem análise adequada, então ele pode causar problemas para você. E ele também será um desvio de tecnologia e recursos. A seguir estão alguns pontos que devem ser considerados para a seleção de um NoSQL DB como HBase.

Volume: O volume de dados é o primeiro critério para a seleção de um NoSQL DB. Você deve ter uma infinidade de dados (milhões ou bilhões de linhas) para processar e armazenar. Se você tem apenas alguns milhares ou milhões de linhas, em seguida, RDBMS tradicional é o melhor ajuste. Mas se você selecionar HBase para uma pequena quantidade de dados, em seguida, os dados irá acumular em um único nó e outros nós do cluster vai sentar-se inativo.

Suporte de hardware: HDFS realiza eficientemente quando existem pelo menos 5 nós de dados. Como sabemos que o HBase é baseado no HDFS, então você deve ter o suporte de hardware suficientes para a implementação HBase DB.

Não há necessidade de recursos de RDBMS: Certifique-se de que a sua aplicação não requer recursos extras fornecidos pelo típico RDBMS. Os recursos avançados como transação, consulta complexa, disparadores não são suportados pelo HBase. Portanto, este é outro critério importante para a seleção.

HBase Conceitos de Design:
Os conceitos de design por trás HBase são semelhantes aos HDFS e MapReduce framework. Como todos os trabalhos em um ambiente distribuído, o design geral é baseado na arquitetura master-slave. HDFS trabalha em nós NameNode e escravo, MapReduce funciona em JobTracker e TaskTracker escravos. Da mesma forma HBase tem a seguinte arquitetura escravo mestre.

  • Nó mestre administra o cluster.
  • Armazena dados tabela servidores região e trabalhar sobre os dados.

À medida que o nó mestre é o controlador principal, HBase é muito sensível à perda do seu nó mestre.

HBase Visualizações: HBase é ter uma visão tabular para armazenar dados. O principal conceito é baseado na família de colunas. A tabela HBase é feita de linhas, colunas e cada coluna pertence a uma família de coluna. A chave linha da tabela é a chave primária para acesso à tabela. A chave de linha pode ser qualquer coisa e as linhas são classificadas por chave de linha. A seguir estão os dois pontos de vista que descrevem os conceitos.

Ver Conceptual: Nesta seção vou explicar o ponto de vista conceptual, tomando um exemplo. A tabela contém famílias de colunas e famílias de coluna conter colunas. A convenção é que uma coluna é feita de três partes – nome de família coluna, prefixo e coluna nome. O caractere de dois pontos (:) delimita a família coluna e coluna. Deixe-me dar um exemplo, o nome da tabela é "hbasetable’ colfamily1 ter "duas famílias de colunas’ and ‘colfamily2’. O 'colfamily1’ tem o nome de duas colunas '’ e "endereço". O 'colfamily2’ tem uma coluna 'telno'. Assim, a estrutura seria como mostrado abaixo.

Mesa 'Hbasetable’

colfamily1: name = “Ricardo”

colfamily1: address = “MA, EUA”

colfamily2: telno = “2235678”

A vista tabular será semelhante abaixo.

Key Row Time Stamp ColumnFamily colfamily1 ColumnFamily colfamily2
"Rowkey1" T1 colfamily2: telno = “2235678”
"Rowkey2" T2 colfamily2: telno = “9995678”
"Rowkey3" T3 colfamily2: telno = “8896578”
"Rowkey4" T4 colfamily1: name = “Ricardo”
"Rowkey5" T5 colfamily1: address = “MA, EUA”

Mesa 1: Exibição tabular de 'hbasetable'

Ver Física: Nós já discutimos o ponto de vista conceptual da tabela HBase e seu conteúdo. Mas a visão física é um pouco diferente. Fisicamente, as tabelas HBase são armazenados numa base família coluna. Assim, as novas colunas podem ser adicionados facilmente sem qualquer notificação prévia. Esse recurso adiciona a flexibilidade de escalabilidade linear que temos discutido anteriormente.

Seguem-se vista tabular de duas famílias de colunas.

Key Row Time Stamp ColumnFamily colfamily1
"Rowkey4" T4 colfamily1: name = “Ricardo”
"Rowkey5" T5 colfamily1: address = “MA, EUA”

Table2: Mostrando colfamily1

 

Key Row Time Stamp ColumnFamily colfamily2
"Rowkey1" T1 colfamily2: telno = “2235678”
"Rowkey2" T2 colfamily2: telno = “9995678”
"Rowkey3" T3 colfamily2: telno = “8896578”

Table3: Mostrando colfamily2

Por favor, note que as células vazias apresentados na vista conceitual não são realmente armazenados. O armazenamento só é permitido para uma estrutura de armazenamento orientadas coluna. Então, se nós consultar alguns dados em particular, carimbo de tempo 'T1’ from ‘colfamily1’, em seguida, ele iria retornar nada. O mesmo é verdade para 'colfamily2’ também, todos os selos de tempo são armazenados numa ordem descendente. Assim valor mais recente de uma coluna particular seria devolvido se não houver carimbo de tempo é mencionada em uma consulta.

Conclusão: Antes de concluir a discussão, devemos ter em mente que HBase é uma fonte aberta, NoSQL distribuído banco de dados adequado para armazenar e processar quantidade infinita de dados. É desenvolvido no âmbito do projecto Apache Hadoop e com base no quadro HDFS. Operações HBase são todas as tarefas MapReduce que funcionam de forma paralela. O conceito básico é o mesmo que BigTable do Google. A selecção de base de dados noSQL deve ser feito cuidadosamente. O projeto de design RDBMS e NoSQL é completamente diferentes de dados de modo que portar de RDBMS para HBase não é possível. O projeto inteiro tem que ser mudado para mudar de RDBMS para NoSQL HBase.

Tagged on:
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share