Cloudera Data Platform (CDP) Private Cloud è la piattaforma on-premise più completa per l'analisi integrata e la gestione dei dati. Combina il meglio di Cloudera Enterprise Data Hub e Hortonworks Data Platform Enterprise Plus e porta nel data center le più recenti e migliori tecnologie open source per la gestione dei dati e l'analisi.
Con l'ultima versione (7) di CDP Private Cloud Base, abbiamo introdotto una serie di nuove funzionalità e miglioramenti. In questo post del blog, vorremmo condividere i miglioramenti delle prestazioni disponibili in Apache HBase.
Per coloro che non conoscono HBase o lo stanno valutando per un nuovo progetto, HBase è un database distribuito non relazionale considerato affidabile da architetti e sviluppatori che desiderano elaborare grandi volumi di dati in modo tempestivo e affidabile.
Per questo confronto delle prestazioni, abbiamo misurato HBase2 disponibile in CDP Private Cloud Base 7 a Hbase1 disponibile in CDH 5 utilizzando carichi di lavoro YCSB. Il confronto ci aiuta a comprendere i miglioramenti delle prestazioni e le implicazioni per i clienti che eseguono aggiornamenti sul posto senza modifiche all'hardware sottostante.
Nota:i clienti che eseguono l'aggiornamento da CDH 5 a CDP 7 riceveranno anche un aggiornamento HBase da HBase1 a HBase2.
- Carico di lavoro solo aggiornamento YCSB personalizzato
- Il nostro carico di lavoro personalizzato di solo aggiornamento YCSB funziona
- Operazioni di AGGIORNAMENTO al 100%
- Un esempio di applicazione potrebbe essere un archivio di metriche
- Prestazioni del carico di lavoro: La velocità effettiva di esecuzione del solo carico di lavoro di aggiornamento CDP 7 (operazioni al secondo) è stata del 20% migliore rispetto a quando eseguito con CDH5
- Il nostro carico di lavoro personalizzato di solo aggiornamento YCSB funziona
- Carico di lavoro YCSBA
- Il carico di lavoro YCSB A esegue
- 50% operazioni di LETTURA
- 50% delle operazioni di AGGIORNAMENTO
- Un esempio di applicazione potrebbe essere un archivio sessioni che registra le azioni recenti in una sessione utente
- Prestazioni del carico di lavoro:CDP La velocità effettiva del carico di lavoro A di Private Cloud Base 7.1 HBase2 YCSB (operazioni al secondo) è stata del 15% migliore rispetto a CDH5 HBase1
- Il carico di lavoro YCSB A esegue
- Carico di lavoro YCSB C (sola lettura)
- YCSB Workload C è un carico di lavoro di sola lettura ed esegue
- Operazioni di LETTURA al 100%
- Un esempio di applicazione potrebbe essere la lettura della cache del profilo utente quando i profili vengono creati altrove (ad es. Hadoop) o un sistema bancario per accedere e visualizzare gli estratti conto
- Prestazioni del carico di lavoro:il carico di lavoro CDP 7 YCSB C ha avuto un throughput (operazioni al secondo) simile a CDH 5
- YCSB Workload C è un carico di lavoro di sola lettura ed esegue
Verdict:CDP 7 offre prestazioni migliori rispetto a CDH 5 in YCSB
Carico di lavoro Solo aggiornamento personalizzato :Solo il carico di lavoro dell'aggiornamento CDP 7 YCSB è stato eseguito in meglio del 20% di C5.
Carico di lavoro YCSB A :il carico di lavoro CDP 7 YCSB A ha ottenuto prestazioni migliori del 15% rispetto a CDH5.
Carico di lavoro YCSB C :il carico di lavoro di sola lettura CDP 7 YCSB C aveva operazioni/throughput simili a CDH 5
Durante i nostri test, abbiamo notato che l'aggiornamento da JDK8 a JDK 11 all'interno di CDP 7 può migliorare le prestazioni di un altro 10%. Questo è al di sopra dei miglioramenti delle prestazioni ottenuti con l'aggiornamento da CDH5 a CDP7.
CDP 7 viene fornito con JDK8 installato per impostazione predefinita e supporta un aggiornamento a JDK11. Nelle nostre esecuzioni di test, CDP 7 è stato aggiornato per utilizzare JDK 11 per le esecuzioni del carico di lavoro YCSB mostrate sopra. Abbiamo eseguito gli stessi carichi di lavoro anche con JDK8 e i risultati del test hanno mostrato Le prestazioni di JDK11 sono migliori del 5-10% rispetto a JDK8 , come mostrato nella tabella sottostante
Per aggiornare CDP 7 da JDK 8 a OpenJDK 11, segui i passaggi seguenti:
Passaggio 1:installa OpenJDK11 su tutti gli host utilizzando quanto segue
RHEL
sudo yum install java-11-openjdk
Ubuntu
sudo apt install openjdk-11-jdk
Fase 2:solo sull'host Cloudera Manager Server (non richiesto per altri host):
- Apri il file /etc/default/cloudera-scm-server in un editor di testo.
- Modifica la riga che inizia con export JAVA_HOME (se questa riga non esiste, aggiungila) e cambia il percorso del nuovo JDK (il JDK è solitamente installato in / usr/lib/jvm)(o /usr/lib64/jvm su SLES 12), ma il percorso potrebbe differire a seconda di come è stato installato JDK).
Per ulteriori informazioni sull'aggiornamento di JDK, segui Aggiornamento del JDK
Ambiente di prova
Metodologia di prova
CDH 5.16.3/HBase1 è stato installato sul cluster e sono stati generati dati del carico di lavoro con 1 miliardo di righe (dimensione del set di dati 1 TB) e sono stati eseguiti carichi di lavoro CDH 5.16.3 YCSB. Dopo il caricamento, abbiamo atteso il completamento di tutte le operazioni di compattazione prima di iniziare il test del carico di lavoro.
Una volta completate le esecuzioni di CDH 5.16.3, CDP Private Cloud Base 7.1 HBase2 è stato installato in modo pulito e i dati sono stati rigenerati sullo stesso cluster. I carichi di lavoro CDP Private Cloud Base 7.1 YCSB sono stati quindi eseguiti per ottenere i tempi di test. Prima di ogni esecuzione del carico di lavoro, abbiamo inizializzato la tabella HBase utilizzata da YCSB. Istantanea della tabella utente utable_snap sono stati creati e applicati prima di ogni esecuzione.
Ciascun carico di lavoro testato è stato eseguito 3 volte per 15 minuti ciascuna per misurare il throughput*. I risultati mostrati sono le medie ricavate dai 3 test.
*Throughput (operazioni/sec) =N. di operazioni al secondo
CDP Private Cloud Base 7.1 include HBase2 e CDH 5.16.3 include HBase1. Sia CDP Private Cloud Base 7.1 che CDH5 hanno JDK 8 installato. CDP Private Cloud Base 7.1 supporta JDK11 e CDP Private Cloud Base 7.1 è stato aggiornato per utilizzare JDK 11 per i test YCSB, le esecuzioni CDH 5.13.3 sono state eseguite con JDK 8 (1.8.0_141)
Configurazioni di prova
- YCSB versione 0.17.0
- Versione di rilegatura YCSB hbase2(CDP-CD 7.1) e hbase1(CDH 5)
- I client YCSB utilizzati 2
- Thread YCSB per client 20
- Dimensione dati
- Tabella YCSB @scala da 1 TB
- Numero totale di record nella tabella YCSB 1.000.000.000 (1 TB), ogni record è 1 KB
- Numero di regioni nella tabella YCSB 250, con un cluster di 5+1 nodi, le sue circa 50 regioni per server di regione
- Spazio di archiviazione medio della regione utilizzato per dimensione del server 290G
- I server HBase Region sono stati configurati con 32 GB di heap
- È stata utilizzata solo la cache L1 con LruBlockCache con una dimensione della cache di 12,3 GB
- La percentuale di hit cache L1 osservata durante le esecuzioni sui server della regione è stata dell'85%
- L2 off heap cache non è stato configurato sul cluster
Configurazioni cluster
- Cluster utilizzato : Cluster a 6 nodi (1 master + 5 server regionali)
- Descrizione: Dell PowerEdge R430, 20c/40t Xenon e5-2630 v4 a 2,2 Ghz, 128 GB di RAM, dischi da 4-2 TB
- Sicurezza: Nessuno configurato (nessun Kerberos)
Versioni di Cloudera a confronto
Versione C7 :Base cloud privata CDP 7.1.0
Versione C5: CDH5.16.3
JDK utilizzati:JDK 8 ( 1.8.0_141) e JDK 11 (11.0.6)
Sulla base dei nostri test (risultati sopra), i clienti che desiderano eseguire l'aggiornamento da CDH 5 a CDP 7 dovrebbero aspettarsi prestazioni migliori per carichi di lavoro simili rispetto a quelli che ottengono oggi.
Ulteriori informazioni sul DB operativo Cloudera qui