Udostępnij za pośrednictwem


Optymalizowanie oprogramowania Apache Pig przy użyciu narzędzia Apache Ambari w usłudze Azure HDInsight

Apache Ambari to interfejs internetowy do zarządzania klastrami usługi HDInsight i monitorowania ich. Aby zapoznać się z wprowadzeniem do internetowego interfejsu użytkownika systemu Ambari, zobacz Manage HDInsight clusters by using the Apache Ambari Web UI (Zarządzanie klastrami usługi HDInsight przy użyciu internetowego interfejsu użytkownika systemu Apache Ambari).

Właściwości platformy Apache Pig można modyfikować z internetowego interfejsu użytkownika systemu Ambari w celu dostrajania zapytań pig. Modyfikowanie właściwości pig z systemu Ambari bezpośrednio modyfikuje właściwości pig w /etc/pig/2.4.2.0-258.0/pig.properties pliku.

  1. Aby zmodyfikować właściwości pig, przejdź do karty Konfiguracja pig, a następnie rozwiń okienko Zaawansowane właściwości pig-properties.

  2. Znajdź, usuń komentarz i zmień wartość właściwości, którą chcesz zmodyfikować.

  3. Wybierz pozycję Zapisz w prawym górnym rogu okna, aby zapisać nową wartość. Niektóre właściwości mogą wymagać ponownego uruchomienia usługi.

    Advanced Apache pig properties.

Uwaga

Wszystkie ustawienia na poziomie sesji zastępują wartości właściwości w pig.properties pliku.

Dostrajanie aparatu wykonywania

Dostępne są dwa aparaty wykonywania skryptów Pig: MapReduce i Tez. Tez jest zoptymalizowanym aparatem i jest znacznie szybszy niż MapReduce.

  1. Aby zmodyfikować aparat wykonywania, w okienku Zaawansowane właściwości pig-properties znajdź właściwość exectype.

  2. Wartość domyślna to MapReduce. Zmień ją na Tez.

Włączanie trybu lokalnego

Podobnie jak w przypadku programu Hive, tryb lokalny służy do przyspieszania zadań ze stosunkowo mniejszymi ilościami danych.

  1. Aby włączyć tryb lokalny, ustaw wartość pig.auto.local.enabled true. Wartość domyślna to false.

  2. Zadania o rozmiarze danych wejściowych mniejsze niż pig.auto.local.input.maxbytes wartość właściwości są uważane za małe zadania. Wartość domyślna to 1 GB.

Kopiowanie pamięci podręcznej jar użytkownika

Pig kopiuje pliki JAR wymagane przez funkcje zdefiniowane przez użytkownika do rozproszonej pamięci podręcznej, aby udostępnić je węzłom zadań. Te pliki jar nie zmieniają się często. Jeśli to ustawienie jest włączone, pig.user.cache.enabled ustawienie umożliwia umieszczanie plików jar w pamięci podręcznej w celu ponownego użycia ich w przypadku zadań uruchamianych przez tego samego użytkownika. To ustawienie powoduje niewielki wzrost wydajności zadania.

  1. Aby włączyć, ustaw wartość pig.user.cache.enabled true. Wartością domyślną jest false.

  2. Aby ustawić ścieżkę podstawową buforowanych plików jar, ustaw pig.user.cache.location ścieżkę podstawową. Wartość domyślna to /tmp.

Optymalizowanie wydajności przy użyciu ustawień pamięci

Następujące ustawienia pamięci mogą pomóc w optymalizacji wydajności skryptów Pig.

  • pig.cachedbag.memusage: ilość pamięci podanej w torbie. Torba jest kolekcją krotki. Krotka jest uporządkowanym zestawem pól, a pole jest fragmentem danych. Jeśli dane w torbie wykraczają poza daną pamięć, są rozlane na dysk. Wartość domyślna to 0,2, która reprezentuje 20 procent dostępnej pamięci. Ta pamięć jest współdzielona we wszystkich torbach w aplikacji.

  • pig.spill.size.threshold: Torby większe niż ten próg rozmiaru rozlania (w bajtach) są rozlane na dysk. Wartość domyślna to 5 MB.

Kompresowanie plików tymczasowych

Program Pig generuje pliki tymczasowe podczas wykonywania zadania. Kompresowanie plików tymczasowych powoduje wzrost wydajności podczas odczytywania lub zapisywania plików na dysku. Następujące ustawienia mogą służyć do kompresowania plików tymczasowych.

  • pig.tmpfilecompression: Jeśli wartość true, włącza kompresję plików tymczasowych. Wartość domyślna to false.

  • pig.tmpfilecompression.codec: koder kodujący kompresji używany do kompresowania plików tymczasowych. Zalecane kodery kompresji to LZO i Snappy w celu niższego użycia procesora.

Włączanie łączenia podziału

Po włączeniu małe pliki są łączone dla mniejszej liczby zadań mapy. To ustawienie zwiększa wydajność zadań z wieloma małymi plikami. Aby włączyć, ustaw wartość pig.noSplitCombination true. Wartość domyślna to false.

Dostrajanie maperów

Liczba maperów jest kontrolowana przez zmodyfikowanie właściwości pig.maxCombinedSplitSize. Ta właściwość określa rozmiar danych, które mają być przetwarzane przez jedno zadanie mapy. Wartość domyślna to domyślny rozmiar bloku systemu plików. Zwiększenie tej wartości powoduje zmniejszenie liczby zadań mapowania.

Reduktory dostrajania

Liczba reduktorów jest obliczana na podstawie parametru pig.exec.reducers.bytes.per.reducer. Parametr określa liczbę bajtów przetworzonych na reduktor, domyślnie 1 GB. Aby ograniczyć maksymalną liczbę reduktorów, ustaw pig.exec.reducers.max właściwość domyślnie 999.

Następne kroki