Aracılığıyla paylaş


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

Not

31 Ocak 2025'te AKS'de Azure HDInsight'ı kullanımdan kaldırmaya devam edeceğiz. 31 Ocak 2025'den önce, iş yüklerinizin aniden sonlandırılmasını önlemek için iş yüklerinizi Microsoft Fabric'e veya eşdeğer bir Azure ürününe geçirmeniz gerekir. Aboneliğinizdeki kalan kümeler durdurulur ve konaktan kaldırılır.

Kullanımdan kaldırma tarihine kadar yalnızca temel destek sağlanacaktır.

Önemli

Bu özellik şu anda önizlemededir. 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 AskHDInsight'ta ayrıntıları içeren bir istek gönderin ve Azure HDInsight Topluluğu hakkında daha fazla güncelleştirme 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 kullanma
  • ssh kullanma (spark-submit)

Jupyter kullanma

Önkoşullar

AKS üzerinde 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şturma

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

    Jupyter not defterini seçmenin 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ü.

    adlı Untitled(Untitled.ipynb)yeni bir not defteri oluşturulur ve açılır.

    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. Belirtik şekilde bir oturum 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 hakkında daha fazla denetim için buraya 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 defterine aşağıdaki kodu Jupyter Not Defteri'nin boş bir hücresine yapıştırın ve ardından SHIFT + ENTER tuşlarına basarak kodu çalıştırın.

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

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

Not Defterini Kaydetme

  1. Not defteri menü çubuğundan Dosya > Kaydetme 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 defterlerini kaydetme işleminin 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ı yapmak ve Zeppelin sayfasını açmak ister.

    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 üst bilgisinin bağlı bir durum 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. Kod parçacığını çalıştırmak için paragrafın Yürüt düğmesini seçin. Paragrafın sağ köşesindeki durum HAZIR, BEKLENİYOR, ÇALıŞTıRILIYOR durumundan TAMAMLANDı 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. Komutu girin :wq
  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ç yapılacağını 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.

Başvuru

  • Apache, Apache Spark, Spark ve ilişkili açık kaynak proje adları Apache Software Foundation'ın (ASF) ticari markalarıdır.