Jakie są korzyści z przy użyciu Hadoop lub HBase lub gałąź ?
Z mojego zrozumienia, HBase unika korzystania z mapowania i ma pamięć zorientowaną na kolumny na HDFS. Hive to podobny do sql interfejs dla Hadoop i HBase .
Chciałbym również wiedzieć, jak Hive wypada w porównaniu ze Pig .
hadoop
hbase
hive
apache-pig
Khalefa
źródło
źródło
Odpowiedzi:
MapReduce to tylko środowisko obliczeniowe . HBase nie ma z tym nic wspólnego. To powiedziawszy, możesz efektywnie umieszczać lub pobierać dane do / z HBase, pisząc zadania MapReduce. Alternatywnie możesz pisać programy sekwencyjne przy użyciu innych interfejsów API HBase, takich jak Java, do umieszczania lub pobierania danych. Ale używamy Hadoop, HBase itp. Do radzenia sobie z gigantycznymi ilościami danych, więc nie ma to większego sensu. Korzystanie z normalnych programów sekwencyjnych byłoby wysoce nieefektywne, gdy dane są zbyt duże.
Wracając do pierwszej części pytania, Hadoop składa się zasadniczo z dwóch rzeczy: rozproszonego systemu plików (HDFS) + środowiska obliczeniowego lub przetwarzania (MapReduce) . Podobnie jak wszystkie inne FS, HDFS zapewnia nam również pamięć masową, ale w sposób odporny na uszkodzenia o wysokiej przepustowości i niższym ryzyku utraty danych (z powodu replikacji). Ale jako FSFS HDFS nie ma dostępu do losowego odczytu i zapisu . Tutaj pojawia się HBase. To rozproszony, skalowalny sklep z dużymi danymi , wzorowany na BigTable Google. Przechowuje dane jako pary klucz / wartość.
Coming to Hive. Zapewnia nam usługi hurtowni danych na bazie istniejącego klastra Hadoop. Oprócz tego zapewnia interfejs podobny do SQL , który ułatwia pracę, na wypadek, gdybyś pochodził z SQL. Możesz tworzyć tabele w gałęzi i przechowywać tam dane. Oprócz tego możesz nawet mapować istniejące tabele HBase do Hive i obsługiwać je.
Podczas gdy Pig jest w zasadzie językiem przepływu danych, który pozwala nam przetwarzać ogromne ilości danych bardzo łatwo i szybko. Świnia w zasadzie ma 2 części: Pig interpretera i język, PigLatin . Skrypt Pig piszesz w PigLatin i przetwarzasz je za pomocą interpretera Pig. Świnia ułatwia nam życie, w przeciwnym razie pisanie MapReduce nie zawsze jest łatwe. W rzeczywistości w niektórych przypadkach może to naprawdę stać się bólem.
Jakiś czas temu napisałem artykuł na temat krótkiego porównania różnych narzędzi ekosystemu Hadoop . To nie jest dogłębne porównanie, ale krótkie wprowadzenie do każdego z tych narzędzi, które może pomóc Ci zacząć. (Wystarczy dodać do mojej odpowiedzi. Nie jest planowana autopromocja)
Zarówno zapytania Hive, jak i Pig są przekształcane pod zadania MapReduce.
HTH
źródło
yarn
ekosystemie Hadoop :(.Niedawno wdrożyłem platformę Hive Data w mojej firmie i mogę z nią porozmawiać z pierwszej osoby, ponieważ byłem zespołem jednoosobowym.
Cel
Opcje architektury
Testowałem następujące opcje:
Projekt
Podsumowanie
HBase jest jak mapa. Jeśli znasz klucz, możesz natychmiast uzyskać wartość. Ale jeśli chcesz wiedzieć, ile kluczy całkowitych w Hbase zawiera się między 1000000 a 2000000, to nie jest odpowiednie dla samego Hbase .
Jeśli masz dane, które muszą zostać zagregowane, zwinięte, przeanalizowane w wierszach, zastanów się nad gałęzią .
Mam nadzieję, że to pomaga.
Hive faktycznie skały ... Wiem, żyłem już od 12 miesięcy ... Tak samo HBase ...
źródło
Hadoop to platforma, która pozwala na rozproszone przetwarzanie dużych zbiorów danych w klastrach komputerów przy użyciu prostych modeli programowania.
Istnieją cztery główne moduły w Hadoop.
Hadoop Common : wspólne narzędzia obsługujące inne moduły Hadoop.
Hadoop Distributed File System ( HDFS ™ ): Rozproszony system plików, który zapewnia wysokoprzepustowy dostęp do danych aplikacji.
Hadoop YARN : Framework do planowania zadań i zarządzania zasobami klastra.
Hadoop MapReduce : System YARN do równoległego przetwarzania dużych zestawów danych.
Zanim przejdziemy dalej, zauważmy, że mamy trzy różne typy danych.
Strukturalny : Dane strukturalne mają silny schemat, a schemat zostanie sprawdzony podczas operacji zapisu i odczytu. np. dane w systemach RDBMS, takich jak Oracle, MySQL Server itp.
Nieustrukturyzowany : Dane nie mają żadnej struktury i mogą mieć dowolną formę - dzienniki serwera WWW, e-mail, obrazy itp.
Częściowo ustrukturyzowany : dane nie są ściśle ustrukturyzowane, ale mają pewną strukturę. np. pliki XML.
W zależności od rodzaju przetwarzanych danych musimy wybrać odpowiednią technologię.
Kilka innych projektów, które są częścią Hadoop:
HBase ™ : skalowalna, rozproszona baza danych, która obsługuje uporządkowane przechowywanie danych dla dużych tabel.
Hive ™: infrastruktura hurtowni danych zapewniająca podsumowanie danych i zapytania ad-hoc.
Pig ™ : język wysokiego poziomu przepływu danych i środowisko wykonywania dla obliczeń równoległych.
Porównanie PIG Hive Vs można znaleźć w tym artykule i moim innym poście na pytanie SE .
HBASE nie zastąpi Map Reduce. HBase to skalowalna rozproszona baza danych, a Map Reduce to model programowania rozproszonego przetwarzania danych. Map Reduce może przetwarzać dane w HBASE.
Możesz użyć HIVE / HBASE do danych strukturalnych / częściowo ustrukturyzowanych i przetwarzać je za pomocą Hadoop Map Reduce
Za pomocą SQOOP można importować dane strukturalne z tradycyjnej bazy danych RDBMS Oracle, SQL Server itp. I przetwarzać je za pomocą Hadoop Map Reduce
Możesz użyć FLUME do przetwarzania nieustrukturyzowanych danych i przetwarzania za pomocą Hadoop Map Reduce
Zobacz: Przypadki użycia Hadoop .
Hive powinien być używany do analitycznego zapytania danych gromadzonych przez pewien okres czasu. np. Oblicz trendy, podsumuj dzienniki witryny, ale nie można jej używać do zapytań w czasie rzeczywistym.
HBase pasuje do zapytań Big Data w czasie rzeczywistym. Facebook używa go do przesyłania wiadomości i analiz w czasie rzeczywistym.
PIG może być wykorzystywany do konstruowania przepływów danych, uruchamiania zaplanowanych zadań, dzielenia dużych ilości danych, agregowania / podsumowywania i przechowywania w relacyjnych systemach baz danych. Dobry do analizy ad hoc.
Hive może być wykorzystywany do analizy danych ad-hoc, ale nie obsługuje wszystkich nieustrukturyzowanych formatów danych w przeciwieństwie do PIG.
źródło
Weź pod uwagę, że pracujesz z RDBMS i musisz wybrać, czego chcesz użyć - pełne skanowanie tabeli lub dostęp do indeksu - ale tylko jeden z nich.
Jeśli wybierzesz skanowanie pełnego stołu - użyj gałęzi. Jeśli dostęp do indeksu - HBase.
źródło
Dla porównania między Hadoop kontra Cassandra / HBase przeczytaj ten post .
Zasadniczo HBase umożliwia naprawdę szybki odczyt i zapis ze skalowalnością. Jak szybki i skalowalny? Facebook używa go do zarządzania statusem użytkownika, zdjęciami, wiadomościami na czacie itp. HBase jest tak szybki, że Facebook opracował stosy, aby używać HBase jako magazynu danych dla samego Hive.
Gdzie As Hive bardziej przypomina rozwiązanie hurtowni danych. Możesz użyć składni podobnej do SQL, aby wysłać zapytanie do zawartości gałęzi, co powoduje zadanie Map Reduce. Nie jest idealny do szybkich systemów transakcyjnych.
źródło
Pracowałem nad przetwarzaniem architektury Lambda w czasie rzeczywistym i ładowaniami wsadowymi. Przetwarzanie w czasie rzeczywistym jest potrzebne tam, gdzie konieczne jest podejmowanie szybkich decyzji w przypadku wysłania alarmu przeciwpożarowego przez czujnik lub wykrycie oszustwa w przypadku transakcji bankowych. Przetwarzanie wsadowe jest potrzebne do podsumowania danych, które można wprowadzić do systemów BI.
użyliśmy Hadoop technologii ekosystemu dla powyższych zastosowań.
Przetwarzanie w czasie rzeczywistym
Apache Storm: przetwarzanie danych strumieniowych, aplikacja reguł
HBase: Magazyn danych do obsługi pulpitu nawigacyjnego w czasie rzeczywistym
Batch Processing Hadoop: Crunching ogromną porcję danych. Przegląd 360 stopni lub dodawanie kontekstu do wydarzeń. Interfejsy lub frameworki, takie jak Pig, MR, Spark, Hive, Shark, pomagają w przetwarzaniu. Ta warstwa wymaga harmonogramu, dla którego Oozie jest dobrym rozwiązaniem.
Warstwa obsługi zdarzeń
Apache Kafka była pierwszą warstwą, która pochłaniała zdarzenia o wysokiej prędkości z czujnika. Kafka obsługuje przepływ danych zarówno w czasie rzeczywistym, jak i Batch przez łączniki Linkedin.
źródło
Zrozumienie dogłębnie
Hadoop
Hadoop
jest projektemApache
fundacji typu open source . Jest to framework napisany wJava
, pierwotnie opracowany przez Douga Cuttinga w 2005 roku. Został stworzony w celu obsługi dystrybucji dlaNutch
wyszukiwarki tekstów.Hadoop
wykorzystuje technologie GoogleMap Reduce
i Google File System jako podstawę.Funkcje Hadoop
Hadoop
służy raczej do dużej przepustowości niż do małych opóźnień. Jest to operacja wsadowa obsługująca ogromne ilości danych; dlatego czas reakcji nie jest natychmiastowy.RDBMS
.Wersje Hadoop
Dostępne są dwie wersje
Hadoop
:Hadoop 1.0
Składa się z dwóch głównych części:
1. Struktura przechowywania danych
Jest to system plików ogólnego przeznaczenia o nazwie Hadoop Distributed File System (
HDFS
).HDFS
jest bez schematuPo prostu przechowuje pliki danych, które mogą mieć dowolny format.
Chodzi o to, aby przechowywać pliki tak blisko ich oryginalnej formy, jak to możliwe.
To z kolei zapewnia jednostkom biznesowym i organizacji bardzo potrzebną elastyczność i sprawność, nie martwiąc się zbytnio tym, co może wdrożyć.
2. Ramy przetwarzania danych
Jest to prosty model programowania funkcjonalnego, spopularyzowany początkowo przez Google jako
MapReduce
.Zasadniczo wykorzystuje dwie funkcje:
MAP
iREDUCE
do przetwarzania danych.„Mapujący” przyjmują zestaw par klucz-wartość i generują dane pośrednie (czyli kolejną listę par klucz-wartość).
„Reduktory” działają następnie na to wejście w celu wygenerowania danych wyjściowych.
Te dwie funkcje pozornie działają w oderwaniu od siebie, umożliwiając w ten sposób wysoce rozproszone przetwarzanie w bardzo równoległy, odporny na uszkodzenia i skalowalny sposób.
Ograniczenia Hadoop 1.0
Pierwszym ograniczeniem był wymóg
MapReduce
znajomości programowania.Obsługiwane było tylko przetwarzanie wsadowe, które wprawdzie nadaje się do zadań takich jak analiza logów, projekty eksploracji danych na dużą skalę, ale prawie nie nadaje się do innych rodzajów projektów.
Jednym z głównych ograniczeń było
Hadoop 1.0
ścisłe powiązanie obliczenioweMapReduce
, co oznaczało, że uznani dostawcy zarządzania danymi pozostawili dwie opinie:Albo przepisz ich funkcjonalność,
MapReduce
aby można je było wykonać wHadoop
lubWyodrębnij dane
HDFS
lub przetwarzaj je pozaHadoop
.Żadna z opcji nie była wykonalna, ponieważ doprowadziła do nieefektywności procesu spowodowanej przenoszeniem danych do i z
Hadoop
klastra.Hadoop 2.0
W
Hadoop 2.0
,HDFS
nadal ramy przechowywania danych.Jednakże nowe i indywidualne struktury zarządzania zasobami nazwie Y i kolizyjnego R esource N egotiater ( przędzy ), został dodany.
Każda aplikacja zdolna do dzielenia się na zadania równoległe jest obsługiwana przez YARN.
YARN koordynuje przydział podzadań złożonego wniosku, zwiększając w ten sposób elastyczność, skalowalność i wydajność aplikacji.
Działa poprzez zastosowanie Master aplikacji zamiast Job Tracker , uruchamianie aplikacji na zasobach zarządzanych przez nowy Node Manager .
ApplicationMaster jest w stanie uruchomić dowolną aplikację, a nie tylko
MapReduce
.Oznacza to, że obsługuje nie tylko przetwarzanie wsadowe, ale także przetwarzanie w czasie rzeczywistym.
MapReduce
nie jest już jedyną opcją przetwarzania danych.Zalety Hadoop
Przechowuje dane w swojej natywnej postaci. Nie ma narzuconej struktury podczas wprowadzania danych lub przechowywania danych.
HDFS
jest mniej schematu. Dopiero później, gdy dane muszą zostać przetworzone, struktura zostaje nałożona na surowe dane.Jest skalowalny.
Hadoop
może przechowywać i rozpowszechniać bardzo duże zbiory danych na setkach niedrogich serwerów, które działają równolegle.Jest odporny na awarie.
Hadoop
to odporność na awarie. Pilnie ćwiczy replikację danych, co oznacza, że za każdym razem, gdy dane są wysyłane do dowolnego węzła, te same dane są replikowane również do innych węzłów w klastrze, zapewniając w ten sposób, że w przypadku awarii węzła zawsze będzie dostępna kolejna kopia danych do użycia.Jest elastyczny. Jedną z kluczowych zalet
Hadoop
jest to, że może pracować z dowolnym rodzajem danych: ustrukturyzowanym, nieustrukturyzowanym lub częściowo ustrukturyzowanym. Ponadto przetwarzanie jest niezwykle szybkieHadoop
ze względu na paradygmat „przenieś kod do danych”.Ekosystem Hadoop
Oto elementy
Hadoop
ekosystemu:HDFS :
Hadoop
Rozproszony system plików. Po prostu przechowuje pliki danych możliwie najbliżej oryginalnej formy.HBase : Jest to baza danych Hadoop i dobrze się porównuje z
RDBMS
. Obsługuje uporządkowane przechowywanie danych dla dużych tabel.Hive : Umożliwia analizę dużych zestawów danych przy użyciu języka bardzo podobnego do standardu
ANSI SQL
, co oznacza, że każda osoba z rodzinąSQL
powinna mieć dostęp do danych wHadoop
klastrze.Świnia : Jest to łatwy do zrozumienia język przepływu danych. Pomaga w analizie dużych zestawów danych, co jest dość porządne
Hadoop
.Pig
Skrypty są automatycznie konwertowane naMapReduce
zadania przezPig
tłumacza.ZooKeeper : Jest to usługa koordynująca aplikacje rozproszone.
Oozie : Jest to
schedular
system przepływu pracy do zarządzaniaHadoop
zadaniami Apache .Mahout : Jest to skalowalna biblioteka do uczenia maszynowego i eksploracji danych.
Chukwa : Jest to system gromadzenia danych do zarządzania dużym systemem rozproszonym.
Sqoop : Służy do przesyłania danych zbiorczych między
Hadoop
ustrukturyzowanymi magazynami danych, takimi jak relacyjne bazy danych.Ambari : Jest to internetowe narzędzie do udostępniania, zarządzania i monitorowania
Hadoop
klastrów.Ul
Hive
jest narzędziem infrastruktury hurtowni danych do przetwarzania danych strukturalnychHadoop
. Opiera się onHadoop
na podsumowaniu Big Data i ułatwia wyszukiwanie i analizę zapytań.Rój nie jest
Relacyjna baza danych
Projekt do przetwarzania transakcji online (
OLTP
).Język zapytań w czasie rzeczywistym i aktualizacji na poziomie wiersza.
Funkcje ula
Przechowuje schemat w bazie danych i przetwarza dane w
HDFS
.Jest przeznaczony do
OLAP
.Zapewnia
SQL
język typów dla zapytań o nazwieHiveQL
lubHQL
.Jest bardziej rodzinny, szybki, skalowalny i rozszerzalny.
Architektura ula
Architektura Hive zawiera następujące komponenty:
Interfejs użytkownika :
Hive
jestdata warehouse
infrastrukturą, która może tworzyć interakcje między użytkownikiem aHDFS
. Obsługiwane interfejsy użytkownikaHive
to Hive Web UI, Hive Command Line i Hive HD Insight (w systemie Windows Server).MetaStore :
Hive
wybiera odpowiednidatabase
servers
do przechowywania schematu lubMetadata
tabel, baz danych, kolumn w tabeli, ich typów danych iHDFS
mapowania.HiveQL Process Engine :
HiveQL
jest podobny doSQL
zapytania o informacje o schemacie wMetastore
. Jest to jeden z zamienników tradycyjnego podejścia doMapReduce
programu. Zamiast pisaćMapReduce
wJava
, możemy napisać zapytanie doMapReduce
i przetwarza je.Exceution Silnik : Część koniunkcja
HiveQL
silniku procesowym iMapReduce
jestHive
Execution Engine. Silnik wykonawczy przetwarza zapytanie i generuje wyniki tak samo jakMapReduce results
. Wykorzystuje smakMapReduce
.HDFS lub HBase :
Hadoop
rozproszony system plików lubHBase
techniki przechowywania danych służące do przechowywania danych w systemie plików.źródło
Przede wszystkim powinniśmy wyjaśnić, że Hadoop został stworzony jako szybsza alternatywa dla RDBMS . Przetwarzanie dużej ilości danych w bardzo szybkim tempie, co wcześniej zajmowało dużo czasu w RDBMS.
Teraz należy znać dwa terminy:
Dane strukturalne : są to dane, które wykorzystaliśmy w tradycyjnym RDBMS i są podzielone na dobrze zdefiniowane struktury.
Dane nieustrukturyzowane : Należy to zrozumieć, ponieważ około 80% danych na świecie jest nieustrukturyzowanych lub częściowo ustrukturyzowanych. Są to dane, które są w surowej formie i nie mogą być przetwarzane przy użyciu RDMS. Przykład: dane z Facebooka, Twittera. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).
Tak więc w ostatnich latach generowano dużą ilość danych, a dane były w większości nieustrukturyzowane, co dało początek HADOOP. Był używany głównie do bardzo dużej ilości danych, które wymagają niewykonalnego czasu przy użyciu RDBMS. Miał wiele wad, że nie można go było używać do stosunkowo małych danych w czasie rzeczywistym, ale udało im się usunąć jego wady w nowszej wersji.
Przed pójściem dalej chciałbym powiedzieć, że nowe narzędzie Big Data jest tworzone, gdy widzą błąd w poprzednich narzędziach. Tak więc, którekolwiek narzędzie, które zobaczysz, zostało utworzone, zostało zrobione w celu przezwyciężenia problemu poprzednich narzędzi.
Hadoop można po prostu powiedzieć jako dwie rzeczy: Mapreduce i HDFS . Mapreduce to miejsce, w którym odbywa się przetwarzanie, a HDFS to baza danych, w której przechowywane są dane. Ta struktura jest zgodna z zasadą WORM, tzn. Pisz raz po wielokrotnym odczytaniu. Po zapisaniu danych w HDFS nie możemy wprowadzać zmian. Doprowadziło to do powstania HBASE , produktu NOSQL , w którym możemy wprowadzać zmiany w danych również po ich jednorazowym zapisaniu.
Ale z czasem zauważyliśmy, że Hadoop miał wiele wad i dlatego stworzyliśmy inne środowisko niż struktura Hadoop. PIG i HIVE to dwa popularne przykłady.
HIVE został stworzony dla osób z doświadczeniem SQL . Zapisane zapytania są podobne do SQL o nazwie HIVEQL . HIVE został opracowany do przetwarzania całkowicie ustrukturyzowanych danych . Nie jest używany do danych nieustrukturyzowanych.
Z drugiej strony PIG ma własny język zapytań, tj. PIG LATIN . Może być stosowany zarówno do danych ustrukturyzowanych, jak i nieustrukturyzowanych .
Przechodząc do różnicy, kiedy używać HIVE, a kiedy PIG, nie sądzę, żeby ktokolwiek inny niż architekt PIG mógł powiedzieć. Kliknij link: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html
źródło
HDFS oznacza rozproszony system plików Hadoop, który korzysta z obliczeniowego modelu przetwarzania Map-Reduce.
HBase to przechowywanie kluczowych wartości, dobre do czytania i pisania w czasie zbliżonym do rzeczywistego.
Hive służy do ekstrakcji danych z HDFS przy użyciu składni podobnej do SQL. Ula używaj języka HQL.
Pig jest językiem przepływu danych do tworzenia ETL. To jest język skryptowy.
źródło
Pozwól, że spróbuję odpowiedzieć w kilku słowach.
Hadoop to ekosystem, który składa się ze wszystkich innych narzędzi. Nie możesz więc porównywać Hadoopa, ale możesz porównać MapReduce.
Oto moje kilka centów:
źródło
Świnia: lepiej jest obsługiwać pliki i czyścić dane przykład: usuwanie wartości zerowych, obsługa ciągów, niepotrzebne wartości Hive: do wysyłania zapytań o oczyszczone dane
źródło
1. Używamy Hadoop do przechowywania dużych danych (tj. Danych dotyczących struktury, unstruktury i semistruktury) w formacie pliku formularza, takiego jak txt, csv.
2.Jeśli chcemy aktualizacji kolumnowych w naszych danych, korzystamy z narzędzia Hbase
3. W przypadku Hive przechowujemy duże dane, które są w ustrukturyzowanym formacie, a ponadto zapewniamy analizę tych danych.
4.Pig to narzędzie, które używa języka łacińskiego Pig do analizy danych w dowolnym formacie (struktura, semistruktura i unstructure).
źródło
Czyszczenie danych w Pig jest bardzo łatwe, odpowiednim podejściem byłoby czyszczenie danych przez świnię, a następnie przetwarzanie danych przez ul, a następnie przesyłanie ich do hdfs.
źródło
Korzystanie z Hive, Hbase i Pig w moim czasie rzeczywistym w różnych projektach.
Ula jest używana głównie do:
Cel analityczny, w którym należy wykonać analizę danych historycznych
Generowanie raportów biznesowych na podstawie określonych kolumn
Wydajne zarządzanie danymi wraz z informacjami o metadanych
Łączenie tabel w niektórych kolumnach, które są często używane przy użyciu koncepcji segmentowania
Wydajne przechowywanie i zapytania przy użyciu koncepcji partycjonowania
Nie nadaje się do operacji na poziomie transakcji / wiersza, takich jak aktualizacja, usuwanie itp.
Świnia jest najczęściej używana do:
Częsta analiza danych na ogromnych danych
Generowanie zagregowanych wartości / liczników na ogromnych danych
Bardzo często generowanie kluczowych wskaźników wydajności na poziomie przedsiębiorstwa
Hbase jest najczęściej używany:
Do przetwarzania danych w czasie rzeczywistym
Do efektywnego zarządzania złożonym i zagnieżdżonym schematem
Do zapytań w czasie rzeczywistym i szybszych wyników
Dla łatwej skalowalności za pomocą kolumn
Przydatny do operacji na poziomie transakcji / wiersza, takich jak aktualizacja, usuwanie itp.
źródło
Krótka odpowiedź na to pytanie brzmi -
Hadoop - Is Framework, który ułatwia rozproszony system plików i model programowania, który pozwala nam przechowywać dane o dużych rozmiarach i przetwarzać je w sposób rozproszony bardzo wydajnie i przy bardzo krótszym czasie przetwarzania w porównaniu do tradycyjnych metod.
(HDFS - rozproszony system plików Hadoop) (Map Reduce - Model programowania do przetwarzania rozproszonego)
Hive - Jest to język zapytań, który pozwala na odczyt / zapis danych z rozproszonego systemu plików Hadoop w bardzo popularnym stylu SQL. Ułatwiło to życie wielu osobom niebędącym programistami, ponieważ nie muszą już pisać programu Map-Reduce, z wyjątkiem bardzo złożonych scenariuszy, w których Hive nie jest obsługiwany.
Hbase - jest kolumnową bazą danych NoSQL. Podstawową warstwą pamięci dla Hbase jest ponownie HDFS. Najważniejszym przykładem użycia tej bazy danych jest możliwość przechowywania miliardów wierszy z milionami kolumn. Funkcja Hbase o niskim opóźnieniu pomaga w szybszym i losowym dostępie do danych w rozproszonych danych, jest bardzo ważna, aby była przydatna w przypadku złożonych projektów, takich jak silniki rekomendujące. Również możliwość wersjonowania na poziomie rekordów pozwala użytkownikowi bardzo skutecznie przechowywać dane transakcyjne (rozwiązuje to problem aktualizacji rekordów, które mamy w HDFS i Hive)
Mam nadzieję, że jest to pomocne, aby szybko zrozumieć powyższe 3 funkcje.
źródło
Uważam, że ten wątek nie oddał szczególnie sprawiedliwości w szczególności HBase i Pig. Chociaż uważam, że Hadoop jest wyborem rozproszonego, odpornego systemu plików do implementacji dużych zbiorów danych, wybór między HBase a Hive jest szczególnie dobrze podzielony.
Podobnie jak w wielu przypadkach użycia szczególne wymagania dotyczą interfejsów podobnych do SQL lub podobnych do SQL. Z Phoenix na szczycie HBase, chociaż z pewnością można osiągnąć funkcje podobne do SQL, jednak wydajność, integracje z firmami trzecimi i aktualizacja deski rozdzielczej są rodzajem bolesnych doświadczeń. Jest to jednak doskonały wybór dla baz danych wymagających skalowania poziomego.
Świnia jest szczególnie doskonała do nierekurencyjnych partii takich jak obliczenia lub potokowanie ETL (gdzieś, gdzie przewyższa Iskrę o dogodną odległość). Ponadto, implementacje przepływu danych na wysokim poziomie są doskonałym wyborem do wykonywania zapytań wsadowych i skryptów. Wybór między Pig i Hive zależy również od potrzeby skryptów po stronie klienta lub serwera, wymaganych formatów plików itp. Pig obsługuje format plików Avro, co nie jest prawdą w przypadku Hive. Wybór „proceduralnego języka przepływu danych” zamiast „deklaratywnego języka przepływu danych” jest również silnym argumentem za wyborem między świnią a ulem.
źródło