Kiedy stosować Hadoop, HBase, Hive i Pig?

185

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 .

Khalefa
źródło
Hadoop : rozproszony system plików Hadoop + model przetwarzania obliczeniowego MapReduce. HBase : Przechowywanie kluczowych wartości, dobre do czytania i pisania w czasie zbliżonym do rzeczywistego. Hive : Używany do ekstrakcji danych z HDFS przy użyciu składni podobnej do SQL. Pig : to język przepływu danych do tworzenia ETL.
dbustosp

Odpowiedzi:

348

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

Tariq
źródło
Zapomniałeś mówić o yarnekosystemie Hadoop :(.
Kenry Sanchez
53

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

  1. Aby codzienne pliki dziennika sieciowego były zbierane z ponad 350 serwerów codziennie, można je przesyłać do zapytań w języku SQL
  2. Aby zastąpić codzienne dane agregowane generowane przez MySQL przez Hive
  3. Twórz raporty niestandardowe poprzez zapytania w gałęzi

Opcje architektury

Testowałem następujące opcje:

  1. Hive + HDFS
  2. Hive + HBase - zapytania były zbyt wolne, więc zrzuciłem tę opcję

Projekt

  1. Codzienne pliki dziennika były transportowane do HDFS
  2. Zadania MR analizowały te pliki dziennika i pliki wyjściowe w HDFS
  3. Twórz tabele gałęzi z partycjami i lokalizacjami wskazującymi lokalizacje HDFS
  4. Twórz skrypty zapytań Hive (nazywaj to HQL, jeśli chcesz inaczej niż SQL ), które z kolei uruchamiały zadania MR w tle i generowały dane agregacyjne
  5. Umieść wszystkie te kroki w przepływie pracy Oozie - zgodnie z harmonogramem Daily Oozie Coordinator

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

Sanjay Subramanian
źródło
1
HBase to baza danych NonSQL, która przechowuje dane w HDFS. Jest używany, gdy potrzebujesz losowego dostępu do odczytu / zapisu w czasie rzeczywistym do swoich dużych danych.
Root Loop,
28

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.

  1. Hadoop Common : wspólne narzędzia obsługujące inne moduły Hadoop.

  2. Hadoop Distributed File System ( HDFS ™ ): Rozproszony system plików, który zapewnia wysokoprzepustowy dostęp do danych aplikacji.

  3. Hadoop YARN : Framework do planowania zadań i zarządzania zasobami klastra.

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

Ravindra babu
źródło
Facebook nie używa już HBase typu open source do systemów wiadomości w czasie rzeczywistym. Zastąpili go wewnętrzną bazą danych [Myrocks]. ( engineering.fb.com/core-data/… )
PPK
23

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.

David Gruzman
źródło
W rzeczywistości możesz zbudować Hive na HBase, abyś mógł używać HQL do pełnego skanowania hbase, jednocześnie będąc w stanie wykonać indeksowane zapytanie bezpośrednio na hbase. Ale wątpię, aby to zapewniło wolniejszą wydajność podczas pełnego skanowania.
FrostNovaZzz
HBase jest systemem zorientowanym na zapis, nie jest optymalny podczas skanowania, chociaż dane są przechowywane sortowane. Podczas gdy skanowanie niektórych zakresów może być dobrym wyborem, pełne skanowanie będzie znacznie wolniejsze niż bezpośrednio z HDFS
David Gruzman
5

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.

Shazin
źródło
5

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.

akshat thakar
źródło
5

Zrozumienie dogłębnie

Hadoop

Hadoopjest projektem Apachefundacji typu open source . Jest to framework napisany w Java, pierwotnie opracowany przez Douga Cuttinga w 2005 roku. Został stworzony w celu obsługi dystrybucji dla Nutchwyszukiwarki tekstów. Hadoopwykorzystuje technologie Google Map Reducei Google File System jako podstawę.

Funkcje Hadoop

  1. Jest zoptymalizowany do obsługi ogromnych ilości ustrukturyzowanych, częściowo ustrukturyzowanych i nieustrukturyzowanych danych przy użyciu sprzętu towarowego.
  2. Nie ma nic wspólnego z architekturą.
  3. Replikuje swoje dane na wielu komputerach, więc jeśli jeden z nich ulegnie awarii, dane mogą być przetwarzane z innego komputera, na którym przechowywana jest jego replika.
  4. Hadoopsł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.
  5. Uzupełnia przetwarzanie transakcji online i przetwarzanie analityczne online. Jednak nie zastępuje on RDBMS.
  6. Nie jest dobrze, gdy praca nie może być zrównoleglona lub gdy w danych występują zależności.
  7. Nie nadaje się do przetwarzania małych plików. Działa najlepiej z dużymi plikami danych i zestawami danych.

Wersje Hadoop

Dostępne są dwie wersje Hadoop:

  1. Hadoop 1.0
  2. Hadoop 2.0

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 schematu

Po 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: MAPi REDUCEdo 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

  1. Pierwszym ograniczeniem był wymóg MapReduceznajomości programowania.

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

  3. Jednym z głównych ograniczeń było Hadoop 1.0ścisłe powiązanie obliczeniowe MapReduce, co oznaczało, że uznani dostawcy zarządzania danymi pozostawili dwie opinie:

    1. Albo przepisz ich funkcjonalność, MapReduceaby można je było wykonać w Hadooplub

    2. Wyodrębnij dane HDFSlub przetwarzaj je poza Hadoop.

Żadna z opcji nie była wykonalna, ponieważ doprowadziła do nieefektywności procesu spowodowanej przenoszeniem danych do i z Hadoopklastra.

Hadoop 2.0

W Hadoop 2.0, HDFSnadal 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. MapReducenie jest już jedyną opcją przetwarzania danych.

Zalety Hadoop

Przechowuje dane w swojej natywnej postaci. Nie ma narzuconej struktury podczas wprowadzania danych lub przechowywania danych. HDFSjest mniej schematu. Dopiero później, gdy dane muszą zostać przetworzone, struktura zostaje nałożona na surowe dane.

Jest skalowalny. Hadoopmoże przechowywać i rozpowszechniać bardzo duże zbiory danych na setkach niedrogich serwerów, które działają równolegle.

Jest odporny na awarie. Hadoopto 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 Hadoopjest to, że może pracować z dowolnym rodzajem danych: ustrukturyzowanym, nieustrukturyzowanym lub częściowo ustrukturyzowanym. Ponadto przetwarzanie jest niezwykle szybkie Hadoopze względu na paradygmat „przenieś kod do danych”.

Ekosystem Hadoop

Oto elementy Hadoopekosystemu:

HDFS : HadoopRozproszony 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ą SQLpowinna mieć dostęp do danych w Hadoopklastrze.

Ś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. PigSkrypty są automatycznie konwertowane na MapReducezadania przez Pigtłumacza.

ZooKeeper : Jest to usługa koordynująca aplikacje rozproszone.

Oozie : Jest to schedularsystem przepływu pracy do zarządzania Hadoopzadaniami 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 Hadoopustrukturyzowanymi magazynami danych, takimi jak relacyjne bazy danych.

Ambari : Jest to internetowe narzędzie do udostępniania, zarządzania i monitorowania Hadoopklastrów.

Ul

Hivejest narzędziem infrastruktury hurtowni danych do przetwarzania danych strukturalnych Hadoop. Opiera się on Hadoopna podsumowaniu Big Data i ułatwia wyszukiwanie i analizę zapytań.

Rój nie jest

  1. Relacyjna baza danych

  2. Projekt do przetwarzania transakcji online ( OLTP).

  3. Język zapytań w czasie rzeczywistym i aktualizacji na poziomie wiersza.

Funkcje ula

  1. Przechowuje schemat w bazie danych i przetwarza dane w HDFS.

  2. Jest przeznaczony do OLAP.

  3. Zapewnia SQLjęzyk typów dla zapytań o nazwie HiveQLlub HQL.

  4. Jest bardziej rodzinny, szybki, skalowalny i rozszerzalny.

Architektura ula

Architektura Hive zawiera następujące komponenty:

  1. Interfejs użytkownika : Hivejest data warehouseinfrastrukturą, która może tworzyć interakcje między użytkownikiem a HDFS. Obsługiwane interfejsy użytkownika Hiveto Hive Web UI, Hive Command Line i Hive HD Insight (w systemie Windows Server).

  2. MetaStore : Hivewybiera odpowiedni database serversdo przechowywania schematu lub Metadatatabel, baz danych, kolumn w tabeli, ich typów danych i HDFSmapowania.

  3. HiveQL Process Engine : HiveQLjest podobny do SQLzapytania o informacje o schemacie w Metastore. Jest to jeden z zamienników tradycyjnego podejścia do MapReduceprogramu. Zamiast pisać MapReducew Java, możemy napisać zapytanie do MapReducei przetwarza je.

  4. Exceution Silnik : Część koniunkcja HiveQLsilniku procesowym i MapReducejest HiveExecution Engine. Silnik wykonawczy przetwarza zapytanie i generuje wyniki tak samo jak MapReduce results. Wykorzystuje smak MapReduce.

  5. HDFS lub HBase : Hadooprozproszony system plików lub HBasetechniki przechowywania danych służące do przechowywania danych w systemie plików.

Pankti
źródło
1

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:

  1. Dane strukturalne : są to dane, które wykorzystaliśmy w tradycyjnym RDBMS i są podzielone na dobrze zdefiniowane struktury.

  2. 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
1

Hadoop:

HDFS oznacza rozproszony system plików Hadoop, który korzysta z obliczeniowego modelu przetwarzania Map-Reduce.

HBase:

HBase to przechowywanie kluczowych wartości, dobre do czytania i pisania w czasie zbliżonym do rzeczywistego.

Ul:

Hive służy do ekstrakcji danych z HDFS przy użyciu składni podobnej do SQL. Ula używaj języka HQL.

Świnia:

Pig jest językiem przepływu danych do tworzenia ETL. To jest język skryptowy.

nixxo_raa
źródło
0

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:

  1. Hive: Jeśli twoja potrzeba jest bardzo SQLish, co oznacza, że ​​twoja instrukcja problemu może być zaspokojona przez SQL, wtedy najłatwiej jest użyć Hive. Innym przypadkiem, w którym chcesz użyć gałęzi, jest to, że chcesz, aby serwer miał określoną strukturę danych.
  2. Świnia: Jeśli czujesz się swobodnie z Pig Latin i potrzebujesz więcej rurociągów danych. Ponadto w twoich danych brakuje struktury. W takich przypadkach możesz użyć Pig. Szczerze mówiąc, nie ma dużej różnicy między Hive & Pig w odniesieniu do przypadków użycia.
  3. MapReduce: Jeśli problemu nie da się rozwiązać za pomocą SQL prosto, najpierw spróbuj utworzyć UDF dla Hive & Pig, a następnie, jeśli UDF nie rozwiązuje problemu, wykonanie go za pomocą MapReduce ma sens.
Sandeep Giri
źródło
0

Ś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

y durga prasad
źródło
0

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

swaroop
źródło
0

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.

Akshay Sharma
źródło
0

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.

użytkownik1326784
źródło
0

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.

Ajay Ahuja
źródło
0

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