Aracılığıyla paylaş


AKS üzerinde HDInsight'ta Apache Spark™ kümesinde işleri gönderme ve yönetme

Önemli

AKS üzerinde Azure HDInsight 31 Ocak 2025'te kullanımdan kaldırıldı. "hakkında daha fazla bilgi edinmek için bu duyuru'i inceleyin."

İş yüklerinizin aniden sonlandırılmasını önlemek için iş yüklerinizi Microsoft Fabric veya eşdeğer bir Azure ürününe geçirmeniz gerekir.

Önemli

Bu özellik şu anda önizleme aşamasındadır. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları beta, önizleme aşamasında olan veya henüz genel kullanıma sunulmamış Azure özellikleri için geçerli olan daha fazla yasal hüküm içerir. Bu belirli önizleme hakkında bilgi için bkz. AKS üzerinde Azure HDInsight önizleme bilgileri. Sorular veya özellik önerileri için lütfen ayrıntıları belirterek AskHDInsight üzerinde bir istek gönderin ve Azure HDInsight Communityhakkında daha fazla güncelleme için bizi takip edin.

Küme oluşturulduktan sonra, kullanıcı işleri göndermek ve yönetmek için çeşitli arabirimleri kullanabilir

  • Jupyter kullanma
  • Zeppelin'i kullanma
  • ssh kullanarak (spark-submit)

Jupyter kullanma

Önkoşullar

AKS ile HDInsight üzerinde Apache Spark™ kümesi. Daha fazla bilgi için bkz. Apache Spark kümesi oluşturma.

Jupyter Notebook, çeşitli programlama dillerini destekleyen etkileşimli bir not defteri ortamıdır.

Jupyter Notebook oluşturun

  1. Apache Spark™ kümesi sayfasına gidin ve Genel Bakış sekmesini açın. Jupyter'a tıklayın, sizden kimliğini doğrulamanızı ve Jupyter web sayfasını açmanızı ister.

    Jupyter not defterini seçme ekran görüntüsü.

  2. Jupyter web sayfasında Yeni > PySpark'ı seçerek not defteri oluşturun.

    Yeni PySpark sayfasının ekran görüntüsü.

    Untitled(Untitled.ipynb)adıyla oluşturulan ve açılan yeni bir not defteri.

    Not

    Not defteri oluşturmak için PySpark veya Python 3 çekirdeğini kullanarak ilk kod hücresini çalıştırdığınızda spark oturumu sizin için otomatik olarak oluşturulur. Oturumu açıkça oluşturmanız gerekmez.

  3. Aşağıdaki kodu Jupyter Not Defteri'nin boş bir hücresine yapıştırın ve kodu çalıştırmak için SHIFT + ENTER tuşlarına basın. Jupyter'da daha fazla denetim için buradaki bakın.

    İçindekiler içeren PySpark sayfasının ekran görüntüsü.

    %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. Maaş ve yaş değerlerini X ve Y eksenleri olarak içeren bir grafik çizme

  5. Aynı not defterinde, aşağıdaki kodu Jupyter Not Defteri'nin boş bir hücresine yapıştırın ve ardından kodu çalıştırmak için SHIFT + ENTER basın.

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

    Grafik çıktısının ekran görüntüsü.

Not Defterini Kaydet

  1. Not defteri menü çubuğundan Dosya > Kaydet ve Denetim Noktası'na gidin.

  2. Küme kaynaklarını serbest bırakmak için not defterini kapatın: Not defteri menü çubuğundan Dosya > Kapat ve Durdur'a gidin. Ayrıca, örnekler klasörünün altındaki not defterlerinden herhangi birini de çalıştırabilirsiniz.

    Not defterlerinin nasıl kaydedileceklerini gösteren ekran görüntüsü.

Apache Zeppelin not defterlerini kullanma

AKS üzerinde HDInsight'taki Apache Spark kümeleri, Apache Zeppelin not defterlerini içerir. Apache Spark işlerini çalıştırmak için not defterlerini kullanın. Bu makalede, AKS kümesinde HDInsight üzerinde Zeppelin not defterini kullanmayı öğreneceksiniz.

Önkoşullar

AKS üzerinde HDInsight üzerinde apache Spark kümesi. Yönergeler için bkz. Apache Spark kümesi oluşturma.

Apache Zeppelin not defterini başlatma

  1. Apache Spark kümesine Genel Bakış sayfasına gidin ve Küme panolarından Zeppelin not defteri'ni seçin. Kimlik doğrulaması yapılması ve Zeppelin sayfasının açılması isteniyor.

    Zeppelin'i seçme ekran görüntüsü.

  2. Yeni bir not defteri oluşturun. Üst bilgi bölmesinde Not Defteri > Yeni not oluştur'a gidin. Not defteri başlığının bağlı olduğunu gösterdiğinden emin olun. Sağ üst köşedeki yeşil noktayı belirtir.

    Zeppelin not defterinin nasıl oluşturulacağını gösteren ekran görüntüsü.

  3. Zeppelin Not Defteri'nde aşağıdaki kodu çalıştırın:

    %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. Paragraf için kod parçacığını çalıştırmak amacıyla Yürüt düğmesini seçin. Paragrafın sağ köşesindeki durum HAZIR, BEKLENİYOR, ÇALIŞIYOR durumlarından TAMAMLANDI durumuna ilerlemelidir. Çıkış, aynı paragrafın en altında gösterilir. Ekran görüntüsü aşağıdaki görüntüye benzer:

    Zeppelin not defterini çalıştırma işleminin ekran görüntüsü.

    Çıktı:

    Zeppelin not defteri çıkışının ekran görüntüsü.

Spark gönderme işlerini kullanma

  1. Aşağıdaki '#vim samplefile.py' komutunu kullanarak bir dosya oluşturun

  2. Bu komut vim dosyasını açar

  3. Aşağıdaki kodu vim dosyasına yapıştırın

    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. Dosyayı aşağıdaki yöntemle kaydedin.

    1. Kaçış düğmesine basma
    2. Komut :wq girin
  5. İşi çalıştırmak için aşağıdaki komutu çalıştırın.

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

    Spark gönderme işini çalıştırmayı gösteren ekran görüntüsü.

AKS üzerinde HDInsight'ta Apache Spark kümesindeki sorguları izleme

Spark Geçmişi kullanıcı arabirimi

  1. Genel bakış sekmesinden Spark Geçmişi Sunucusu kullanıcı arabirimine tıklayın.

    spark kullanıcı arabirimini gösteren ekran görüntüsü .

  2. Aynı uygulama kimliğini kullanarak kullanıcı arabiriminden son çalıştırmayı seçin.

    spark kullanıcı arabirimini çalıştırmayı gösteren ekran görüntüsü .

  3. Spark Geçmişi sunucusu kullanıcı arabiriminde Yönlendirilmiş Döngüsel Graf döngülerini ve işin aşamalarını görüntüleyin.

    DAG döngüsünün ekran görüntüsü.

Livy oturum kullanıcı arabirimi

  1. Livy oturum kullanıcı arabirimini açmak için tarayıcınıza aşağıdaki komutu yazın https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Livy oturum kullanıcı arabirimini açma ekran görüntüsü.

  2. Günlükler altındaki sürücü seçeneğine tıklayarak sürücü günlüklerini görüntüleyin.

yarn kullanıcı arabirimi

  1. Genel Bakış Sekmesinde Yarn'a tıklayın ve Yarn kullanıcı arabirimini açın.

    Yarn Kullanıcı Arabirimi'nin nasıl seçileceğini gösteren ekran görüntüsü.

  2. Yakın zamanda çalıştırdığınız işi aynı uygulama kimliğiyle izleyebilirsiniz.

  3. İşin ayrıntılı günlüklerini görüntülemek için Yarn'da Uygulama Kimliği'ne tıklayın.

    Günlükleri Görüntüle.

Referans