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.
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ć.
|
...
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:
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.
Proszę nie wstawiać odnośników do innych części podręcznika jako linki zewnętrzne!
Przy wstawianiu linków do konkretnych sekcji (akapitów) na wybranej stronie, np. Certyfikaty Simple CA ="Aplikowanie, rejestracja i użycie certyfikatu#Certyfikaty Simple CA", należy nazwę strony wraz z tytułem sekcji, rozdzielone znakiem #, podać w opcji Advanced w okienku link. Przy wstawianiu nazwy stron istotne jest zachowanie znaków spacji pomiędzy wyrazami oraz braków spacji pomiędzy #.
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 |
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ę.
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).
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
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)
...
Dokumentacja Hadoop oraz Spark w Cyfronet
Oficjalny Spark Programming Guide
Info |
---|
Można też dodać sekcję "Co dalej?" ze wskazaniem (odnośnikiem) do dalszej części dokumentacji, o ile jest wymagana. |
...