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
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 web sayfasında Yeni > PySpark'ı seçerek not defteri oluşturun.
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.
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.
%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'])
Maaş ve yaş değerlerini X ve Y eksenleri olarak içeren bir grafik çizme
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()
Not Defterini Kaydet
Not defteri menü çubuğundan Dosya > Kaydet ve Denetim Noktası'na gidin.
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.
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
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.
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 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'])
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:
Çıktı:
Spark gönderme işlerini kullanma
Aşağıdaki '#vim samplefile.py' komutunu kullanarak bir dosya oluşturun
Bu komut vim dosyasını açar
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'])
Dosyayı aşağıdaki yöntemle kaydedin.
- Kaçış düğmesine basma
- Komut
:wq
girin
İşi çalıştırmak için aşağıdaki komutu çalıştırın.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
AKS üzerinde HDInsight'ta Apache Spark kümesindeki sorguları izleme
Spark Geçmişi kullanıcı arabirimi
Genel bakış sekmesinden Spark Geçmişi Sunucusu kullanıcı arabirimine tıklayın.
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ü
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.
Livy oturum kullanıcı arabirimi
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
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
Genel Bakış Sekmesinde Yarn'a tıklayın ve Yarn kullanıcı arabirimini açın.
Yakın zamanda çalıştırdığınız işi aynı uygulama kimliğiyle izleyebilirsiniz.
İşin ayrıntılı günlüklerini görüntülemek için Yarn'da Uygulama Kimliği'ne tıklayın.
Referans
- Apache, Apache Spark, Spark ve ilişkili açık kaynak proje adları, Apache Software Foundation (ASF) ticari markalarıdır.