Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Krótki opis usługi

Moduł umożliwia korzystanie z najpopularniejszych narzędzi przetwarzania danych typu BigData uruchamianych na zasobach Infrastruktury PLGrid. Obecnie moduł jest dostępna na klastrze Zeus i Prometeusz, gdzie można prowadzić obliczenia wielowęzłowe z wykorzystaniem systemów Spark lub Hadoop. W celu efektywnego używania oprogramowania Spark i Hadoop zalecamy zapoznanie się z Spark Programming Guide.

Aktywowanie usługi

Dostępne w ramach modułu plgrid/apps/spark

Info

Poniższy szablon należy skopiować dla każdej nowej wdrażanej usługi (Menu: Tools po prawej stronie, potem Copy) i odpowiednio uzupełnić.

  • Układ należy zachować (z dopuszczeniem minimalnych modyfikacji).
  • Opis nie powinien przekraczać 10 stron przeciętnego ekranu laptopa.
  • W razie potrzeby należy założyć podstrony (na końcu z rozdziałem "Co dalej?" i odnośnikiem do kolejnego rozdziału dokumentacji).
  • Język opisu - polski. W sytuacji, gdy zasadnicza dokumentacja usługi ma być po angielsku, w tym rozdziale powinny znaleźć się podstawowe informacje pozwalające zorientować się w zaletach usługi i zgrubnie w wymaganych krokach do jej uruchomienia.
  • Uprawnienia do odczytu strony (Tools/Restrictions) powinny być ustawione na "Confluence-users" w trakcie pisania dokumentacji, inaczej będzie widoczna od razu dla osób niezalogowanych.
  • Pytania dotyczące systemu dokumentacji: Hubert Siejkowski,
  • Pytania dotyczące Podręcznika Użytkownika: Unknown User (plgfilocha).

...

Wstawianie odnośników do innych stron podręcznika

Przy wstawianiu linków do stron wewnętrznych Podręcznika użytkownika (np. certyfikat="Aplikowanie, rejestracja i użycie certyfikatu"' założenie konta="Zakładanie konta w portalu"; Pomoc="Gdzie szukać pomocy") należy w trybie edycji strony:

  • wpisać tekst, pod który będzie podpięty link
  • zaznaczyć tekst
  • wstawić link (Ctrl+K lub ikona Link na pasku narzędzi)
  • wybrać opcję Search z lewej strony okna Insert Link
  • w pasku po prawej wpisać tytuł strony (lub zacząć wpisywać tytuł i wybrać właściwą stronę z pojawiających się podpowiedzi)
  • zatwierdzić wybraną stronę opcją Insert w prawym dolnym rogu

Efekt powyższego opisu można zobaczyć klikając lewym klawiszem myszki (w trybie edycji strony) na dowolny link w tym oknie informacji. Pojawi się pole, w którym do wyboru będzie opcja Edit, którą klikamy. Pojawi się okno Edit link, z aktywnym polem Search i nazwą strony wewnętrznej podręcznika.

LINKI ZEWNĘTRZNE

Linki zewnętrzne np. do strony PL-Grid wstawiamy w oknie Insert Link (Ctrl+K) w opcji Web Link.

Info
Pomoc w pisaniu stron w Confluence: https://confluence.atlassian.com/display/DOC/Using+the+Editor

 

Krótki opis usługi

Usługa jest przeznaczona dla użytkowników infrastruktury komputerowej w ACK CYFRONET, którzy chcą korzystać z aktualnie najpopularniejszych narzędzi BigData do przetwarzania danych. Na klastrze Zeus możemy prowadzić obliczenia z wykorzystaniem systemów Spark lub Hadoop wykorzystując wielowęzłową architekturę.

Aktywowanie usługi

Aby uzyskać dostęp do usługi należy w pierwszej kolejności posiadać dostęp do UI klastra Zeus. Następnie, zapisać się do grupy plgg-spark (Zespoły użytkowników).

Ograniczenia w korzystaniu (podsekcja opcjonalna)

  1. Instalacja w ACK CYFRONET nie udostępnia systemu plików HDFS, z tego powodu korzystanie z komend 'hdfs' oraz 'hadoop fs/dfs' jest niemożliwe.
  2. Na wybranym węźle może być uruchomiony tylko jeden Master program w tym samym czasie. W przypadku próby uruchomienia kolejnego klastra BigData na tym samym węźle, zostanie wyświetlony komunikat, aby spróbować na innym węźle.

Pierwsze kroki

Uruchomienie zadania Spark wykorzystującego 36 rdzeni na 3 węzłach 4 rdzenie na 1 węźle w trybie klastra Spark (Spark Standalone cluster in client deploy mode):

$ qsub -l nodes=3:ppn=12 -I$ > module load testsrun -N1 --ntasks-per-node=4 --pty /bin/bash


Wykorzystanie zostanie zaliczone na konto grantu osobistego PLGrid. W przypadku potrzeby podania innego grantu należy wykorzystać opcję -A specyfikując identyfikator aktywnego grantu PLGrid:

$ module load plgrid/apps/spark

$ > start-multinode-_spark-cluster.sh_cluster


Obliczenia:

$

...

 $SPARK_HOME/bin/spark-submit $SPARK_HOME/examples/src/main/python/wordcount.py /etc/passwd

Zatrzymywanie klastra:

$ > stop-multinode-_spark-_cluster.sh

Zaawansowane użycie

Przykłady działań na RDD w języku Python

Przykład 1:

rdd = sc.parallelize([1, 2, 3, 4])

rdd.map(lambda x: 2 * x).cache().map(lambda x: 2 * x).collect()

>>> [4, 8, 12, 16]

Opis:

parallelize() - tworzy obiekt RDD ze zbioru

map() - transformacja RDD, operuje funkcją lambda na wszystkich elementach RDD.

cache() - zachowuje w pamięci wybrany obiekt RDD. Metodę cache() wykorzystuje się, gdy chcemy użyć wybranego RDD więcej niż raz np. w algorytmach iteratywnych jak PageRank. Jeśli w takim wypadku nie zrobimy cache() to RDD będzie wyliczone za każdym razem od nowa. Możemy również użyć podobnej metody persist().

collect() - akcja RDD zwracająca pythonową listę elementów RDD

Przykład 2:

from operator import add

rdd.map(lambda x: 2 * x).reduce(add)

>>> 20

rdd.flatMap(lambda x: [x, x]).reduce(add)

>>> 20

Opis:

reduce() - akcja na RDD agregująca elementy obiektu RDD za pomocą funkcji lambda która ma przyjmować dwa argumenty i zwracać jeden wynik. reduce() zwróci ostatecznie jedną wartość. Działanie reduce() dobrze demeonstruje przykład wyszukiwania największej liczby w całej kolekcji: reduce(lambda a, b: a if (a > b) else b)

flatMap() dokonuje Transformacji na RDD. Stosuje funkcję lambda do wszystkich elementów RDD i zwraca ‘płaski’ wynik typu lista RDDs  (bez zagnieżdżonych struktur), czyli elementów wyjściowych może być więcej niż wejściowych, co odróżnia działanie od map().

Uwagi

  1. Instalacja w ACK CYFRONET nie udostępnia systemu plików HDFS, z tego powodu korzystanie z komend 'hdfs' oraz 'hadoop fs/dfs' jest niemożliwe.
  2. Na wybranym węźle może być uruchomiony tylko jeden Master program w tym samym czasie. W przypadku próby uruchomienia kolejnego klastra BigData na tym samym węźle, zostanie wyświetlony komunikat, aby spróbować na innym węźle.

Zaawansowane użycie

Dokumentacja Hadoop oraz Spark w Cyfronet

Gdzie szukać dalszych informacji?

Oficjalny Spark Programming Guide

...