Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Spark

Apache Spark on suosittu, korkean suorituskyvyn hajautetun laskennan kehys. Spark on erinomainen työkalu data-analyysiin ja koneoppimistehtäviin, kun aineisto kasvaa liian suureksi yhden koneen käsiteltäväksi.

Saatavuus

Rahti

Lisenssi

Käyttö on mahdollista sekä akateemisiin että kaupallisiin tarkoituksiin.

Sparkin käyttöönotto Rahdissa

Spark-malli löytyy Rahdin mallikatalogista. Katso Rahdin käyttöoppaasta, miten saat käyttöoikeuden ja aloitat uuden projektin. Valitse Apache Spark -malli ja lue Information-näkymän huomautukset huolellisesti. Seuraa linkkejä, jos tarvitset lisätietoja komponenteista.

Napsauta Next täyttääksesi klusterin muuttujat.

Muuttujat:

Alla on lueteltu joitakin muuttujia, joita voidaan muuttaa.

Note

CPU:n ja muistin arvoja tulisi virheiden välttämiseksi muuttaa vasta sen jälkeen, kun olet tarkistanut Rahti-projektiisi varatun projektikiintiön (projektisivun vasemman paneelin Resources - Quota -näkymästä). Projektikiintiötä voidaan tarvittaessa myös kasvattaa ylläpitäjien toimesta. Rahti-projektit ja kiintiöt Malli olettaa, että pyyntö- ja raja-arvot ovat samat kaikille konteille. Jos haluat käyttää eri raja-arvoja, mallin muokkaamista suositellaan (edistyneille käyttäjille).

Pakolliset arvot:

  • Cluster Name: Yksilöllinen tunniste klusterillesi
  • Username: Käyttäjänimi Spark-klusteriin ja Jupyteriin tunnistautumista ja kirjautumista varten (Suositus: luo uusi käyttäjänimi, älä käytä olemassa olevaa)
  • Password: Salasana Spark-klusteriin ja Jupyteriin tunnistautumista ja kirjautumista varten (Suositus: luo uusi salasana, älä käytä olemassa olevaa)
  • Worker Replicas: Työntekijöiden määrä (Oletus: 4)

  • Storage Size: Pysyvän tallennustaltion koko (Oletus: 10G)

Valinnaiset arvot:

  • Enable Jupyter Lab: Määrittää, haluatko käyttää Jupyter Labia oletusarvoisen Jupyter Notebookin sijaan (Oletus: false)
  • Master CPU: Klusterin master-solmun ytimien määrä
  • Master Memory: Klusterin master-solmun muisti
  • Worker CPU: Kunkin worker-solmun ytimien määrä (Oletus: 2)
  • Worker Memory: Kunkin worker-solmun muisti (Oletus: 4G)

  • Executor Default Cores: Spark Executor Cores -asetuksen oletusarvo (katso lisätietoja virallisesta Spark-dokumentaatiosta) (Oletus: 2)

  • Executor Default Memory: Spark Executor Memory -asetuksen oletusarvo (Tulee aina olla pienempi kuin worker-solmun muisti!) (Oletus: 3G)

  • Driver CPU: Ajurin ytimien määrä (Jupyter Notebook)

  • Driver Memory: Ajurin muisti (Jupyter Notebook)

Älä muuta seuraavia muuttujia, ellet tiedä mitä olet tekemässä

  • Master Image: Docker-image masterille
  • Worker Image: Docker-image workerille
  • Driver Image: Docker-image ajurille
  • Application Hostname Suffix: Julkaistun isäntänimen pääte, jota käytetään reittien luomiseen Spark UI:lle ja Jupyter Notebookille

Note

Data tallennetaan yhteen jaettuun taltioon, joten on tärkeää valita riittävän suuri tallennustilan koko, koska sitä ei voi kasvattaa käyttöönoton jälkeen. Lisää tallennustaltioita voidaan kuitenkin lisätä.

Napsauta Create ja Close. Näet uuden klusterisi käyttöönoton Overview-sivulla. Kun käyttöönotto on valmis, löydät Jupyter-käyttöliittymän osoitteesta https://< cluster-name >-jupyter.rahtiapp.fi ja Spark-käyttöliittymän osoitteesta https://< cluster-name >-spark.rahtiapp.fi

Spark-mallin käyttöönotto luo sinulle Jupyter Notebook -käyttöliittymän, Spark-masterin ja Spark-workerit yllä kuvatun worker replica -muuttujan mukaisesti.

Klusterin skaalaus voidaan tehdä Overview-näkymässä kasvattamalla spark-worker-podien määrää podimääräkuvakkeen oikealla puolella olevilla ylös- ja alasnuolilla. Pienennä kaikkien podien määrä nollaan sammuttaaksesi klusterisi ja säästääksesi pilven laskutusyksiköitä (BUs).

Lyhyet kuvaukset käyttöönotetuista komponenteista

  • Jupyter notebook : mahdollistaa Spark-koodin kirjoittamisen Python- tai R-muodossa ja tarjoaa myös mahdollisuuden käyttää terminaalia, jota voidaan esimerkiksi käyttää datan lataamiseen Altaaseen pitkäaikaissäilytystä varten. Notebookin URL-osoite löytyy napsauttamalla pudotusvalikkoa ja etsimällä Routes-kohdasta URL-osoite. Oletuksena kaikki Jupyterissa käynnistämäsi notebookit yhdistetään klusteriisi.
  • Spark master: yhdistää Jupyter-notebookisi Spark-koodin lukemista varten ja koordinoi workereitasi; sillä on selainkäyttöliittymä, jonka URL-osoite näkyy napsauttamalla pudotusvalikkoa ja etsimällä Routes-kohdan.
  • Spark workers: workerit vastaavat varsinaisesta laskennasta. Oletuksena sinulle luodaan 4 workeria, ja voit luoda lisää napsauttamalla ylös- ja alas-painikkeita.

Note

Muista aina tallentaa datasi Jupyter-notebookien oletuspolkuun /mnt/<project-name>-pvc/* . PVC-tallennus on hajautettu ja replikoitu pysyvä tallennus, ja se on kaikkien Spark-podiesi käytettävissä. Jos tallennat dataa muualle, se poistetaan heti, kun väliaikainen podi poistetaan. On myös suositeltavaa tallentaa arvokas data ajoittain toiseen sijaintiin. Allas-objektitallennus soveltuu suurten aineistojen ja analyysitulosten säilyttämiseen. Allasta voidaan käyttää myös raakadataan tallentamiseen, ja Spark voidaan asettaa lukemaan data sieltä.

Allas-objektitallennuksen käyttö

S3CMD-työkalu on asennettu Spark-imageen, ja sitä voidaan käyttää arvokkaiden tiedostojen siirtämiseen Allas-objektitallennukseen.

Avaa uusi terminaali Jupyter Notebook -käyttöliittymästä

cd to your pvc-directory:
cd /mnt/<project-name>-pvc

Lataa Allas-konfiguraatio GitHubista ja käytä sitä s3cmd:n määrittämiseen:

wget https://raw.githubusercontent.com/CSCfi/allas-cli-utils/master/allas_conf
source allas_conf --mode s3cmd --user your-csc-username

Hyödyllisiä s3cmd-komentoja:

s3cmd ls

s3cmd put -r data/examplefile.parquet s3://<your-bucket-name>/

s3cmd get -r s3://<your-bucket-name>/examplefile.parquet ./

Lisätietoja s3cmd:n määrittämisestä Allasta varten ja käyttöohje löytyy CSC:n Allas-dokumentaatiosta

Lisätietoja

Apache Sparkin kotisivu

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta