Oktatóanyag: Apache Spark-alkalmazáshoz készült .NET üzembe helyezése az Azure HDInsightban

Ez az oktatóanyag bemutatja, hogyan helyezheti üzembe a .NET for Apache Spark-alkalmazást a felhőben egy Azure HDInsight-fürtön keresztül. A HDInsight megkönnyíti a Spark-fürtök létrehozását és konfigurálását az Azure-ban, mivel a HDInsight-beli Spark-fürtök kompatibilisek az Azure Storage és Azure Data Lake Storage.

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

  • A tárfiókok elérése Azure Storage Explorer használatával.
  • Hozzon létre egy Azure HDInsight-fürtöt.
  • Tegye közzé az Apache Sparkhoz készült .NET-alkalmazást.
  • HDInsight-szkriptművelet létrehozása és futtatása.
  • Futtasson egy .NET for Apache Spark-alkalmazást egy HDInsight-fürtön.

Előfeltételek

A kezdés előtt végezze el a következő feladatokat:

Hozzáférés a tárfiókokhoz

  1. Nyissa meg a Azure Storage Explorer.

  2. Válassza a bal oldali menü Fiók hozzáadása elemét, és jelentkezzen be az Azure-fiókjába.

    Sign in to Azure account from Storage Explorer

    A bejelentkezés után látnia kell az összes tárfiókját és a tárfiókokba feltöltött összes erőforrást.

HDInsight-fürt létrehozása

Fontos

A HDInsight-fürtök számlázása percalapú, még akkor is, ha nem használja őket. Mindig törölje a fürtöt, ha már nem használja. További információt az oktatóanyag Erőforrások törlése című szakaszában talál.

  1. Látogasson el az Azure Portalra.

  2. Válassza a + Erőforrás létrehozása lehetőséget. Ezután válassza ki a HDInsightot az Elemzés kategóriából.

    Create HDInsight resource from Azure portal

  3. Az Alapvető beállítások területen adja meg a következő értékeket:

    Tulajdonság Leírás
    Előfizetés A legördülő menüben válasszon egy aktív Azure-előfizetést.
    Erőforráscsoport Adja meg, hogy új erőforráscsoportot kíván-e létrehozni, vagy egy meglévőt szeretne használni. Az erőforráscsoport olyan tároló, amely egy adott Azure-megoldás kapcsolódó erőforrásait tartalmazza.
    Fürt neve Adjon nevet a HDInsight Spark-fürtnek.
    Hely Válasszon egy helyet az erőforráscsoportnak. A sablon ezt a helyet használja a fürt létrehozásához, valamint az alapértelmezett fürttárolóhoz.
    Fürt típusa Fürttípusként válassza a Sparkot .
    Fürt verziója Ez a mező automatikusan feltöltődött az alapértelmezett verzióval a fürttípus kiválasztása után. Válassza ki a Spark 2.3- vagy 2.4-es verzióját.
    Fürt bejelentkezési felhasználóneve Adja meg a fürt bejelentkezési felhasználónevét. Az alapértelmezett név az admin.
    Fürt bejelentkezési jelszava Adja meg a bejelentkezési jelszót.
    Secure Shell- (SSH-) felhasználónév Adja meg az SSH-felhasználónevet. Alapértelmezés szerint ennek a fióknak ugyanaz a jelszava, mint a fürt bejelentkezési felhasználónevéhez tartozó fióknak.
  4. Válassza a Tovább gombot: Storage >> a Storage lapra lépéshez. A Storage területen adja meg a következő értékeket:

    Tulajdonság Leírás
    Elsődleges tároló típusa Használja az alapértelmezett Azure Storage értéket.
    Kiválasztási módszer Használja az alapértelmezett Kiválasztás a listából értéket.
    Az elsődleges tárfiók Válassza ki az előfizetését és az előfizetésen belüli aktív tárfiókok egyikét.
    Tároló Ez a tároló az a blobtároló a tárfiókban, ahol a fürt fájlokat keres az alkalmazás felhőben való futtatásához. Bármilyen elérhető nevet megadhat.
  5. A Véleményezés + létrehozás területen válassza a Létrehozás lehetőséget. A fürt létrehozása nagyjából 20 percet vesz igénybe. A fürtnek létre kell hoznia, mielőtt továbbléphet a következő lépésre.

Az alkalmazás közzététele

Ezután közzéteszi az Apache Sparkhoz készült .NET-ben létrehozott mySparkAppalkalmazást – Első lépések 10 perces oktatóanyagban, amely hozzáférést biztosít a Spark-fürtnek az alkalmazás futtatásához szükséges összes fájlhoz.

  1. Futtassa a következő parancsokat a mySparkApp közzétételéhez:

    Windows:

    cd mySparkApp
    dotnet publish -c Release -f netcoreapp3.1 -r win-x64
    

    Linux rendszeren:

    cd mySparkApp
    foo@bar:~/path/to/app$ dotnet publish -c Release -f netcoreapp3.1 -r ubuntu.16.04-x64
    
  2. Az alábbi feladatokkal tömörítheti a közzétett alkalmazásfájlokat, hogy egyszerűen feltölthesse őket a HDInsight-fürtbe. Tömörítse a közzétételi mappa tartalmát, példáulpublish.zip , amely az 1. lépés eredményeként jött létre. Az összes szerelvényeknek a ZIP-fájl első rétegében kell lenniük, és nem lehetnek köztes mapparétegek. Ez azt jelenti, hogy a publish.zipkibontásakor a rendszer az összes szerelvényt kinyeri az aktuális munkakönyvtárba.

    Windows:

    Egy kinyerési program (például 7-Zip vagy WinZip) használatával bontsa ki a fájlt a bin könyvtárba az összes közzétett bináris fájllal.

    Linuxon futtassa a következő parancsot:

    zip -r publish.zip
    

Fájlok feltöltése az Azure-ba

Ezután a Azure Storage Explorer használatával töltheti fel a következő öt fájlt a fürt tárolójához választott blobtárolóba:

  • Microsoft.Spark.Worker
  • install-worker.sh
  • publish.zip
  • microsoft-spark-2-4_2.11-1.0.0.jar
  • input.txt
  1. Nyissa meg Azure Storage Explorer, és navigáljon a tárfiókhoz a bal oldali menüből. Részletezés a fürt blobtárolójához a tárfiók blobtárolói alatt.

  2. A Microsoft.Spark.Worker segít az Apache Sparknak az alkalmazás végrehajtásában, például a felhasználó által definiált függvények (UDF-ek) végrehajtásában. Töltse le a Microsoft.Spark.Worker fájlt. Ezután válassza a Feltöltés Azure Storage Explorer lehetőséget a feldolgozó feltöltéséhez.

    Upload files to Azure Storage Explorer

  3. A install-worker.sh egy szkript, amely lehetővé teszi a .NET for Apache Spark függő fájljainak másolását a fürt csomópontjaira.

    Hozzon létre egy install-worker.sh nevű új fájlt a helyi számítógépen, és illessze be a GitHub install-worker.sh tartalmát. Ezután töltse fel install-worker.sh a blobtárolóba.

  4. A fürtnek szüksége van az alkalmazás közzétett fájljait tartalmazó publish.zip fájlra. Lépjen a közzétett mappához, a mySparkApp/bin/Release/netcoreapp3.1/ubuntu.16.04-x64 mappához, és keresse meg publish.zip. Ezután töltse fel publish.zip a blobtárolóba.

  5. A fürtnek szüksége van egy jar-ként csomagolt alkalmazáskódra, amely a Microsoft.Spark nuget részeként szerepel, és az alkalmazás buildkimeneti könyvtárában van együtt helyezve. Lépjen a közzétett mappához, a mySparkApp/bin/Release/netcoreapp3.1/ubuntu.16.04-x64 mappához, és keresse meg a microsoft-spark-2-4_2.11-1.0.0.jar fájlt. Ezután töltse fel a jar-fájlt a blobtárolóba.

    Több .jar fájl is lehet (a Spark 2.3.x, 2.4.x és 3.0.x verzióihoz). Ki kell választania azt a .jar-fájlt, amely megfelel a Fürt létrehozásakor kiválasztott Spark-verziónak. Válassza például a microsoft-spark-2-4_2.11-1.0.0.jar fájlt, ha a Spark 2.4-et választotta a fürt létrehozásakor.

  6. A fürtnek szüksége van az alkalmazás bemenetére. Lépjen a mySparkApp könyvtárba, és keresse meg input.txt. Töltse fel a bemeneti fájlt a blobtároló felhasználói/sshuser könyvtárába. SSH-val fog csatlakozni a fürthöz, és ebben a mappában keresi a fürt bemenetét. A input.txt fájl az egyetlen fájl, amely egy adott könyvtárba van feltöltve.

A HDInsight-szkriptművelet futtatása

Miután a fürt fut, és feltöltötte a fájlokat az Azure-ba, futtatja a install-worker.sh szkriptet a fürtön.

  1. Navigáljon a HDInsight Spark-fürthöz Azure Portal, majd válassza a Szkriptműveletek lehetőséget.

  2. Válassza az + Új elküldése lehetőséget, és adja meg a következő értékeket:

    Tulajdonság Leírás
    Szkript típusa Egyéni
    Name Feldolgozó telepítése
    Bash-szkript URI-ja https://mystorageaccount.blob.core.windows.net/mycontainer/install-worker.sh
    Az URI megerősítéséhez kattintson a jobb gombbal install-worker.sh Azure Storage Explorer, és válassza a Tulajdonságok parancsot.
    Csomóponttípus(ok) Munkavállaló
    Paraméterek azure
    wasbs://mycontainer@myStorageAccount.blob.core.windows.net/Microsoft.Spark.Worker.netcoreapp3.1.linux-x64-1.0.0.tar.gz
    /usr/local/bin
  3. Válassza a Létrehozás lehetőséget a szkript elküldéséhez.

Futtassa az alkalmazást

  1. Navigáljon a HDInsight Spark-fürthöz a Azure Portal, majd válassza az SSH + Fürtbe való bejelentkezés lehetőséget.

  2. Másolja ki az ssh bejelentkezési adatokat, és illessze be a bejelentkezést egy terminálba. Jelentkezzen be a fürtbe a fürt létrehozásakor beállított jelszóval. Látnia kell az Ubuntu és a Spark felé üdvözlő üzeneteket.

  3. A spark-submit paranccsal futtassa az alkalmazást a HDInsight-fürtön. Ne felejtse el lecserélni a példaszkript mycontainer és mystorageaccount értékét a blobtároló és a tárfiók tényleges nevére.

    $SPARK_HOME/bin/spark-submit \
    --master yarn \
    --class org.apache.spark.deploy.dotnet.DotnetRunner \
    wasbs://mycontainer@mystorageaccount.blob.core.windows.net/microsoft-spark-2-4_2.11-1.0.0.jar \
    wasbs://mycontainer@mystorageaccount.blob.core.windows.net/publish.zip mySparkApp
    

    Az alkalmazás futtatásakor ugyanazt a szószámtáblát látja a konzolra írt helyi futtatás első lépéseiből. Gratulálunk, már futtatta az első .NET for Apache Spark-alkalmazást a felhőben!

Az erőforrások eltávolítása

A HDInsight az Azure Storage menti az adatokat, így biztonságosan törölheti a fürtöt, ha nincs használatban. Ráadásul a HDInsight-fürtök akkor is díjkötelesek, amikor éppen nincsenek használatban. Mivel a fürt költsége a sokszorosa a tároló költségeinek, gazdaságossági szempontból is ésszerű törölni a használaton kívüli fürtöket.

Az erőforráscsoport nevét kiválasztva is megnyílik az erőforráscsoport oldala, ahol kiválaszthatja az Erőforráscsoport törlése elemet. Az erőforráscsoport törlésekor a rendszer a HDInsight Spark-fürtöt és az alapértelmezett tárfiókot is törli.

Következő lépések

Ebben az oktatóanyagban üzembe helyezte a .NET for Apache Spark-alkalmazást az Azure HDInsightban. A HDInsightról további információt az Azure HDInsight dokumentációban talál.