...
Info |
---|
Pomoc w pisaniu stron w Confluence: https://confluence.atlassian.com/display/DOC/Using+the+Editor |
Dla kogo Usługa jest przeznaczona , jakie najważniejsze możliwości oferuje?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ę.
Co należy aktywować, aby móc skorzystać z usługi? (Założenie konta, certyfikat, grant?, aktywacja konkretnych usług w portalu). Należy pamiętać o istnieniu rozdziałów ogólnych podręcznika, do których warto się odwołać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).
Tutaj wpisujemy specjalne zasady korzystania z usługi jeśli takowe są np. konieczność ustawienia grantu domyślnego, zakaz uruchamiania intensywnych zadań na UI itp. Jeśli takowych nie ma to należy tę podsekcję usunąć.
Koniecznie z przykładowymi zrzutami ekranu lub fragmentami kodu.
...
Uruchomienie zadania Spark wykorzystującego 36 rdzeni na 3 węzłach w trybie klastra Spark (Spark Standalone cluster in client deploy mode)
$ qsub -l nodes=3:ppn=12 -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
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().
Strony zewnętrzne (jeśli są), odnośnik do helpdesku lub strony dokumentacji o pomocy.Spark Programming Guide
Info |
---|
Można też dodać sekcję "Co dalej?" ze wskazaniem (odnośnikiem) do dalszej części dokumentacji, o ile jest wymagana. |
hadoop fs