Zalety i wady HBase oraz wąskie gardło wydajności

Architektura HBase zawsze ma „Pojedynczy punkt awarii” i nie jest z nią powiązany żaden mechanizm obsługi wyjątków.

Tutaj dowiemy się, jakie są zalety i wady HBase oraz wąskie gardła wydajności:

Wąskie gardła wydajności w HBase

  • W każdym środowisku produkcyjnym HBase działa z klastrem ponad 5000 węzłów, tylko Hmaster działa jako master dla wszystkich serwerów Region podrzędnych. Jeśli Hmaster ulegnie awarii, można go odzyskać dopiero po długim czasie. Nawet jeśli klient jest w stanie połączyć się z serwerem Region. Posiadanie innego mastera jest możliwe, ale tylko jeden będzie aktywny. Aktywacja drugiego Hmastera zajmie dużo czasu, jeśli główny Hmaster ulegnie awarii. Tak więc Hmaster jest wąskim gardłem wydajności.
  • W HBase nie możemy oczywiście implementować żadnych operacji między danymi ani operacji łączenia, możemy implementować operacje łączenia za pomocą MapaReduce, co zajęłoby dużo czasu w projektowaniu i rozwoju. Operacje łączenia tabel są trudne do wykonania w HBase. W niektórych przypadkach użycia nie można tworzyć operacji łączenia, które odnoszą się do tabel obecnych w HBase
  • HBase wymagałby nowego projektu, gdy chcemy migrować dane z zewnętrznych źródeł RDBMS na serwery HBase. Jednak proces ten zajmuje dużo czasu.
  • HBase jest naprawdę trudny do wykonywania zapytań. Być może będziemy musieli zintegrować HBase z niektórymi SQL warstwy jak Apache phoenix, w którym możemy pisać zapytania uruchamiające dane w bazie HBase. Naprawdę dobrze jest mieć Apache Phoenix na HBase.
  • Kolejną wadą HBase jest to, że nie możemy mieć więcej niż jednego indeksowania w tabeli, tylko kolumna klucza wiersza działa jako klucz podstawowy. Zatem wydajność byłaby niska, gdybyśmy chcieli wyszukiwać w więcej niż jednym polu lub innym kluczu niż Row. Problem ten możemy pokonać pisząc kod MapReduce, integrując się z Apache SOLR oraz z Apache Phoenix.
  • Powolna poprawa bezpieczeństwa dostępu różnych użytkowników do danych z HBase.
  • HBase nie obsługuje całkowicie kluczy częściowych
  • HBase umożliwia tylko jedno domyślne sortowanie na tabelę
  • Bardzo trudno jest przechowywać duże pliki binarne w HBase
  • Przechowywanie HBase ograniczy zapytania i sortowanie w czasie rzeczywistym
  • Wyszukiwanie kluczy i wyszukiwanie zakresów w kontekście przeszukiwania zawartości tabeli przy użyciu wartości kluczy, co ograniczy zapytania wykonywane w czasie rzeczywistym
  • Domyślne indeksowanie nie jest obecne w HBase. Programiści muszą zdefiniować kilka wierszy kodu lub skryptu, aby wykonać funkcję indeksowania w HBase
  • Drogie pod względem wymagań sprzętowych i alokacji bloków pamięci.
    • W środowiskach klastrów rozproszonych należy zainstalować więcej serwerów (np. każdy serwer dla NameNode, DataNode, Opiekun zooi serwery regionalne)
    • Jeśli chodzi o wydajność, wymaga maszyn o dużej pamięci
    • Pod względem kosztów i konserwacji jest również wyższy

Zaleta HBase, ograniczenia i wąskie gardło wydajności

Zalety HBase'a

Tutaj dowiemy się, jakie są zalety/korzyści HBase:

  • Możliwość przechowywania dużych zestawów danych na górze pamięci masowej plików HDFS oraz agregacja i analiza miliardów wierszy znajdujących się w tabelach HBase
  • W HBase bazę danych można udostępniać
  • Operatakie jak odczyt i przetwarzanie danych zajmą niewielką ilość czasu w porównaniu z tradycyjnymi modelami relacyjnymi
  • Losowe operacje odczytu i zapisu
  • HBase jest powszechnie używany do przeprowadzania analiz online.
  • Na przykład: W zastosowaniach bankowych, takich jak aktualizacja danych w czasie rzeczywistym w bankomatach, można zastosować HBase.

Wady HBase

Oto ważne wady/ograniczenia HBase:

  • Nie możemy oczekiwać, że całkowicie wykorzystamy HBase jako zamiennik tradycyjnych modeli. Niektóre funkcje tradycyjnych modeli nie są obsługiwane przez HBase
  • HBase nie może wykonywać funkcji takich jak SQL. Nie obsługuje struktury SQL, więc nie zawiera żadnego optymalizatora zapytań
  • HBase jest intensywnie wykorzystujący procesor i pamięć z dużym sekwencyjnym dostępem wejściowym lub wyjściowym, podczas gdy zadania Map Reduce są głównie ograniczone wejściem lub wyjściem z ustaloną pamięcią. HBase zintegrowany z zadaniami Map-reduce spowoduje nieprzewidywalne opóźnienia
  • HBase zintegrowany ze świnią i Ul zadania powodują pewne problemy z pamięcią czasową w klastrze
  • W środowisku klastra współdzielonego konfiguracja wymaga mniejszej liczby slotów zadań na węzeł w celu przydzielenia ich na potrzeby procesora HBase