Cvičenie 6 - Úvod do distribuovaného prostredia Apache Spark

Inštalácia pre Linux

Pri inštalácii na spoločný server postupujte spolu v dvojiciach.

  1. Stiahnite si a nainštalujte vývojárske prostredie pre Javu (JDK).

    wget http://people.tuke.sk/martin.sarnovsky/tsvd/files/jdk-8u121-linux-x64.rpm
    sudo yum install jdk-8u121-linux-x64.rpm
    rm jdk-8u121-linux-x64.rpm
  2. Stiahnite si a rozbalte distribúciu Apache Spark do vášho domovského adresára /usr/student.

    cd
    wget http://people.tuke.sk/martin.sarnovsky/tsvd/files/spark-2.2.0-bin-hadoop2.6.tgz
    tar xvzf spark-2.2.0-bin-hadoop2.6.tgz
    rm spark-2.2.0-bin-hadoop2.6.tgz
  3. Zmeňte nastavenie logovania. Najprv skopírujte konfiguračný súbor pre logovanie z príkladu log4j.properties.template a na riadku log4j.rootCategory=INFO, console zmenťe úroveň logovania na ERROR.

    cp spark-2.2.0-bin-hadoop2.6/conf/log4j.properties.template spark-2.2.0-bin-hadoop2.6/conf/log4j.properties
    nano spark-2.2.0-bin-hadoop2.6/conf/log4j.properties
    ...
    log4j.rootCategory=ERROR, console
  4. Nainštalujte knižnicu pre numerické výpočty NumPy.

    sudo yum install numpy -y
  5. Nastavte systémové premenné JAVA_HOME a SPARK_HOME. V adresári /etc/profile.d vytvorte nový súbor spark.sh s nastaveniami premenných.

    sudo nano /etc/profile.d/spark.sh
    ...
    export JAVA_HOME=/usr/java/default
    export SPARK_HOME=/home/student/spark-2.2.0-bin-hadoop2.6
    export PATH=$PATH:$SPARK_HOME/bin
  6. Reštartujte server a znovu sa prihláste aby sa zmenili nastavenia systémových premenných.

Inštalácia pre Windows

Ak potrebujete pouzivat Apache Spark v OS Windows:

  1. Stiahnite si a nainštalujte vývojárske prostredie pre Javu (JDK).

    32-bitový Windows

    64-bitový Windows

  2. Stiahnite si a nainštalujte Python verziu 2.7. Pri spustení zvoľte inštaláciu pre všetkých používateľov a zaškrtnite možnosť pridať Python do premennej PATH.

    32-bitový Windows

    64-bitový Windows

    Po nainštalovaní skontrolujte spustenie interpretra v príkazovom riadku príkazom python.

  3. Stiahnite si inštalačné balíky pre NumPy.

    32-bitový Windows

    64-bitový Windows

    Balíky nainštalujete programom PyPi, napr. pip install "numpy-1.11.3+mkl-cp27-cp27m-win32.whl"

  4. Stiahnite si distribúciu Apache Spark a rozbaľte ju do zvoleného adresára, napr. C:\Spark.

  5. Nastavte systémové premenné. V Štart menu kliknite pravým tlačidlom na Počítač, vyberte Vlastnosti, Rozšírené systémové nastavenia a Premenné prostredia.

    • Pridajte novú systémovú premennú s názvom HADOOP_HOME a hodnotou C:\Spark\hadoop.
    • Pridajte novú systémovú premennú s názvom SPARK_HOME a hodnotou C:\Spark.
    • Do premennej PATH pridajte na koniec zoznamu C:\Spark\bin.
  6. Spustite pyspark v príkazovom riadku.

Interpreter PySpark

Apache Spark podporuje programovanie v jazyku Java, Scala a Python. Pre Python Spark poskytuje interaktívny interpret, ktorý môžete spustiť príkazom pyspark. V príkazovom riadku PySpark sa pracuje rovnako ako v štandardnom interpretri jazyka Python. Interpreter môžete ukončiť príkazom exit(), alebo stlačením kombinácie kláves Ctrl+d.

Skripty v Apache Spark

Okrem interpretra PySpark môžete zapísať príkazy do skriptu uloženého do zdrojového súboru .py, ktorý potom môžete spustiť pomocou príkazu spark-submit. V skripte však musíte inicializovať premennú kontextu a názov aplikácie.

Skripty potom môžete spustiť nasledujúcim príkazom:

spark-submit --master local[X] [meno súboru].py

Parameter --master udáva v akom prostredí bude skript spustený. Nastavenie local[X] spustí skript na lokálnom počítači paralelne na X procesorových jadrách. Okrem lokálneho spustenia môžete použiť príkaz spark-submit na spustenie skriptu distribuovane na viacerých výpočtových uzloch, alebo v Hadoop klastri ktorý je riadený manažérom zdrojov YARN. Viac informácií o rôznych možnostiach spustenia skriptov nájdete tu (v angličtine).

Úlohy

Úloha 6.1

Stiahnite si skript wordcount.py, ktorý obsahuje demonštračnú aplikáciu, ktorá počíta slová vo vstupnom zozname. Spustite ju pomocou príkazu spark-submit lokálne na 2 procesoroch.


© 2016, 2017 Peter Bednár, Martin Sarnovský, Miroslav Smatana