Descrivere Apache HBase

Completato

Apache HBase è un database NoSQL open source basato su Apache Hadoop. HBase offre accesso casuale e coerenza assoluta per quantità elevate di dati non strutturati e semistrutturati in un database privo di schema organizzato per famiglie di colonne. I cluster HBase di HDInsight 4.0 sono dotati di Apache HBase 2.1.6 e Apache Phoenix 5.

Dal punto di vista dell'utente, HBase è simile a un database. I dati sono archiviati nelle righe e nelle colonne di una tabella e i dati di ogni riga sono raggruppati in base al tipo di colonna. HBase è un database privo di schema, poiché non è necessario definire le colonne o i tipi di dati archiviati nelle colonne prima dell'uso. Il codice open source offre scalabilità lineare, in modo da gestire petabyte di dati in migliaia di nodi.

HBase offre le funzionalità seguenti che lo rendono unico

  • Coerenza in lettura e scrittura

  • Operazioni a bassa latenza

  • Partizionamento orizzontale automatico

  • Failover automatici del server di area

  • Integrazione con Hadoop/HDFS/MapReduce

  • API client Java

  • Supporta Thrift e REST per i front-end non Java

  • Cache in blocchi e filtri Bloom

Azure HDInsight HBase con Apache Phoenix offre i seguenti vantaggi aggiuntivi

  • SQL e nessuna interfaccia SQL

  • Pianificazione flessibile della capacità

  • Distribuzione e replica globali con la rete di Azure

  • Separazione di calcolo e archiviazione

  • Strettamente integrato con le funzionalità di sicurezza di HDInsight Enterprise

  • HDInsight HBase offre scritture accelerate per letture e scritture con latenza bassissima

  • Apache Phoenix per SQL in tempo reale, ad esempio l'esecuzione di query

L'uso di Azure HDInsight con HBase consente di eseguire database NoSQL su vasta scala. In qualità di ingegnere dei dati per Contoso, l'utente deve essere in grado di eseguire i test di benchmark per comprendere le prestazioni e la scalabilità di HDInsight HBase prima di usare la piattaforma per scenari di produzione mission critical.

HBase su HDInsight viene eseguito con la separazione tra calcolo e archiviazione. I cluster HDInsight HBase sono configurati per archiviare i dati direttamente in Archiviazione di Azure, che offre bassa latenza e maggiore flessibilità nelle opzioni relative a prestazioni e costi. Questa proprietà consente ai clienti di creare siti Web interattivi compatibili con set di dati di grandi dimensioni, per creare servizi che archiviano i dati di telemetria e dei sensori provenienti da milioni di endpoint e per analizzare questi dati con i processi Hadoop. HBase e Hadoop costituiscono validi punti di partenza per i progetti di Big Data in Azure. Grazie ai servizi è possibile consentire ad applicazioni in tempo reale di usare set di dati di grandi dimensioni. Le implementazioni di HDInsight HBase usano un'architettura con scale-out di HBase per assicurare il partizionamento orizzontale automatico delle tabelle, oltre a coerenza assoluta per le operazioni di lettura e scrittura e failover automatico. Le prestazioni sono ottimizzate dalla cache in memoria per le operazioni di lettura e da flussi a velocità effettiva elevata per quelle di scrittura. È possibile creare un cluster HBase in una rete virtuale. Per informazioni dettagliate, vedere Creare cluster HDInsight nella rete virtuale di Azure.

Architettura di HBase

In qualità di ingegnere dei dati, si deve determinare il tipo di cluster HDInsight più appropriato per le esigenze di compilazione di una soluzione. Si useranno cluster HBase in HDInsight per un database NoSQL con scalabilità lineare, ottenendo un notevole aumento della velocità effettiva disponibile, letture a bassa latenza e archiviazione illimitata a una frazione del costo.

Di seguito sono riportati gli scenari principali per l'uso di HBase in HDInsight.

Archivio chiave-valore

HBase normalmente viene usato come archivio di tipo chiave-valore ed è adatto alla gestione di sistemi di messaggistica.

Dati di sensori

HBase è utile per l'acquisizione dei dati raccolti in modo incrementale da diverse origini, tra cui analisi delle reti sociali, serie temporali, aggiornamento continuo di dashboard interattivi con tendenze e contatori e gestione dei sistemi di log di controllo.

Query in tempo reale

Apache Phoenix è un motore di query SQL per Apache HBase. Vi si accede mediante un driver JDBC e permette di eseguire query e di gestire le tabelle HBase tramite SQL.

HBase come piattaforma

Le applicazioni possono essere eseguite su HBase, usato come un archivio dati. Alcuni esempi sono Phoenix, OpenTSDB, Kiji e Titan. Le applicazioni possono anche essere integrate con HBase, Alcuni esempi: Apache Hive, Apache Pig, Solr, Apache Flume, Apache Impala, Apache Spark, Ganglia e Apache Drill.

In HDInsight HBase può essere usato come applicazione autonoma o distribuito insieme ad altre applicazioni di analisi dei Big Data, ad esempio Spark, Hadoop, Hive o Kafka.

HBase nel contesto di un'architettura Lambda

Il modello di dati HBase archivia i dati semistrutturati con tipi di dati diversi e dimensioni variabili di colonne e campi. Il layout del modello di dati HBase semplifica il partizionamento e la distribuzione dei dati nel cluster. Il modello di dati HBase è costituito da diversi componenti logici: chiavi di riga, famiglia di colonne, nome di tabella, timestamp e così via.

Una chiave di riga viene usata per identificare in modo univoco le righe nelle tabelle HBase. In HDInsight è possibile scrivere i dati direttamente in HBase usando diverse API a disposizione, ad esempio REST HBase, RPC HBase, Phoenix Query Server, caricamento bulk HBase, oppure usare l'integrazione con diversi framework di Big Data, ad esempio Apache Spark, Hive e così via.

Per abilitare la velocità effettiva di scrittura elevata, è possibile usare la funzionalità di scrittura accelerata di HBase. Per altre informazioni sull'architettura e sulle procedure consigliate di HBase, vedere il book di HBase.