Share via


Feladatok beküldése és kezelése Apache Spark-fürtön™ a HDInsightban az AKS-en

Fontos

Ez a szolgáltatás jelenleg előzetes kiadásban elérhető. A Microsoft Azure Előzetes verzió kiegészítő használati feltételei további jogi feltételeket tartalmaznak, amelyek a bétaverzióban, előzetes verzióban vagy egyébként még nem általánosan elérhető Azure-funkciókra vonatkoznak. Erről az adott előzetes verzióról az Azure HDInsight az AKS előzetes verziójában tájékozódhat. Ha kérdése vagy funkciójavaslata van, küldjön egy kérést az AskHDInsightban a részletekkel együtt, és kövessen minket további frissítésekért az Azure HDInsight-közösségről.

A fürt létrehozása után a felhasználó különböző felületeken küldheti el és kezelheti a feladatokat a következővel:

  • a Jupyter használata
  • a Zeppelin használata
  • ssh használata (spark-submit)

A Jupyter használata

Előfeltételek

Apache Spark-fürt™ a HDInsighton az AKS-en. További információ: Apache Spark-fürt létrehozása.

A Jupyter Notebook egy interaktív notebook-környezet, amely számos programozási nyelvet támogat.

Jupyter-notebook létrehozása

  1. Lépjen az Apache Spark-fürt™ lapjára, és nyissa meg az Áttekintés lapot. Kattintson a Jupyterre, és megkéri, hogy hitelesítse és nyissa meg a Jupyter weblapot.

    Képernyőkép a Jupyter notebook kiválasztásáról.

  2. A Jupyter weblapján válassza az Új > PySpark lehetőséget jegyzetfüzet létrehozásához.

    Képernyőkép az új PySpark-oldalról.

    Új jegyzetfüzetet hozott létre és nyitott meg a névvel Untitled(Untitled.ipynb).

    Feljegyzés

    Ha a PySpark vagy a Python 3 kernel használatával hoz létre egy jegyzetfüzetet, a spark-munkamenet automatikusan létrejön Az első kódcella futtatásakor. A munkamenetet nem szükséges manuálisan létrehoznia.

  3. Illessze be a következő kódot a Jupyter Notebook üres cellájába, majd nyomja le a SHIFT + ENTER billentyűkombinációt a kód futtatásához. A Jupyter további vezérlőiről itt olvashat.

    Képernyőkép a PySpark oldalról tartalommal.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   
    #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   
    #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Diagram ábrázolása fizetéssel és korral X és Y tengelyként

  5. Ugyanabban a jegyzetfüzetben illessze be a következő kódot a Jupyter Notebook egy üres cellájába, majd nyomja le a SHIFT + ENTER billentyűkombinációt a kód futtatásához.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    
    plt.plot(age_series,salary_series)
    plt.show()
    

    Képernyőkép a gráfkimenetről.

A jegyzetfüzet mentése

  1. A jegyzetfüzet menüsávjában keresse meg a Fájl > mentése és az Ellenőrzőpont lehetőséget.

  2. Állítsa le a jegyzetfüzetet a fürterőforrások felszabadításához: a jegyzetfüzet menüsávjáról lépjen a Fájlbezárás > és a Leállítás elemre. Bármelyik jegyzetfüzetet futtathatja a Példák mappában.

    Képernyőkép a jegyzetkönyvek mentéséről.

Apache Zeppelin-jegyzetfüzetek használata

Az AKS HDInsightban futó Apache Spark-fürtöi közé tartoznak az Apache Zeppelin-jegyzetfüzetek. Apache Spark-feladatok futtatásához használja a jegyzetfüzeteket. Ebből a cikkből megtudhatja, hogyan használhatja a Zeppelin-jegyzetfüzetet egy HDInsighton az AKS-fürtön.

Előfeltételek

Apache Spark-fürt a HDInsighton az AKS-en. Útmutatásért lásd : Apache Spark-fürt létrehozása.

Apache Zeppelin-jegyzetfüzet indítása

  1. Lépjen az Apache Spark-fürt áttekintési oldalára, és válassza a Zeppelin-jegyzetfüzetet a Fürt irányítópultjai közül. Kéri a Zeppelin-oldal hitelesítését és megnyitását.

    Képernyőkép a Zeppelin kiválasztásáról.

  2. Hozzon létre új notebookot. Az élőfej panelen lépjen az Új jegyzet létrehozása jegyzetfüzetbe > . Győződjön meg arról, hogy a jegyzetfüzet fejléce csatlakoztatott állapotot jelenít meg. A jobb felső sarokban egy zöld pont látható.

    Képernyőkép a zeppelin-jegyzetfüzetek létrehozásáról.

  3. Futtassa a következő kódot a Zeppelin Notebookban:

    %livy.pyspark
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. A kódrészlet futtatásához válassza a bekezdés Lejátszás gombját. A bekezdés jobb sarkában lévő állapotnak a KÉSZ, a FÜGGŐBEN, a FUTTATÁStól a KÉSZ állapotig kell haladnia. A kimenet ugyanazon bekezdés alján jelenik meg. A képernyőkép a következő képhez hasonlóan néz ki:

    Képernyőkép a Zeppelin-jegyzetfüzet futtatásáról.

    Kimenet:

    Képernyőkép a Zeppelin-jegyzetfüzet kimenetéről.

Spark-küldési feladatok használata

  1. Fájl létrehozása a következő "#vim samplefile.py" paranccsal

  2. Ez a parancs megnyitja a vim-fájlt

  3. Illessze be a következő kódot a virtuális gép fájljába

    import pandas as pd
    import matplotlib.pyplot as plt
    
    From pyspark.sql import SparkSession
    Spark = SparkSession.builder.master('yarn').appName('SparkSampleCode').getOrCreate()
    # Initialize spark context
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
     s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Mentse a fájlt az alábbi módszerrel.

    1. Nyomja le az Escape gombot
    2. Adja meg a parancsot :wq
  5. Futtassa a következő parancsot a feladat futtatásához.

    /spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py

    Képernyőkép a Spark-küldési feladat futtatásáról.

Lekérdezések monitorozása Apache Spark-fürtön a HDInsightban az AKS-en

Spark-előzmények felhasználói felülete

  1. Kattintson a Spark History Server felhasználói felületére az Áttekintés lapon.

    Képernyőkép a Spark felhasználói felületről.

  2. Válassza ki a legutóbbi futtatásokat a felhasználói felületen ugyanazzal az alkalmazásazonosítóval.

    Képernyőkép a Spark felhasználói felületének futtatásáról.

  3. Tekintse meg az Irányított Aciklikus gráf ciklusokat és a feladat szakaszait a Spark-előzmények kiszolgáló felhasználói felületén.

    A DAG ciklus képernyőképe.

Livy-munkamenet felhasználói felülete

  1. A Livy-munkamenet felhasználói felületének megnyitásához írja be a következő parancsot a böngészőbe https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Képernyőkép a Livy-munkamenet felhasználói felületének megnyitásáról.

  2. Az illesztőprogram-naplók megtekintéséhez kattintson a naplók alatti illesztőprogram-beállításra.

Yarn felhasználói felület

  1. Az Áttekintés lapon kattintson a Yarn elemre, és nyissa meg a Yarn felhasználói felületét.

    Képernyőkép a Yarn felhasználói felületének kiválasztásáról.

  2. Nyomon követheti azt a feladatot, amelyet a közelmúltban ugyanazzal az alkalmazásazonosítóval futtatott.

  3. Kattintson a Yarn alkalmazásazonosítójára a feladat részletes naplóinak megtekintéséhez.

    Naplók megtekintése.

Referencia