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
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