To trochę naiwne pytanie, ale jestem nowy w paradygmacie NoSQL i niewiele o nim wiem. Więc jeśli ktoś może mi pomóc jasno zrozumieć różnicę między HBase i Hadoop lub jeśli podasz kilka wskazówek, które mogą pomóc mi zrozumieć różnicę.
Do tej pory zrobiłem kilka badań i zgodnie z. według mojego rozumienia Hadoop zapewnia ramy do pracy z surowymi fragmentami danych (plikami) w HDFS, a HBase to silnik bazy danych powyżej Hadoop, który zasadniczo działa z danymi strukturalnymi zamiast surowych fragmentów danych. Hbase zapewnia warstwę logiczną w HDFS, podobnie jak SQL. Czy to jest poprawne?
Prosimy o poprawienie mnie.
Dzięki.
Odpowiedzi:
Hadoop to w zasadzie 3 rzeczy: FS (Hadoop Distributed File System), struktura obliczeniowa (MapReduce) i most zarządzania (Yet Another Resource Negotiator). HDFS umożliwia przechowywanie ogromnych ilości danych w sposób rozproszony (zapewnia szybszy dostęp do odczytu / zapisu) i nadmiarowy (zapewnia lepszą dostępność). MapReduce umożliwia przetwarzanie tych ogromnych danych w sposób rozproszony i równoległy. Ale MapReduce nie ogranicza się tylko do HDFS. Będąc FS, HDFS nie ma możliwości losowego odczytu / zapisu. Jest dobry do sekwencyjnego dostępu do danych. I tu pojawia się HBase. Jest to baza danych NoSQL, która działa na klastrze Hadoop i zapewnia losowy dostęp do odczytu / zapisu w czasie rzeczywistym do danych.
Na platformie Hadoop i HBase można przechowywać zarówno dane strukturalne, jak i nieustrukturyzowane. Oba zapewniają wiele mechanizmów dostępu do danych, takich jak powłoka i inne interfejsy API. Ponadto HBase przechowuje dane jako pary klucz / wartość w sposób kolumnowy, podczas gdy HDFS przechowuje dane jako płaskie pliki. Niektóre z najważniejszych cech obu systemów to:
Hadoop
HBase
Hadoop najlepiej nadaje się do przetwarzania wsadowego offline, podczas gdy HBase jest używany, gdy masz potrzeby w czasie rzeczywistym.
Analogiczne porównanie byłoby między MySQL i Ext4.
źródło
Projekt Apache Hadoop zawiera cztery kluczowe moduły
HBase to skalowalna, rozproszona baza danych obsługująca uporządkowane przechowywanie danych dla dużych tabel. Podobnie jak
Bigtable
wykorzystuje rozproszony magazyn danych zapewniany przez system plików Google, Apache HBase zapewnia funkcje podobne do Bigtable oprócz Hadoop i HDFS.Kiedy używać HBase:
Ale HBase ma pewne ograniczenia
Podsumowanie:
Zapoznaj się z zaleceniami i zakazami HBase na blogu Cloudera .
źródło
Hadoop używa rozproszonego systemu plików, tj. HDFS do przechowywania danych bigdata. Ale istnieją pewne ograniczenia HDFS i Inorder, aby przezwyciężyć te ograniczenia, powstały bazy danych NoSQL, takie jak HBase, Cassandra i Mongodb.
Hadoop może wykonywać tylko przetwarzanie wsadowe, a dostęp do danych będzie możliwy tylko w sposób sekwencyjny. Oznacza to, że trzeba przeszukiwać cały zbiór danych, nawet w celu znalezienia najprostszych zadań. Ogromny zbiór danych po przetworzeniu daje kolejny ogromny zestaw danych, który również powinien być przetwarzany sekwencyjnie. W tym momencie potrzebne jest nowe rozwiązanie, aby uzyskać dostęp do dowolnego punktu danych w jednej jednostce czasu (dostęp swobodny).
Podobnie jak wszystkie inne systemy plików, HDFS zapewnia nam pamięć masową, ale w sposób odporny na błędy z wysoką przepustowością i mniejszym ryzykiem utraty danych (z powodu replikacji), ale HDFS jako system plików nie ma swobodnego dostępu do odczytu i zapisu. W tym miejscu pojawia się HBase. To rozproszony, skalowalny magazyn dużych zbiorów danych, wzorowany na BigTable firmy Google. Cassandra jest nieco podobna do hbase.
źródło
Zarówno HBase, jak i HDFS na jednym zdjęciu
HDFS to rozproszony system plików, który dobrze nadaje się do przechowywania dużych plików. który nie zapewnia szybkiego wyszukiwania pojedynczych rekordów w plikach.
Z drugiej strony HBase jest zbudowany na bazie HDFS i zapewnia szybkie wyszukiwanie rekordów (i aktualizacje) dla dużych tabel. Czasami może to być przyczyną pomieszania pojęć. HBase wewnętrznie umieszcza dane w zindeksowanych plikach „StoreFiles”, które istnieją w systemie plików HDFS w celu szybkiego wyszukiwania.
Cóż, na poziomie infrastruktury każda maszyna salve w klastrze ma następujące demony
HBase umożliwia szybkie wyszukiwanie w HDFS (czasami również w innych rozproszonych systemach plików) jako bazowej pamięci masowej, przy użyciu następującego modelu danych
Stół
Rząd
Kolumna
Rodzina kolumn
Kwalifikator kolumny
Komórka
Znak czasu
Przepływ żądania odczytu klienta:
Jaka jest metatabela na powyższym obrazku?
źródła i więcej informacji:
źródło
Źródła: http://www.quora.com/What-is-the-difference-between-HBASE-and-HDFS-in-Hadoop
Hadoop to ogólna nazwa kilku podsystemów: 1) HDFS. Rozproszony system plików, który dystrybuuje dane w klastrze komputerów, dbając o nadmiarowość itp. 2) Map Reduce. System zarządzania zadaniami oparty na HDFS - do zarządzania zadaniami redukcji map (i innymi typami) przetwarzającymi dane przechowywane w HDFS.
Zasadniczo oznacza to, że jest to system offline - przechowujesz dane na HDFS i możesz je przetwarzać, uruchamiając zadania.
Z drugiej strony HBase w bazie danych opartej na kolumnach. Używa HDFS jako pamięci masowej - która zajmuje się tworzeniem kopii zapasowych \ redundancją \ itp., Ale jest to „sklep internetowy” - co oznacza, że można zapytać o określony wiersz \ wiersze itp. I uzyskać natychmiastową wartość.
źródło
HDFS to rozproszony system plików oparty na języku Java, który umożliwia przechowywanie dużych danych w wielu węzłach w klastrze Hadoop. Natomiast HBase jest bazą danych NoSQL (podobnie jak NTFS i MySQL).
Ponieważ zarówno HDFS, jak i HBase przechowują wszelkiego rodzaju dane, takie jak ustrukturyzowane, częściowo ustrukturyzowane i nieustrukturyzowane w środowisku rozproszonym.
Różnice między HDFS i HBase
HDFS przechowuje duże zestawy danych w środowisku rozproszonym i wykorzystuje przetwarzanie wsadowe tych danych.
Podczas gdy HBase przechowuje dane w sposób zorientowany na kolumny, gdzie każda kolumna jest przechowywana razem, dzięki czemu odczyt staje się szybszy, wykorzystując przetwarzanie w czasie rzeczywistym.
źródło