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.
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 4 rdzenie na 1 węźle w trybie klastra Spark (Spark Standalone cluster in client deploy mode)
$ qsub -l nodes=1:ppn=4 -I
$ > module load test/spark
$ > start-multinode-spark-cluster.sh
$ > $SPARK_HOME/bin/spark-submit $SPARK_HOME/examples/src/main/python/wordcount.py /etc/passwd
$ > stop-multinode-spark-cluster.sh
Podgląd uruchomionego klastra Spark oraz przetwarzanych na nim zadań dostępny jest przez przeglądarkę (na Zeus to aktualnie arora) na porcie 8080 węzła master.
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().
Oficjalny Spark Programming Guide
Dokumentacja Hadoop oraz Spark w Cyfronet