Oktatóanyag: Apache Spark-alkalmazás létrehozása az IntelliJ-vel Synapse-munkaterület használatával

Ez az oktatóanyag bemutatja, hogyan használhatja az Azure Toolkit for IntelliJ beépülő modult a Scalában írt Apache Spark-alkalmazások fejlesztéséhez, majd közvetlenül az IntelliJ integrált fejlesztői környezetből (IDE) egy kiszolgáló nélküli Apache Spark-készletbe való beküldéséhez. A beépülő modult többféleképpen is használhatja:

  • Scala Spark-alkalmazás fejlesztése és elküldése Spark-készleten.
  • A Spark-készletek erőforrásainak elérése.
  • Scala Spark-alkalmazás helyi fejlesztése és futtatása.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Az Azure Toolkit for IntelliJ beépülő modul használata
  • Apache Spark-alkalmazások fejlesztése
  • Alkalmazás küldése Spark-készletekbe

Előfeltételek

  • IntelliJ IDEA közösségi verzió.

  • Azure toolkit plugin 3.27.0-2019.2 – Telepítés az IntelliJ beépülő modul adattárából

  • JDK (1.8-es verzió).

  • Scala Beépülő modul – Telepítés az IntelliJ beépülő modul adattárából.

  • A következő előfeltételek csak Windows-felhasználók számára szükségesek:

    Ha windowsos számítógépen futtatja a helyi Spark Scala alkalmazást, kivételt kaphat a SPARK-2356-ban leírtak szerint. A kivétel azért fordul elő, mert a WinUtils.exe hiányzik a Windowsból. A hiba megoldásához töltse le a végrehajtható WinUtilst egy olyan helyre, mint a C:\WinUtils\bin. Ezután adja hozzá a környezeti változót HADOOP_HOME, és állítsa a változó értékét a C:\WinUtils értékre.

Spark Scala-alkalmazás létrehozása Spark-készlethez

  1. Indítsa el az IntelliJ IDEA-t, és válassza az Új projekt létrehozása lehetőséget az Új projekt ablak megnyitásához.

  2. Válassza az Apache Spark/HDInsight lehetőséget a bal oldali panelen.

  3. Válassza a Spark Project with Samples (Scala) lehetőséget a főablakból.

  4. A Build eszköz legördülő listájában válasszon az alábbi típusok közül:

    • A Maven a Scala projektlétrehozási varázslójának támogatása.
    • SBT a függőségek kezeléséhez és a Scala-projekt létrehozásához.

    IntelliJ IDEA New Project dialog box

  5. Válassza a Következő lehetőséget.

  6. Az Új projekt ablakban adja meg a következő információkat:

    Property Leírás
    Projekt neve Adjon meg egy nevet. Ebben az oktatóanyagban a következőt használjuk: myApp.
    Projekt helye Adja meg a kívánt helyet a projekt mentéséhez.
    Project SDK Lehet, hogy az IDEA első használatakor üres. Válassza az Új lehetőséget... és lépjen a JDK-ra.
    Spark-verzió A létrehozási varázsló integrálja a Spark SDK és a Scala SDK megfelelő verzióját. Itt kiválaszthatja a szükséges Spark-verziót.

    Selecting the Apache Spark SDK

  7. Válassza a Befejezés lehetőséget. A projekt elérhetővé válása eltarthat néhány percig.

  8. A Spark-projekt automatikusan létrehoz egy összetevőt. Az összetevő megtekintéséhez végezze el a következő műveleteket:

    a. A menüsávon navigáljon a Fájlprojekt>struktúrája... elemre.

    b. A Projektstruktúra ablakban válassza az Összetevők lehetőséget.

    c. Válassza a Mégse elemet az összetevő megtekintése után.

    Artifact info in the dialog box

  9. Keresse meg a LogQueryt a myApp>src>>Scala-minta>>LogQueryből. Ez az oktatóanyag a LogQueryt használja a futtatáshoz.

    Commands for creating a Scala class from Project

Csatlakozás a Spark-készletekhez

Jelentkezzen be az Azure-előfizetésbe a Spark-készletekhez való csatlakozáshoz.

Jelentkezzen be az Azure-előfizetésébe

  1. A menüsávon navigáljon a Windows>Azure Explorer Nézet>eszközre.

    IntelliJ IDEA shows Azure Explorer

  2. Az Azure Explorerben kattintson a jobb gombbal az Azure-csomópontra , majd válassza a Bejelentkezés lehetőséget.

    IntelliJ IDEA explorer right-click Azure

  3. Az Azure Bejelentkezési párbeszédpanelen válassza az Eszközbejelentkeztetés, majd a Bejelentkezés lehetőséget.

    IntelliJ IDEA Azure sign-in

  4. Az Azure Device Login párbeszédpanelen válassza a Másolás> Megnyitás lehetőséget.

    IntelliJ IDEA Azure device login

  5. A böngészőfelületen illessze be a kódot, majd válassza a Tovább gombot.

    Microsoft enters code dialog for HDI

  6. Adja meg azure-beli hitelesítő adatait, majd zárja be a böngészőt.

    Microsoft enters e-mail dialog for HDI

  7. Miután bejelentkezett, az Előfizetések kiválasztása párbeszédpanel felsorolja a hitelesítő adatokhoz társított Összes Azure-előfizetést. Válassza ki az előfizetést, majd válassza a Kiválasztás lehetőséget.

    The Select Subscriptions dialog box

  8. Az Azure Explorerben bontsa ki az Apache Sparkot a Synapse-on az előfizetéseiben lévő munkaterületek megtekintéséhez.

    IntelliJ IDEA Azure Explorer main view

  9. A Spark-készletek megtekintéséhez tovább bővítheti a munkaterületet.

    Azure Explorer storage accounts

Spark Scala-alkalmazás távoli futtatása Spark-készleten

Scala-alkalmazás létrehozása után távolról futtathatja.

  1. Nyissa meg a Futtatás/hibakeresés konfigurációk ablakot az ikon kiválasztásával.

    The Submit Spark Application to HDInsight command 1

  2. A Konfigurációk futtatása/hibakeresése párbeszédpanelen válassza az +Apache Sparkot a Synapse-on.

    The Submit Spark Application to HDInsight command 2

  3. A Futtatási/hibakeresési konfigurációk ablakban adja meg a következő értékeket, majd kattintson az OK gombra:

    Tulajdonság Érték
    Spark-készletek Válassza ki azokat a Spark-készleteket, amelyeken futtatni szeretné az alkalmazást.
    Elküldendő összetevő kiválasztása Hagyja meg az alapértelmezett beállítást.
    Főosztály neve Az alapértelmezett érték a kijelölt fájl főosztálya. Az osztályt a három pont (...) kiválasztásával és egy másik osztály kiválasztásával módosíthatja.
    Feladatkonfigurációk Módosíthatja az alapértelmezett kulcsot és értékeket. További információ: Apache Livy REST API.
    Parancssori argumentumok Szükség esetén a főosztályhoz szóközzel elválasztott argumentumokat is megadhat.
    Hivatkozott jarok és hivatkozott fájlok Ha vannak ilyenek, megadhatja a hivatkozott Jars és fájlok elérési útját. Az Azure-beli virtuális fájlrendszerben is tallózhat a fájlok között, amely jelenleg csak az ADLS Gen2-fürtöt támogatja. További információ: Apache Spark-konfiguráció és erőforrások feltöltése a fürtbe.
    Feladatfeltöltési tárterület Bontsa ki a további lehetőségek megjelenítéséhez.
    Tárhelytípusa Válassza az Azure Blob használata a feltöltéshez vagy a fürt alapértelmezett tárfiókjának használata a legördülő listából való feltöltéshez .
    Tárfiók Adja meg a tárfiókot.
    Tárkulcs Adja meg a tárkulcsot.
    Tároló tárolója A tárfiók és a tárkulcs megadása után válassza ki a tárolót a legördülő listából.

    The Spark Submission dialog box 1

  4. Válassza a SparkJobRun ikont a projekt kijelölt Spark-készletbe való elküldéséhez. A Fürt távoli Spark-feladata lap alján a feladat végrehajtásának előrehaladása látható. Az alkalmazást a piros gombra kattintva állíthatja le.

    Apache Spark Submission window

    The Spark Submission dialog box 2

Apache Spark-alkalmazások helyi futtatása/hibakeresése

Az alábbi utasításokat követve beállíthatja a helyi futtatási és helyi hibakeresést az Apache Spark-feladathoz.

1. forgatókönyv: Helyi futtatás futtatása

  1. Nyissa meg a Futtatás/hibakeresés konfigurációk párbeszédpanelt, és válassza a pluszjelet (+). Ezután válassza az Apache Spark on Synapse lehetőséget. Adja meg a menteni kívánt név, főosztálynév adatait.

    Intellij Run debug configurations local run 1

    • A környezeti változók és a WinUtils.exe hely csak windowsos felhasználók számára érhetők el.
    • Környezeti változók: A rendszer környezeti változója automatikusan észlelhető, ha korábban beállította, és nem kell manuálisan hozzáadnia.
    • WinUtils.exe hely: A WinUtils helyét a jobb oldali mappaikon kiválasztásával adhatja meg.
  2. Ezután válassza a helyi lejátszás gombot.

    Intellij Run debug configurations local run 2

  3. Ha a helyi futtatás befejeződött, ha a szkript kimenetet tartalmaz, ellenőrizheti a kimeneti fájlt az alapértelmezett adatokból>.

    Intellij Project local run result 1

2. forgatókönyv: Helyi hibakeresés

  1. Nyissa meg a LogQuery-szkriptet , és állítson be töréspontokat.

  2. A helyi hibakereséshez válassza a Helyi hibakeresés ikont.

    Intellij Project local run result 2

Synapse-munkaterület elérése és kezelése

Az Azure Explorerben különböző műveleteket hajthat végre az Azure Toolkit for IntelliJ-ben. A menüsávon navigáljon a Windows>Azure Explorer Nézet>eszközre.

A munkaterület elindítása

  1. Az Azure Explorerben lépjen az Apache Sparkra a Synapse-en, majd bontsa ki.

    IntelliJ IDEA Azure Explorer main view

  2. Kattintson a jobb gombbal egy munkaterületre, majd válassza a Munkaterület indítása lehetőséget, és megnyílik a webhely.

    Spark Job View Application details 1

    Spark Job View Application details 2

Spark-konzol

Futtathatja a Spark helyi konzolját (Scala), vagy futtathatja a Spark Livy interaktív munkamenet-konzolt (Scala).

Spark helyi konzol (Scala)

Győződjön meg arról, hogy teljesítette a WINUTILS.EXE előfeltételét.

  1. A menüsávon navigáljon a Konfigurációk szerkesztése parancsra...>

  2. A Futtatási/hibakeresési konfigurációk ablakban, a bal oldali panelen keresse meg az Apache Sparkot a Synapse>[Spark on Synapse] myApp webhelyen.

  3. A főablakban válassza a Helyi futtatás lapot.

  4. Adja meg a következő értékeket, majd kattintson az OK gombra:

    Tulajdonság Érték
    Környezeti változók Győződjön meg arról, hogy a HADOOP_HOME értéke helyes.
    WINUTILS.exe hely Győződjön meg arról, hogy az elérési út helyes.

    Local Console Set Configuration

  5. A Projectben keresse meg a myApp>src>>scala>myAppját.

  6. A menüsávon keresse meg a Spark-konzolt futtató Spark-konzolt>>(Scala).

  7. Ezután két párbeszédpanel jelenhet meg, hogy megkérdezze, szeretné-e automatikusan kijavítani a függőségeket. Ha igen, válassza az Automatikus javítás lehetőséget.

    IntelliJ IDEA Spark Auto Fix dialog1

    IntelliJ IDEA Spark Auto Fix dialog2

  8. A konzolnak az alábbi képhez hasonlóan kell kinéznie. Írja be a konzolablak típusát sc.appName, majd nyomja le a ctrl+Enter billentyűkombinációt. Az eredmény megjelenik. A helyi konzolt a piros gombra kattintva állíthatja le.

    IntelliJ IDEA local console result

Spark Livy interaktív munkamenet-konzol (Scala)

Csak az IntelliJ 2018.2 és 2018.3 rendszeren támogatott.

  1. A menüsávon navigáljon a Konfigurációk szerkesztése parancsra...>

  2. A Futtatási/hibakeresési konfigurációk ablakban, a bal oldali panelen keresse meg az Apache Sparkot a synapse[Spark on synapse>] myApp webhelyen.

  3. A főablakban válassza a Távoli futtatás a Fürt lapon lehetőséget.

  4. Adja meg a következő értékeket, majd kattintson az OK gombra:

    Tulajdonság Érték
    Főosztály neve Válassza ki a főosztály nevét.
    Spark-készletek Válassza ki azokat a Spark-készleteket, amelyeken futtatni szeretné az alkalmazást.

    Interactive Console Set Configuration

  5. A Projectben keresse meg a myApp>src>>scala>myAppját.

  6. A menüsávon navigáljon az Eszközök Spark-konzolra>>, amelyen a Spark Livy interaktív munkamenetkonzol (Scala) fut.

  7. A konzolnak az alábbi képhez hasonlóan kell kinéznie. Írja be a konzolablak típusát sc.appName, majd nyomja le a ctrl+Enter billentyűkombinációt. Az eredmény megjelenik. A helyi konzolt a piros gombra kattintva állíthatja le.

    IntelliJ IDEA Interactive Console Result

Kijelölés küldése a Spark-konzolra

Előfordulhat, hogy a szkript eredményét úgy szeretné megtekinteni, hogy elküld egy kódot a helyi konzolra vagy a Livy Interaktív munkamenet-konzolra (Scala). Ehhez kiemelhet néhány kódot a Scala-fájlban, majd kattintson a jobb gombbal a Kijelölés küldése a Spark-konzolra. A rendszer elküldi a kiválasztott kódot a konzolnak, és kész lesz. Az eredmény a kód után jelenik meg a konzolon. A konzol ellenőrzi a meglévő hibákat.

Send Selection to Spark console

További lépések