Korzystanie z oprogramowania Apache Pig z usługą Apache Hadoop w usłudze HDInsight
Dowiedz się, jak używać oprogramowania Apache Pig z usługą HDInsight.
Apache Pig to platforma do tworzenia programów dla platformy Apache Hadoop przy użyciu języka proceduralnego znanego jako Pig Latin. Język Pig jest alternatywą dla języka Java do tworzenia rozwiązań MapReduce i jest dołączony do usługi Azure HDInsight. Poniższa tabela zawiera informacje na temat różnych sposobów używania języka Pig w usłudze HDInsight:
Dlaczego warto używać platformy Apache Pig
Jednym z wyzwań związanych z przetwarzaniem danych przy użyciu usługi MapReduce w usłudze Hadoop jest zaimplementowanie logiki przetwarzania przy użyciu tylko mapy i funkcji redukcji. W przypadku złożonego przetwarzania często trzeba podzielić przetwarzanie na wiele operacji MapReduce, które są połączone w łańcuch, aby osiągnąć pożądany wynik.
Pig umożliwia zdefiniowanie przetwarzania jako serii przekształceń przepływanych przez dane w celu wygenerowania żądanych danych wyjściowych.
Język Pig Latin umożliwia opisywanie przepływu danych z nieprzetworzonych danych wejściowych przez co najmniej jedną transformację w celu wygenerowania żądanych danych wyjściowych. Programy pig latynoskie są zgodne z tym ogólnym wzorcem:
Ładowanie: odczyt danych, które mają być manipulowane z systemu plików.
Przekształcanie: manipulowanie danymi.
Zrzut lub przechowywanie: dane wyjściowe na ekranie lub przechowują je do przetworzenia.
Funkcje zdefiniowane przez użytkownika
Język Pig Latin obsługuje również funkcje zdefiniowane przez użytkownika (UDF), które umożliwiają wywoływanie składników zewnętrznych implementujących logikę, która jest trudna do modelowania w języku Pig Latin.
Aby uzyskać więcej informacji na temat języka Pig Latin, zobacz Pig Latin Reference Manual 1 i Pig Latin Reference Manual 2.
Przykładowe dane
Usługa HDInsight udostępnia różne przykładowe zestawy danych, które są przechowywane w /example/data
katalogach i /HdiSamples
. Te katalogi znajdują się w domyślnym magazynie klastra. Przykład pig w tym dokumencie używa pliku Log4j z /example/data/sample.log
pliku .
Każdy dziennik wewnątrz pliku składa się z wiersza pól, który zawiera [LOG LEVEL]
pole, aby wyświetlić typ i ważność, na przykład:
2012-02-03 20:26:41 SampleClass3 [ERROR] verbose detail for id 1527353937
W poprzednim przykładzie poziom dziennika to BŁĄD.
Uwaga
Możesz również wygenerować plik log4j przy użyciu narzędzia rejestrowania Apache Log4j , a następnie przekazać ten plik do obiektu blob. Aby uzyskać instrukcje, zobacz Przekazywanie danych do usługi HDInsight . Aby uzyskać więcej informacji na temat sposobu używania obiektów blob w usłudze Azure Storage z usługą HDInsight, zobacz Use Azure Blob Storage with HDInsight (Korzystanie z usługi Azure Blob Storage w usłudze HDInsight).
Przykładowe zadanie
Następujące zadanie Pig Latin ładuje sample.log
plik z domyślnego magazynu dla klastra usługi HDInsight. Następnie wykonuje serię przekształceń, które powodują liczbę wystąpień każdego poziomu dziennika w danych wejściowych. Wyniki są zapisywane w funkcji STDOUT.
LOGS = LOAD 'wasb:///example/data/sample.log';
LEVELS = foreach LOGS generate REGEX_EXTRACT($0, '(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)', 1) as LOGLEVEL;
FILTEREDLEVELS = FILTER LEVELS by LOGLEVEL is not null;
GROUPEDLEVELS = GROUP FILTEREDLEVELS by LOGLEVEL;
FREQUENCIES = foreach GROUPEDLEVELS generate group as LOGLEVEL, COUNT(FILTEREDLEVELS.LOGLEVEL) as COUNT;
RESULT = order FREQUENCIES by COUNT desc;
DUMP RESULT;
Na poniższej ilustracji przedstawiono podsumowanie działań każdej transformacji danych.
Uruchamianie zadania Pig Latin
Usługa HDInsight może uruchamiać zadania Pig Latin przy użyciu różnych metod. Skorzystaj z poniższej tabeli, aby zdecydować, która metoda jest odpowiednia dla Ciebie, a następnie postępuj zgodnie z linkiem do przewodnika.
Pig i SQL Server Integration Services
Do uruchamiania zadania pig można użyć usług SQL Server Integration Services (SSIS). Pakiet Azure Feature Pack dla usług SSIS udostępnia następujące składniki, które współpracują z zadaniami Pig w usłudze HDInsight.
Dowiedz się więcej o pakiecie Azure Feature Pack dla usług SSIS tutaj.
Następne kroki
Teraz, gdy wiesz już, jak używać języka Pig z usługą HDInsight, skorzystaj z poniższych linków, aby zapoznać się z innymi sposobami pracy z usługą Azure HDInsight.