Použití nástrojů Spark &Hive pro Visual Studio Code

Naučte se používat nástroje Apache Spark a Hive pro Visual Studio Code. Pomocí nástrojů můžete vytvářet a odesílat dávkové úlohy Apache Hive, interaktivní dotazy Hive a skripty PySpark pro Apache Spark. Nejprve popíšeme, jak nainstalovat nástroje Spark &Hive v editoru Visual Studio Code. Pak si ukážeme, jak odesílat úlohy do nástrojů Spark a Hive.

Nástroje Spark a Hive je možné nainstalovat na platformy podporované nástrojem Visual Studio Code. Všimněte si následujících požadavků pro různé platformy.

Požadavky

K dokončení kroků v tomto článku jsou vyžadovány následující položky:

Instalace nástrojů Spark a Hive

Jakmile splníte požadavky, můžete nainstalovat Nástroje Spark &Hive pro Visual Studio Code pomocí následujících kroků:

  1. Otevřete Visual Studio Code.

  2. V řádku nabídek přejděte na Zobrazit>rozšíření.

  3. Do vyhledávacího pole zadejte Spark a Hive.

  4. Ve výsledcích hledání vyberte Nástroje Spark a Hive a pak vyberte Nainstalovat:

    Spark & Hive for Visual Studio Code Python install.

  5. V případě potřeby vyberte Znovu načíst .

Otevření pracovní složky

Pokud chcete otevřít pracovní složku a vytvořit soubor v editoru Visual Studio Code, postupujte takto:

  1. V řádku nabídek přejděte do složky Otevřít soubor...>>C:\HD\HDexample a pak vyberte tlačítko Vybrat složku. Složka se zobrazí v zobrazení Průzkumníka vlevo.

  2. V zobrazení Průzkumníka vyberte složku HDexample a pak vyberte ikonu Nový soubor vedle pracovní složky:

    visual studio code new file icon.

  3. Nový soubor pojmenujte pomocí .hql přípony souboru (dotazy Hive) nebo (skript Sparku .py ). Tento příklad používá HelloWorld.hql.

Nastavení prostředí Azure

Pro uživatele národního cloudu nejprve nastavte prostředí Azure pomocí následujícího postupu a pak pomocí příkazu Azure: Přihlásit se k Azure:

  1. Přejděte do předvoleb> souborů>Nastavení.

  2. Vyhledejte následující řetězec: Azure: Cloud.

  3. Ze seznamu vyberte národní cloud:

    Set default login entry configuration.

Připojení k účtu Azure

Než budete moct odesílat skripty do clusterů ze sady Visual Studio Code, může se uživatel přihlásit k předplatnému Azure nebo propojit cluster HDInsight. Pro připojení ke clusteru HDInsight použijte přihlašovací údaje a heslo nebo přihlašovací údaje připojené k doméně clusteru ESP. Pokud se chcete připojit k Azure, postupujte takto:

  1. Na řádku nabídek přejděte do palety příkazů Zobrazit>... a zadejte Azure: Přihlásit se:

    Spark & Hive Tools for Visual Studio Code login.

  2. Podle pokynů pro přihlášení se přihlaste k Azure. Po připojení se název vašeho účtu Azure zobrazí na stavovém řádku v dolní části okna editoru Visual Studio Code.

Normální cluster můžete propojit pomocí uživatelského jména spravovaného apache Ambari nebo můžete propojit zabezpečený cluster Hadoop Enterprise Security Pack pomocí uživatelského jména domény (například: user1@contoso.com).

  1. Na řádku nabídek přejděte na Paletu příkazů Zobrazení>... a zadejte Spark / Hive: Propojení clusteru.

    Command Palette link cluster command.

  2. Vyberte typ propojeného clusteru Azure HDInsight.

  3. Zadejte adresu URL clusteru HDInsight.

  4. Zadejte své uživatelské jméno Ambari; výchozí hodnota je admin.

  5. Zadejte heslo Ambari.

  6. Vyberte typ clusteru.

  7. Nastavte zobrazovaný název clusteru (volitelné).

  8. Zkontrolujte zobrazení VÝSTUP pro ověření.

    Poznámka:

    Propojené uživatelské jméno a heslo se použijí, pokud se cluster přihlásí k předplatnému Azure a propojí cluster.

  1. Na řádku nabídek přejděte na Paletu příkazů Zobrazení>... a zadejte Spark / Hive: Propojení clusteru.

  2. Vyberte typ propojeného clusteru – Obecný koncový bod Livy.

  3. Zadejte obecný koncový bod Livy. Příklad: http://10.172.41.42:18080.

  4. Vyberte typ autorizace Basic nebo None. Pokud vyberete Základní:

    1. Zadejte své uživatelské jméno Ambari; výchozí hodnota je admin.

    2. Zadejte heslo Ambari.

  5. Zkontrolujte zobrazení VÝSTUP pro ověření.

Výpis clusterů

  1. Na řádku nabídek přejděte na Paletu příkazů Zobrazení>... a zadejte Spark / Hive: List Cluster.

  2. Vyberte požadované předplatné.

  3. Zkontrolujte zobrazení VÝSTUP. Toto zobrazení zobrazuje váš propojený cluster (nebo clustery) a všechny clustery v rámci vašeho předplatného Azure:

    Set a default cluster configuration.

Nastavení výchozího clusteru

  1. Znovu otevřete složku HDexample, která byla popsána dříve, pokud je zavřená.

  2. Vyberte soubor HelloWorld.hql, který byl vytvořen dříve. Otevře se v editoru skriptů.

  3. Klikněte pravým tlačítkem myši na editor skriptů a pak vyberte Spark / Hive: Nastavit výchozí cluster.

  4. Připojení ke svému účtu Azure nebo pokud jste to ještě neudělali, propojte cluster.

  5. Vyberte cluster jako výchozí cluster pro aktuální soubor skriptu. Nástroje automaticky aktualizují . Konfigurační soubor VSCode\settings.json :

    Set default cluster configuration.

Odesílání interaktivních dotazů Hive a dávkových skriptů Hive

Pomocí nástrojů Spark &Hive pro Visual Studio Code můžete do clusterů odesílat interaktivní dotazy Hive a dávkové skripty Hive.

  1. Znovu otevřete složku HDexample, která byla popsána dříve, pokud je zavřená.

  2. Vyberte soubor HelloWorld.hql, který byl vytvořen dříve. Otevře se v editoru skriptů.

  3. Zkopírujte a vložte následující kód do souboru Hive a uložte ho:

    SELECT * FROM hivesampletable;
    
  4. Připojení ke svému účtu Azure nebo pokud jste to ještě neudělali, propojte cluster.

  5. Klikněte pravým tlačítkem na editor skriptů a vyberte Hive: Interaktivní k odeslání dotazu nebo použijte klávesovou zkratku Ctrl+Alt+I. Vyberte Hive: Batch k odeslání skriptu nebo použijte klávesovou zkratku Ctrl+Alt+H.

  6. Pokud jste nezadali výchozí cluster, vyberte cluster. Nástroje také umožňují odeslat blok kódu místo celého souboru skriptu pomocí místní nabídky. Po chvíli se výsledky dotazu zobrazí na nové kartě:

    Interactive Apache Hive query result.

    • Panel VÝSLEDKŮ : Celý výsledek můžete uložit jako soubor CSV, JSON nebo Excel do místní cesty nebo vybrat několik řádků.

    • PANEL ZPRÁVY : Když vyberete číslo řádku , přejde na první řádek spuštěného skriptu.

Odesílání interaktivních dotazů PySpark

Předpoklad pro interaktivní Pyspark

Všimněte si zde, že verze rozšíření Jupyter (ms-jupyter): v2022.1.1001614873 a verze rozšíření Pythonu (ms-python): v2021.12.1559732655, Python 3.6.x a 3.7.x jsou vyžadovány pro interaktivní dotazy PySpark hdInsight.

Uživatelé můžou PySpark interaktivně provádět následujícími způsoby.

Použití interaktivního příkazu PySpark v souboru PY

Pomocí interaktivního příkazu PySpark odešlete dotazy takto:

  1. Znovu otevřete složku HDexample, která byla popsána dříve, pokud je zavřená.

  2. Vytvořte nový soubor HelloWorld.py podle předchozích kroků.

  3. Zkopírujte a vložte následující kód do souboru skriptu:

    from operator import add
    from pyspark.sql import SparkSession 
    spark = SparkSession.builder \ 
          .appName('hdisample') \ 
          .getOrCreate() 
    lines = spark.read.text("/HdiSamples/HdiSamples/FoodInspectionData/README").rdd.map(lambda r: r[0])
    counters = lines.flatMap(lambda x: x.split(' ')) \
                 .map(lambda x: (x, 1)) \
                 .reduceByKey(add)
    
    coll = counters.collect()
    sortedCollection = sorted(coll, key = lambda r: r[1], reverse = True)
    
    for i in range(0, 5):
         print(sortedCollection[i])
    
  4. Výzva k instalaci jádra PySpark/Synapse Pyspark se zobrazí v pravém dolním rohu okna. Kliknutím na tlačítko Nainstalovat můžete pokračovat pro instalace PySpark/Synapse Pyspark. Nebo můžete kliknout na tlačítko Přeskočit a tento krok přeskočit.

    Screenshot shows an option to skip the PySpark installation.

  5. Pokud ho budete potřebovat nainstalovat později, můžete přejít na Předvolbu> souborů>Nastavení a pak zrušit zaškrtnutí políčka HDInsight: Povolit přeskočit instalaci Pyspark v nastavení.

    Screenshot shows the option to Enable Skip Pyspark Installation.

  6. Pokud je instalace úspěšná v kroku 4, zobrazí se v pravém dolním rohu okna okno se zprávou "PySpark nainstalováno úspěšně". Kliknutím na tlačítko Znovu načíst okno.

    pyspark installed successfully.

  7. Na řádku nabídek přejděte na Paletu příkazů zobrazení>... nebo použijte klávesovou zkratku Shift + Ctrl + P a zadejte Python: Vyberte interpret a spusťte Jupyter Server.

    select interpreter to start jupyter server.

  8. Níže vyberte možnost Pythonu.

    choose the below option.

  9. Na řádku nabídek přejděte na Paletu příkazů zobrazení>... nebo použijte klávesovou zkratku Shift + Ctrl + P a zadejte Vývojář: Znovu načíst okno.

    reload window.

  10. Připojení ke svému účtu Azure nebo pokud jste to ještě neudělali, propojte cluster.

  11. Vyberte veškerý kód, klikněte pravým tlačítkem na editor skriptů a vyberte Spark: PySpark Interactive / Synapse: Pyspark Interactive a odešlete dotaz.

    pyspark interactive context menu.

  12. Vyberte cluster, pokud jste nezadali výchozí cluster. Po chvíli se interaktivní výsledky Pythonu zobrazí na nové kartě. Kliknutím na PySpark přepněte jádro na PySpark / Synapse Pyspark a kód se úspěšně spustí. Pokud chcete přepnout na jádro Synapse Pyspark, doporučujeme zakázat automatické nastavení na webu Azure Portal. V opačném případě může trvat delší dobu, než se cluster probudí a poprvé se použije jádro Synapse. Pokud nástroje také umožňují odeslat blok kódu místo celého souboru skriptu pomocí místní nabídky:

    pyspark interactive python interactive window.

  13. Zadejte %%info a stisknutím shift+Enter zobrazte informace o úloze (volitelné):

    pyspark interactive view job information.

Nástroj také podporuje dotaz Spark SQL :

pyspark interactive view result.

Provádění interaktivních dotazů v souboru PY pomocí komentáře #%%

  1. Přidejte #%% před kód Py, abyste získali prostředí poznámkového bloku.

    add #%%.

  2. Klikněte na Spustit buňku. Po chvíli se interaktivní výsledky Pythonu zobrazí na nové kartě. Kliknutím na PySpark přepněte jádro na PySpark/Synapse PySpark a potom znovu klikněte na Spustit buňku a kód se úspěšně spustí.

    run cell results.

Využití podpory IPYNB z rozšíření Pythonu

  1. Poznámkový blok Jupyter můžete vytvořit příkazem z palety příkazů nebo vytvořením nového souboru .ipynb ve vašem pracovním prostoru. Další informace najdete v tématu Práce s poznámkovými bloky Jupyter v editoru Visual Studio Code.

  2. Klikněte na tlačítko Spustit buňku , postupujte podle pokynů k nastavení výchozího fondu Spark (důrazně doporučujeme nastavit výchozí cluster nebo fond pokaždé před otevřením poznámkového bloku) a pak znovu načíst okno.

    set the default spark pool and reload.

  3. Kliknutím na PySpark přepněte jádro na PySpark / Synapse Pyspark a po chvíli se zobrazí výsledek.

    run ipynb results.

Poznámka:

U chyby instalace Synapse PySpark, protože její závislost už nebude udržována jiným týmem, už nebude zachována. Pokud se pokoušíte používat Synapse Pyspark interactive, přepněte místo toho na azure Synapse Analytics . A je to dlouhodobá změna.

Odeslání dávkové úlohy PySpark

  1. Znovu otevřete složku HDexample, kterou jste probrali dříve, pokud je zavřená.

  2. Pomocí předchozích kroků vytvořte nový soubor BatchFile.py.

  3. Zkopírujte a vložte následující kód do souboru skriptu:

    from __future__ import print_function
    import sys
    from operator import add
    from pyspark.sql import SparkSession
    if __name__ == "__main__":
        spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .getOrCreate()
    
        lines = spark.read.text('/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv').rdd.map(lambda r: r[0])
        counts = lines.flatMap(lambda x: x.split(' '))\
                   .map(lambda x: (x, 1))\
                    .reduceByKey(add)
        output = counts.collect()
        for (word, count) in output:
            print("%s: %i" % (word, count))
        spark.stop()
    
  4. Připojení ke svému účtu Azure nebo pokud jste to ještě neudělali, propojte cluster.

  5. Klikněte pravým tlačítkem myši na editor skriptů a vyberte Spark: PySpark Batch nebo Synapse: PySpark Batch*.

  6. Výběrem fondu clusteru nebo Sparku odešlete úlohu PySpark do:

    Submit Python job result output.

Po odeslání úlohy Pythonu se v okně VÝSTUP v editoru Visual Studio Code zobrazí protokoly odeslání. Zobrazí se také adresa URL uživatelského rozhraní Sparku a adresa URL uživatelského rozhraní Yarn. Pokud odešlete dávkovou úlohu do fondu Apache Sparku, zobrazí se také adresa URL uživatelského rozhraní historie Sparku a adresa URL uživatelského rozhraní aplikace úloh Sparku. Adresu URL můžete otevřít ve webovém prohlížeči a sledovat stav úlohy.

Integrace se zprostředkovatelem identit HDInsight (HIB)

Připojení do clusteru HDInsight ESP pomocí zprostředkovatele ID (HIB)

Pokud se chcete připojit ke clusteru HDInsight ESP pomocí zprostředkovatele ID (HIB), můžete se přihlásit k předplatnému Azure podle normálních kroků. Po přihlášení se v Azure Exploreru zobrazí seznam clusterů. Další pokyny najdete v tématu Připojení ke clusteru HDInsight.

Spuštění úlohy Hive/PySpark v clusteru HDInsight ESP se zprostředkovatelem ID (HIB)

Pro spuštění úlohy Hive můžete postupovat podle normálních kroků a odeslat úlohu do clusteru HDInsight ESP s zprostředkovatelem ID (HIB). Další pokyny najdete v tématu Odesílání interaktivních dotazů Hive a dávkových skriptů Hive.

Pro spuštění interaktivní úlohy PySpark můžete úlohu odeslat do clusteru HDInsight ESP pomocí zprostředkovatele ID (HIB). Projděte si interaktivní dotazy PySpark.

Pro spuštění dávkové úlohy PySpark můžete úlohu odeslat do clusteru HDInsight ESP pomocí zprostředkovatele ID (HIB). Další pokyny najdete v části Odeslání dávkové úlohy PySpark.

Konfigurace Apache Livy

Podporuje se konfigurace Apache Livy . Můžete ho nakonfigurovat v souboru . VSCode\settings.json soubor ve složce pracovního prostoru. Konfigurace Livy v současné době podporuje pouze skript Pythonu. Další informace naleznete v tématu Livy README.

Aktivace konfigurace Livy

Metoda 1

  1. V řádku nabídek přejděte na Předvolby> souborů>Nastavení.
  2. Do pole Nastavení hledání zadejte odeslání úlohy HDInsight: Livy Conf.
  3. Vyberte Upravit v settings.json pro příslušný výsledek hledání.

Metoda 2

Odešlete soubor a všimněte si, že se .vscode složka automaticky přidá do pracovní složky. Konfiguraci Livy zobrazíte tak , že vyberete .vscode\settings.json.

  • Nastavení projektu:

    HDInsight Apache Livy configuration.

    Poznámka:

    Pro nastavení driverMemory a executorMemory nastavte hodnotu a jednotku. Příklad: 1g nebo 1024m.

  • Podporované konfigurace Livy:

    POST /batches

    Text požadavku

    name description type
    soubor Soubor obsahující aplikaci, která se má provést Cesta (povinné)
    proxyUser Uživatel, který se při spuštění úlohy zosobní String
    Classname Hlavní třída Application Java/Spark String
    args Argumenty příkazového řádku pro aplikaci Seznam řetězců
    Sklenice Jars, které se mají použít v této relaci Seznam řetězců
    pyFiles Soubory Pythonu, které se mají použít v této relaci Seznam řetězců
    files Soubory, které se mají použít v této relaci Seznam řetězců
    driverMemory Množství paměti, které se má použít pro proces ovladače String
    driverCores Počet jader, která se mají použít pro proces ovladače Int
    executorMemory Množství paměti pro jednotlivé procesy exekutoru String
    executorCores Počet jader, která se mají použít pro každý exekutor Int
    numExecutors Počet spuštění exekutorů pro tuto relaci Int
    Archiv Archivy, které se mají použít v této relaci Seznam řetězců
    fronta Název fronty YARN, do které se má odeslat String
    name Název této relace String
    Conf Vlastnosti konfigurace Sparku Mapa klíče=val

    Text odpovědi: Vytvořený objekt Batch.

    name description type
    ID ID relace Int
    appId ID aplikace této relace String
    appInfo Podrobné informace o aplikaci Mapa klíče=val
    protokol Řádky protokolu Seznam řetězců
    state Stav dávky String

    Poznámka:

    Přiřazená konfigurace Livy se při odeslání skriptu zobrazí v podokně výstupu.

Integrace se službou Azure HDInsight z Exploreru

Tabulku Hive ve svých clusterech můžete zobrazit ve verzi Preview přímo prostřednictvím Průzkumníka Azure HDInsight :

  1. Připojení k vašemu účtu Azure, pokud jste to ještě neudělali.

  2. Vyberte ikonu Azure ze sloupce úplně vlevo.

  3. V levém podokně rozbalte AZURE: HDINSIGHT. Jsou uvedena dostupná předplatná a clustery.

  4. Rozbalením clusteru zobrazíte databázi metadat Hive a schéma tabulky.

  5. Klikněte pravým tlačítkem myši na tabulku Hive. Příklad: hivesampletable. Vyberte Náhled.

    Spark & Hive for Visual Studio Code preview hive table.

  6. Otevře se okno Náhled výsledků :

    Spark & Hive for Visual Studio Code preview results window.

  • PANEL VÝSLEDKY

    Celý výsledek můžete uložit jako soubor CSV, JSON nebo Excel do místní cesty nebo vybrat několik řádků.

  • Panel ZPRÁVY

    1. Pokud je počet řádků v tabulce větší než 100, zobrazí se následující zpráva: Prvních 100 řádků se zobrazí pro tabulku Hive.

    2. Pokud je počet řádků v tabulce menší nebo roven 100, zobrazí se následující zpráva: "Pro tabulku Hive se zobrazí 60 řádků".

    3. Pokud v tabulce není žádný obsah, zobrazí se následující zpráva: "0 rows are displayed for Hive table."

      Poznámka:

      V Linuxu nainstalujte xclip, abyste povolili data copy-table.

      Spark & Hive for Visual Studio code in Linux.

Další funkce

Spark &Hive pro Visual Studio Code také podporuje následující funkce:

  • Automatické dokončování IntelliSense Návrhy se zobrazí pro klíčová slova, metody, proměnné a další programovací prvky. Různé ikony představují různé typy objektů:

    Spark & Hive Tools for Visual Studio Code IntelliSense objects.

  • Značka chyby IntelliSense Služba jazyka podtrhuje chyby úprav ve skriptu Hive.

  • Zvýrazní se syntaxe. Služba jazyka používá různé barvy k rozlišení proměnných, klíčových slov, datového typu, funkcí a dalších programovacích prvků:

    Spark & Hive Tools for Visual Studio Code syntax highlights.

Role jen pro čtení

Uživatelé, kteří mají přiřazenou roli jen pro čtení clusteru, nemůžou odesílat úlohy do clusteru HDInsight ani zobrazit databázi Hive. Požádejte správce clusteru, aby vaši roli upgradoval na operátora clusteru HDInsight na webu Azure Portal. Pokud máte platné přihlašovací údaje Ambari, můžete cluster propojit ručně pomocí následujících doprovodných materiálů.

Procházení clusteru HDInsight

Když vyberete Průzkumníka Azure HDInsight a rozbalíte cluster HDInsight, zobrazí se výzva k propojení clusteru, pokud máte pro cluster roli jen pro čtení. Pomocí následující metody se připojte ke clusteru pomocí přihlašovacích údajů Ambari.

Odeslání úlohy do clusteru HDInsight

Při odesílání úlohy do clusteru HDInsight se zobrazí výzva k propojení clusteru, pokud jste v roli jen pro čtení clusteru. Pomocí následujících kroků propojte cluster pomocí přihlašovacích údajů Ambari.

  1. Zadejte platné uživatelské jméno Ambari.

  2. Zadejte platné heslo.

    Spark & Hive Tools for Visual Studio Code Username.

    Spark & Hive Tools for Visual Studio Code Password.

    Poznámka:

    Můžete použít Spark / Hive: List Cluster ke kontrole propojeného clusteru:

    Spark & Hive Tools for Visual Studio Code Reader Linked.

Azure Data Lake Storage Gen2

Procházení účtu Data Lake Storage Gen2

Výběrem průzkumníka Azure HDInsight rozbalte účet Data Lake Storage Gen2. Pokud váš účet Azure nemá přístup k úložišti Gen2, zobrazí se výzva k zadání přístupového klíče úložiště. Po ověření přístupového klíče se účet Data Lake Storage Gen2 automaticky rozbalí.

Odesílání úloh do clusteru HDInsight pomocí Data Lake Storage Gen2

Odešlete úlohu do clusteru HDInsight pomocí Data Lake Storage Gen2. Pokud váš účet Azure nemá přístup k úložišti Gen2, zobrazí se výzva k zadání přístupového klíče k úložišti Úložiště Gen2. Po ověření přístupového klíče se úloha úspěšně odešle.

Spark & Hive Tools for Visual Studio Code AccessKey.

Poznámka:

Přístupový klíč pro účet úložiště můžete získat z webu Azure Portal. Další informace najdete v tématu Správa přístupových klíčů účtu úložiště.

  1. Na řádku nabídek přejděte na Paletu příkazů Zobrazení>a zadejte Spark / Hive: Odpojte cluster.

  2. Vyberte cluster, který chcete odpojit.

  3. Pro ověření se podívejte do zobrazení VÝSTUP .

Odhlásit se

Na řádku nabídek přejděte na Paletu příkazů Zobrazení>a zadejte Azure: Odhlásit se.

Známé problémy

Chyba instalace Synapse PySpark

U chyby instalace Synapse PySpark, protože její závislost už nebude udržována jiným týmem, už se neudržuje. Pokud se pokoušíte používat Synapse Pyspark interactive, použijte místo toho Azure Synapse Analytics . A je to dlouhodobá změna.

synapse pyspark installation error.

Další kroky

Video, které ukazuje použití Sparku a Hivu pro Visual Studio Code, najdete v tématu Spark &Hive pro Visual Studio Code.