Instalace Aplikace Jupyter Notebook do počítače a připojení k Apache Sparku ve službě HDInsight

V tomto článku se dozvíte, jak nainstalovat Jupyter Notebook s vlastními jádry PySpark (pro Python) a Apache Spark (pro Scala) pomocí magic Sparku. Poznámkový blok pak připojíte ke clusteru HDInsight.

Při instalaci Jupyteru a při připojování k Apache Sparku ve službě HDInsight se používají čtyři klíčové kroky.

  • Konfigurace clusteru Spark
  • Nainstalujte Jupyter Notebook.
  • Nainstalujte jádra PySpark a Spark pomocí magic Sparku.
  • Nakonfigurujte magic Spark pro přístup ke clusteru Spark ve službě HDInsight.

Další informace o vlastních jádrech a magii Sparku najdete v tématu Jádra dostupná pro poznámkové bloky Jupyter s clustery Apache Spark Linux ve službě HDInsight.

Požadavky

Instalace Aplikace Jupyter Notebook do počítače

Před instalací poznámkových bloků Jupyter Nainstalujte Python. Distribuce Anaconda nainstaluje jak Python, tak Jupyter Notebook.

Stáhněte si instalační program Anaconda pro vaši platformu a spusťte instalaci. Při spuštění průvodce instalací nezapomeňte vybrat možnost přidání Anaconda do proměnné PATH. Viz také instalace Jupyteru pomocí Anaconda.

Instalace magic Sparku

  1. Zadáním příkazu pip install sparkmagic==0.13.1 nainstalujte magic Spark pro clustery HDInsight verze 3.6 a 4.0. Viz také dokumentace sparkmagic.

  2. Spuštěním následujícího příkazu se ujistěte ipywidgets , že je správně nainstalovaný:

    jupyter nbextension enable --py --sys-prefix widgetsnbextension
    

Instalace jader PySpark a Spark

  1. Určete, kde sparkmagic se instaluje, zadáním následujícího příkazu:

    pip show sparkmagic
    

    Potom změňte pracovní adresář na umístění identifikované výše uvedeným příkazem.

  2. V novém pracovním adresáři zadejte jeden nebo několik následujících příkazů pro instalaci požadovaných jader:

    jádro Příkaz
    Spark jupyter-kernelspec install sparkmagic/kernels/sparkkernel
    SparkR jupyter-kernelspec install sparkmagic/kernels/sparkrkernel
    PySpark jupyter-kernelspec install sparkmagic/kernels/pysparkkernel
    PySpark3 jupyter-kernelspec install sparkmagic/kernels/pyspark3kernel
  3. Nepovinné. Zadáním následujícího příkazu povolte rozšíření serveru:

    jupyter serverextension enable --py sparkmagic
    

Konfigurace magic Sparku pro připojení ke clusteru HDInsight Spark

V této části nakonfigurujete kouzlo Sparku, které jste nainstalovali dříve, pro připojení ke clusteru Apache Spark.

  1. Spusťte prostředí Pythonu pomocí následujícího příkazu:

    python
    
  2. Informace o konfiguraci Jupyteru jsou obvykle uložené v domovském adresáři uživatelů. Zadáním následujícího příkazu identifikujte domovský adresář a vytvořte složku s názvem .sparkmagic. Vypíše se úplná cesta.

    import os
    path = os.path.expanduser('~') + "\\.sparkmagic"
    os.makedirs(path)
    print(path)
    exit()
    
  3. Ve složce .sparkmagicvytvořte soubor s názvem config.json a přidejte do ní následující fragment kódu JSON.

    {
      "kernel_python_credentials" : {
        "username": "{USERNAME}",
        "base64_password": "{BASE64ENCODEDPASSWORD}",
        "url": "https://{CLUSTERDNSNAME}.azurehdinsight.net/livy"
      },
    
      "kernel_scala_credentials" : {
        "username": "{USERNAME}",
        "base64_password": "{BASE64ENCODEDPASSWORD}",
        "url": "https://{CLUSTERDNSNAME}.azurehdinsight.net/livy"
      },
    
      "custom_headers" : {
        "X-Requested-By": "livy"
      },
    
      "heartbeat_refresh_seconds": 5,
      "livy_server_heartbeat_timeout_seconds": 60,
      "heartbeat_retry_seconds": 1
    }
    
  4. Proveďte následující úpravy souboru:

    Hodnota šablony Nová hodnota
    {USERNAME} Přihlášení ke clusteru, výchozí hodnota je admin.
    {CLUSTERDNSNAME} Název clusteru
    {BASE64ENCODEDPASSWORD} Zakódované heslo base64 pro vaše skutečné heslo. Heslo base64 můžete vygenerovat na adrese https://www.url-encode-decode.com/base64-encode-decode/.
    "livy_server_heartbeat_timeout_seconds": 60 Pokud používáte sparkmagic 0.12.7 clustery v3.5 a v3.6, pokračujte. Pokud používáte sparkmagic 0.2.3 (clustery v3.4), nahraďte ho ."should_heartbeat": true

    Úplný ukázkový soubor najdete v ukázkové config.json.

    Tip

    Prezenční signály se odesílají, aby nedošlo k úniku relací. Když počítač přejde do režimu spánku nebo je vypnutý, prezenčních signálů se neodesílají a relace se vyčistí. Pokud chcete toto chování zakázat, můžete u clusterů verze 3.4 nastavit konfiguraci livy.server.interactive.heartbeat.timeout Livy z 0 uživatelského rozhraní Ambari. Pokud u clusterů verze 3.5 nenastavíte výše uvedenou konfiguraci 3.5, relace se neodstraní.

  5. Spusťte Jupyter. Z příkazového řádku použijte následující příkaz.

    jupyter notebook
    
  6. Ověřte, že můžete použít magic Spark dostupný s jádry. Proveďte následující kroky.

    a. Vytvořte nový poznámkový blok. V pravém rohu vyberte Nový. Měli byste vidět výchozí jádro Python 2 nebo Python 3 a jádra, která jste nainstalovali. Skutečné hodnoty se můžou lišit v závislosti na vašich možnostech instalace. Vyberte PySpark.

    Available kernels in Jupyter Notebook.

    Důležité

    Po výběru možnosti Nový zkontrolujte případné chyby v prostředí. Pokud se zobrazí chyba TypeError: __init__() got an unexpected keyword argument 'io_loop' , může docházet ke známému problému s určitými verzemi tornado. Pokud ano, zastavte jádro a pak downgrade instalace Tornado pomocí následujícího příkazu: pip install tornado==4.5.3.

    b. Spusťte následující fragment kódu.

    %%sql
    SELECT * FROM hivesampletable LIMIT 5
    

    Pokud můžete úspěšně načíst výstup, otestuje se vaše připojení ke clusteru HDInsight.

    Pokud chcete aktualizovat konfiguraci poznámkového bloku pro připojení k jinému clusteru, aktualizujte config.json novou sadou hodnot, jak je znázorněno v kroku 3 výše.

Proč mám do počítače nainstalovat Jupyter?

Důvody instalace Jupyteru do počítače a jeho následné připojení ke clusteru Apache Spark ve službě HDInsight:

  • Poskytuje možnost vytvořit poznámkové bloky místně, otestovat aplikaci na spuštěném clusteru a pak nahrát poznámkové bloky do clusteru. Pokud chcete nahrát poznámkové bloky do clusteru, můžete je nahrát buď pomocí poznámkového bloku Jupyter, který je spuštěný, nebo clusteru, nebo je uložit do /HdiNotebooks složky v účtu úložiště přidruženém ke clusteru. Další informace o tom, jak jsou poznámkové bloky uložené v clusteru, najdete v tématu Kde jsou uložené poznámkové bloky Jupyter?
  • S poznámkovými bloky dostupnými místně se můžete připojit k různým clusterům Spark na základě požadavku vaší aplikace.
  • GitHub můžete použít k implementaci systému správy zdrojového kódu a správu verzí pro poznámkové bloky. Můžete také mít prostředí pro spolupráci, ve kterém může pracovat více uživatelů se stejným poznámkovým blokem.
  • S poznámkovými bloky můžete pracovat místně, aniž byste museli mít cluster. K otestování poznámkových bloků potřebujete jenom cluster, nikoli ruční správu poznámkových bloků nebo vývojového prostředí.
  • Konfigurace vlastního místního vývojového prostředí může být jednodušší než konfigurace instalace Jupyteru v clusteru. Můžete využít výhod veškerého softwaru, který jste nainstalovali místně, aniž byste museli konfigurovat jeden nebo více vzdálených clusterů.

Upozorňující

S nainstalovaným Jupyterem na místním počítači může několik uživatelů spustit stejný poznámkový blok ve stejném clusteru Spark najednou. V takové situaci se vytvoří více relací Livy. Pokud narazíte na problém a chcete ho ladit, bude to složitý úkol sledovat, která relace Livy patří danému uživateli.

Další kroky