HBase
 sql >> Baza danych >  >> NoSQL >> HBase

Wydajność HBase CDH5 (HBase1) vs CDH6 (HBase2)

Klienci HBase, którzy dokonają aktualizacji do CDH 6 z CDH 5, otrzymają również aktualizację HBase przenoszącą się z HBase1 na HBase2. Wydajność jest ważnym aspektem, który klienci biorą pod uwagę. Zmierzyliśmy wydajność CDH 5 HBase1 w porównaniu z CDH 6 HBase2 przy użyciu obciążeń YCSB, aby zrozumieć wpływ uaktualnienia na wydajność dla klientów dokonujących uaktualnień w miejscu (bez zmian w sprzęcie).

O YCSB

Do naszych testów użyliśmy Yahoo! Test porównawczy udostępniania w chmurze (YCSB). YCSB to specyfikacja i pakiet programów typu open source do oceny możliwości pobierania i konserwacji programów komputerowych. Jest często używany do porównywania względnej wydajności systemów zarządzania bazami danych NoSQL.

Oryginalny test porównawczy został opracowany przez pracowników działu badawczego Yahoo! który wydał go w 2010 roku. 

Więcej informacji na temat YCSB na https://github.com/brianfrankcooper/YCSB

W naszym środowisku testowym zastosowano skalę danych YCSB @1TB, a uruchomione obciążenia obejmowały domyślne obciążenia YCSB i niestandardowe obciążenia.

Wykorzystane obciążenia testowe YCSB:

  • Zadanie A (odczyt + aktualizacja) :Przykład aplikacji:Magazyn sesji rejestrujący ostatnie działania w sesji użytkownika
    • 50% PRZECZYTAJ
    • 50% AKTUALIZACJA
  • Zadanie C (tylko do odczytu) :Przykład aplikacji:Odczyt pamięci podręcznej profili użytkownika, gdzie profile są konstruowane w innym miejscu (np. Hadoop)
    • 100% PRZECZYTAJ
  • Zadanie F (odczyt+modyfikacja+zapis) :Przykład aplikacji:Baza danych użytkowników, w której rekordy użytkowników są odczytywane i modyfikowane przez użytkownika lub w celu rejestrowania aktywności użytkownika
    • 50% PRZECZYTAJ
    • AKTUALIZACJA 25%
    • 25% ODCZYT-ZMIANA-ZAPIS
  • Tylko aktualizacja niestandardowego obciążenia YCSB Cloudera :Przykład aplikacji:Aktualizacje zbiorcze
    • Operacje AKTUALIZACJI 100%

Więcej informacji o obciążeniach YCSB na https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads

Metodologia testów

Ładujemy zbiór danych YCSB 1000.000.000 rekordów z każdym rekordem o rozmiarze 1 KB, tworząc łącznie 1 TB danych. Po załadowaniu czekamy na zakończenie wszystkich operacji zagęszczania przed rozpoczęciem testu obciążenia. Każde testowane obciążenie zostało uruchomione 3 razy po 15 minut, a przepustowość* wymierzony. Średnia liczba jest pobierana z 3 testów, aby uzyskać ostateczną liczbę.

* Przepustowość (operacje/s) =liczba operacji na sekundę

Porównanie przepustowości CDH5 HBase1 i CDH6 HBase2 przy użyciu YCSB

Przepustowość tylko aktualizacji niestandardowych

Tylko aktualizacja . Przypadki użycia:aktualizacje zbiorcze
Przepustowość CDH6 HBase2 o 50% większa niż w przypadku CDH5 HBase1

Przepustowość obciążenia A YCSB

Aktualizacja ciężka. Przypadki użycia:przechowywanie sesji, rejestrowanie ostatnich działań
Przepustowość CDH6 HBase2 o 6% mniejsza niż CDH5 z HBase1

Przepustowość obciążenia C YCSB

Tylko do odczytu. Przypadki użycia:pamięć podręczna profilu użytkownika, pamięć podręczna kanałów informacyjnych
Przepustowość CDH6 HBase2 o 5% mniejsza niż CDH5 HBase1

Przepustowość F obciążenia roboczego YCSB

Odczyt-modyfikacja-zapis. Przypadki użycia:magazyn aktywności, bazy danych użytkowników
Przepustowość CDH6 HBase2 bardzo zbliżona do CDH5 HBase1

Podsumowanie wyników testu

Tylko aktualizacja niestandardowa obciążenie pracą :  HBase2 CDH6 Update Tylko obciążenie wykonywane 50% lepiej niż HBase1 CDH5

Obciążenie F zadania YCSB: Operacje i przepustowość obciążenia roboczego CDH6 YCSB F były bardzo podobne do CDH5 HBase1

Obciążenia YCSB Workload A i YCSB Workload C: CDH6 YCSB Workload C Tylko do odczytu i YCSB Workload A miały około 5% mniej operacje i przepustowość niż CDH5 HBase1

Porównano wersje CDH

Wersja CDH6:Cloudera Enterprise 6.2

Wersja CDH5:Cloudera Enterprise 5.16.2

Nazwa maszyny wirtualnej Java:64-bitowa maszyna wirtualna serwera Java HotSpot(TM)

Wersja Java:1.8.0_141

Środowisko testowe

Użyty klaster: Klaster z 6 węzłami
Opis węzła: Dell PowerEdge R430, 20c/40t Xenon e5-2630 v4 @ 2,2 Ghz, 128 GB pamięci RAM, dyski 4-2 TB

Konfiguracja testowa

  • Wersja YCSB:0.14.0
  • Wersja wiązania YCSB hbase20
  • Tabela YCSB @skala 1TB
  • Konfiguracje WAL
    • Liczba potoków WAL na poziomie serwera (wal.regiongrouping.numgroups ) ustaw na 1
    • Multi-WAL:wal.provider ustawiony na Wiele HDFS WAL
      • Uwaga -> Tutaj pojedynczy WAL używany jako potoki WAL jest ustawiony na 1
    • Asyncfs WAL:region.replica.replication.enabled ustaw na fałsz
  • Bezpieczeństwo: Brak skonfigurowanych (bez protokołu Kerberos)
  • Serwery regionalne
    • Liczba regionów w tabeli YCSB 250, z klastrami 5+1 węzłów, około 50 regionów na serwer regionu
    • Średni rozmiar serwera regionu 290G
    • Dane na region ~ 6G
  • Tylko pamięć podręczna L1 z LruBlockCache używana z limitem rozmiaru pamięci podręcznej 3 GB

Na podstawie naszych testów (wyniki powyżej) klienci, którzy chcą uaktualnić CDH 5.x do 6.x, powinni spodziewać się znacznie lepszej wydajności w przypadku aktualizacji zbiorczych i dość podobnej wydajności w przypadku innych obciążeń w porównaniu z tym, co otrzymują dzisiaj.

Dowiedz się więcej o Cloudera Operational DB tutaj


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Co to jest automatyczne przełączanie awaryjne NameNode w Hadoop HDFS?

  2. Instrukcje:włączanie uwierzytelniania i autoryzacji użytkownika w Apache HBase

  3. Indeksowanie wiadomości e-mail za pomocą Cloudera Search i HBase

  4. Solidna serializacja wiadomości w Apache Kafka przy użyciu Apache Avro, część 1

  5. Instrukcje:korzystanie z interfejsu Apache HBase REST, część 1