You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

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.

 

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



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?

Oficjalny Spark Programming Guide

Dokumentacja Hadoop oraz Spark w Cyfronet

 

Można też dodać sekcję "Co dalej?" ze wskazaniem (odnośnikiem) do dalszej części dokumentacji, o ile jest wymagana.
  • No labels