Dom Trendy Krótkie wprowadzenie do apache hive i świni

Krótkie wprowadzenie do apache hive i świni

Anonim

Apache Hive to platforma oparta na Hadoop do wykonywania zapytań ad hoc na danych w Hadoop. Hive obsługuje HiveQL, który jest podobny do SQL, ale nie obsługuje pełnych konstrukcji SQL.


Hive obejmuje zapytanie HiveQL w programie Java MapReduce, a następnie przesyła je do klastra Hadoop. Ten sam wynik można osiągnąć za pomocą HiveQL i Java MapReduce, ale użycie Java MapReduce będzie wymagało dużo kodu do napisania / debugowania w porównaniu do HiveQL. HiveQL zwiększa produktywność programistów.


Podsumowując, Hive za pośrednictwem języka HiveQL zapewnia abstrakcję wyższego poziomu w porównaniu z programowaniem Java MapReduce. Podobnie jak w przypadku każdej innej abstrakcji wysokiego poziomu, użycie HiveQL w porównaniu do Java MapReduce jest nieco obciążone wydajnością, ale społeczność Hive pracuje nad zmniejszeniem tej luki w większości często używanych scenariuszy.


W tym samym wierszu Pig zapewnia abstrakcję wyższego poziomu niż MapReduce. Pig obsługuje konstrukcje PigLatin, które są konwertowane na program Java MapReduce, a następnie przesyłane do klastra Hadoop.



Podczas gdy HiveQL jest językiem deklaratywnym jak SQL, PigLatin jest językiem przepływu danych. Dane wyjściowe jednego konstruktu PigLatin można wysłać jako dane wejściowe do innego konstruktu PigLatin i tak dalej.


Jakiś czas temu Cloudera opublikowała statystyki dotyczące charakteru obciążenia w typowym klastrze Hadoop i można łatwo zauważyć, że zadania Pig i Hive stanowią znaczną część zadań w klastrze Hadoop. Ze względu na wyższą produktywność programistów wiele firm decyduje się na abstrakty wyższego poziomu, takie jak Pig i Hive. Możemy więc założyć się, że będzie wiele ofert pracy w Hive i Pig w porównaniu do rozwoju MapReduce.



Chociaż książka Programming Pig została opublikowana w październiku 2011 roku, książka Programming Hive została opublikowana niedawno, w październiku 2012 roku. Dla tych, którzy mają doświadczenie w pracy z RDBMS, rozpoczęcie pracy z Hive byłoby lepszą opcją niż rozpoczęcie korzystania ze Pig. Należy również pamiętać, że język PigLatin nie jest bardzo trudny do rozpoczęcia.


W przypadku bazowego klastra Hadoop nie jest jasne, czy zadanie Java MapReduce zostało przesłane, czy zadanie MapReduce zostało przesłane za pośrednictwem Hive i Pig. Ze względu na charakter zadań MapReduce zorientowanych na partie, zadania przesłane przez Hive i Pig są również z natury zorientowane na partie.


Jeśli chodzi o wymagania dotyczące odpowiedzi w czasie rzeczywistym, Hive i Pig nie spełniają tych wymagań ze względu na wcześniej wspomniany charakter zadań MapReduce zorientowanych na partię. Cloudera opracował Impalę, opartą na Dremel (publikacja od Google) do interaktywnych zapytań ad-hoc na platformie Hadoop. Impala obsługuje zapytania podobne do SQL i jest kompatybilna z HiveQL. Tak więc wszelkie aplikacje zbudowane na Hive powinny działać z minimalnymi zmianami w Impala. Główną różnicą między Hive i Impala jest to, że podczas gdy HiveQL jest konwertowany na zadania Java MapReduce, Impala nie ukrywa zapytania SQL w zadaniach Java MapReduce.


Czy powinieneś wybrać Pig lub Hive, aby spełnić określone wymagania? To temat na inny blog.


Opublikowane za zgodą Praveen Sripati. Oryginalny artykuł można znaleźć tutaj: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

Krótkie wprowadzenie do apache hive i świni