Versions Compared

Key

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

...

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

 

Krótki opis usługi

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ę.

Aktywowanie usługi

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).

Ograniczenia w korzystaniu (podsekcja opcjonalna)

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ąć.

Pierwsze kroki

Koniecznie z przykładowymi zrzutami ekranu lub fragmentami kodu.

Zaawansowane użycie

...

  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 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

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().

Gdzie szukać dalszych informacji?

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