HBase
 sql >> Database >  >> NoSQL >> HBase

Prestazioni HBase CDH5 (HBase1) vs CDH6 (HBase2)

I clienti HBase che effettuano l'aggiornamento a CDH 6 da CDH 5, riceveranno anche un aggiornamento HBase passando da HBase1 a HBase2. Le prestazioni sono un aspetto importante che i clienti considerano. Abbiamo misurato le prestazioni di CDH 5 HBase1 rispetto a CDH 6 HBase2 utilizzando i carichi di lavoro YCSB per comprendere le implicazioni sulle prestazioni dell'aggiornamento sui clienti che eseguono aggiornamenti sul posto (nessuna modifica all'hardware).

Informazioni su YCSB

Per i nostri test abbiamo utilizzato Yahoo! Benchmark del servizio cloud (YCSB). YCSB è una specifica open source e una suite di programmi per valutare le capacità di recupero e manutenzione dei programmi per computer. Viene spesso utilizzato per confrontare le prestazioni relative dei sistemi di gestione di database NoSQL.

Il benchmark originale è stato sviluppato dai lavoratori della divisione di ricerca di Yahoo! che lo ha rilasciato nel 2010. 

Maggiori informazioni su YCSB su https://github.com/brianfrankcooper/YCSB

Nel nostro ambiente di test è stata utilizzata la scala dati YCSB @1TB e i carichi di lavoro di esecuzione includevano i carichi di lavoro predefiniti YCSB e i carichi di lavoro personalizzati.

Carichi di lavoro di test YCSB utilizzati: 

  • Carico di lavoro A (lettura+aggiornamento) :Esempio di applicazione:archivio sessioni che registra le azioni recenti in una sessione utente
    • 50% LEGGI
    • 50% AGGIORNAMENTO
  • Carico di lavoro C (sola lettura) :Esempio di applicazione:lettura della cache del profilo utente, in cui i profili sono costruiti altrove (ad es. Hadoop)
    • LETTURA AL 100%
  • Carico di lavoro F (lettura+modifica+scrittura) :Esempio di applicazione:database utente, in cui i record utente vengono letti e modificati dall'utente o per registrare l'attività dell'utente
    • 50% LEGGI
    • 25% AGGIORNAMENTO
    • 25% LETTURA-MODIFICA-SCRITTURA
  • Solo aggiornamento del carico di lavoro YCSB personalizzato di Cloudera :Esempio di applicazione:aggiornamenti in blocco
    • Operazioni di AGGIORNAMENTO al 100%

Maggiori informazioni sui carichi di lavoro YCSB su https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads

Metodologia di prova

Stiamo caricando il set di dati YCSB con 1000.000.000 di record con ogni record di 1 KB di dimensione, creando un totale di 1 TB di dati. Dopo il caricamento, attendiamo il termine di tutte le operazioni di compattazione prima di iniziare il test del carico di lavoro. Ciascun carico di lavoro testato è stato eseguito 3 volte per 15 minuti ciascuna e la velocità effettiva * misurato. Il numero medio è preso da 3 prove per produrre il numero finale.

* Throughput (operazioni/sec) =N. di operazioni al secondo

Confronto throughput di CDH5 HBase1 vs CDH6 HBase2 utilizzando YCSB

Produttività di soli aggiornamenti personalizzati

Solo aggiornamento . Casi d'uso:aggiornamenti in blocco
CDH6 HBase2 throughput 50% in più rispetto a CDH5 HBase1

Carico di lavoro YCSB Un throughput

Aggiornamenti pesanti. Casi d'uso:archivio sessioni, registrazione di azioni recenti
CDH6 HBase2 throughput 6% in meno rispetto a CDH5 con HBase1

Attività C del carico di lavoro YCSB

Sola lettura. Casi d'uso:cache del profilo utente, cache del feed di notizie
CDH6 HBase2 throughput 5% in meno rispetto a CDH5 HBase1

Produttività F del carico di lavoro YCSB

Leggi-Modifica-Scrivi. Casi d'uso:archivio attività, database utente
CDH6 HBase2 throughput molto vicino a CDH5 HBase1

Riepilogo dei risultati del test

Solo aggiornamento personalizzato carico di lavoro :  Solo aggiornamento CDH6 HBase2 Il carico di lavoro è stato migliore del 50% rispetto a HBase1 CDH5

Carico di lavoro YCSB Carico di lavoro F: CDH6 YCSB Workload F Le operazioni e il throughput del carico di lavoro erano molto simili a CDH5 HBase1

Carico di lavoro YCSB A e carico di lavoro YCSB C: CDH6 YCSB Workload C Sola lettura e YCSB Workload A hanno avuto circa il 5% in meno operazioni e throughput rispetto a CDH5 HBase1

Versioni CDH a confronto

Versione CDH6:Cloudera Enterprise 6.2

Versione CDH5:Cloudera Enterprise 5.16.2

Nome VM Java:VM server Java HotSpot(TM) a 64 bit

Versione Java:1.8.0_141

Ambiente di prova

Cluster utilizzato : Cluster a 6 nodi
Descrizione del nodo: Dell PowerEdge R430, 20c/40t Xenon e5-2630 v4 a 2,2 Ghz, 128 GB di RAM, dischi da 4-2 TB

Impostazione di prova

  • Versione YCSB:0.14.0
  • Versione di rilegatura YCSB hbase20
  • Tabella YCSB @scala da 1 TB
  • Configurazioni WAL
    • Numero di pipeline WAL per server per regione (wal.regiongrouping.numgroups ) impostato su 1
    • Multi-WAL:wal.provider impostato su WAL HDFS multiplo
      • Nota -> Qui il WAL singolo utilizzato come pipeline WAL è impostato su 1
    • Asyncfs WAL:region.replica.replication.enabled impostato su false
  • Sicurezza: Nessuno configurato (nessun Kerberos)
  • Server regionali
    • Numero di regioni nella tabella YCSB 250, con cluster di 5+1 nodi e circa 50 regioni per server di regione
    • Dimensione media del server della regione 290G
    • Dati per regione ~ 6G
  • Solo cache L1 con LruBlockCache utilizzata con limite di dimensione della cache di 3 GB

Sulla base dei nostri test (risultati sopra), i clienti che desiderano eseguire l'aggiornamento da CDH 5.x a 6.x dovrebbero aspettarsi prestazioni notevolmente migliorate per gli aggiornamenti in blocco e prestazioni abbastanza simili per altri carichi di lavoro rispetto a quelle che ottengono oggi.

Ulteriori informazioni su Cloudera Operational DB qui