Azure HDInsight kullanarak Apache Spark sorunlarını giderme

Apache Ambari'de yüklerle çalışırken karşılaşılan en Apache Spark ve bunların çözümlerini öğrenin.

Kümeler üzerinde Apache Ambari kullanarak bir Apache Spark uygulamasını nasıl yapılandırabilirim?

Spark yapılandırma değerleri, bir uygulama özel durumuyla Apache Spark yardımcı OutofMemoryError olabilir. Aşağıdaki adımlarda, aşağıdaki örneklerde varsayılan Spark Azure HDInsight:

  1. Küme kimlik bilgilerinizle Ambari'de https://CLUSTERNAME.azurehdidnsight.net oturum açma. İlk ekranda bir genel bakış panosu görüntülenir. HDInsight 3.6 ve 4.0 arasında küçük farklılıklar vardır.

  2. Spark2 Yapılandırmaları'ne > gidin.

    Yapılandırmalar sekmesini seçin

  3. Yapılandırma listesinde Custom-spark2-defaults öğesini seçin ve genişletin.

  4. ayarlamanız gereken değer ayarını (örneğin, spark.exe.memory) seçin. Bu durumda 9728m değeri çok yüksektir.

    Custom-spark-defaults öğesini seçin

  5. Değeri önerilen ayara ayarlayın. Bu ayar için 2048m değeri önerilir.

  6. Değeri kaydedin ve ardından yapılandırmayı kaydedin. Kaydet’i seçin.

    Değeri 2048m olarak değiştirme

    Yapılandırma değişiklikleri hakkında bir not yazın ve Kaydet'i seçin.

    Yaptığınız değişikliklerle ilgili bir not girin

    Herhangi bir yapılandırmanın dikkat çekmesi gerekirse size bildirilecek. Öğeleri not edin ve ardından Yine de Devam'ı seçin.

    Yine de Devam'ı seçin

  7. Bir yapılandırma kaydedilen her zaman hizmeti yeniden başlatmanız istenir. Yeniden Başlat'ı seçin.

    Yeniden başlat'ı seçin

    Yeniden başlatmayı onaylayın.

    Hepsini Yeniden Başlat'ı Onayla'ya tıklayın

    Çalışan işlemleri gözden geçirsiniz.

    Çalışan işlemleri gözden geçirme

  8. Yapılandırmalar ekebilirsiniz. Yapılandırma listesinde Custom-spark2-defaults seçeneğini ve ardından Özellik Ekle'yi seçin.

    Özellik ekle'yi seçin

  9. Yeni bir özellik tanımlayın. Veri türü gibi belirli ayarlar için bir iletişim kutusu kullanarak tek bir özellik tanımlayabilirsiniz. Veya satır başına bir tanım kullanarak birden çok özellik tanımlayabilirsiniz.

    Bu örnekte spark.driver.memory özelliği 4g değeriyle tanımlanır.

    Yeni özellik tanımlama

  10. Yapılandırmayı kaydedin ve ardından 6. ve 7. adımlarda açıklandığı gibi hizmeti yeniden başlatın.

Bu değişiklikler küme genelindedir, ancak Spark işini gönderdiğinizde geçersiz kılınabilir.

Nasıl yaparım? kümelerde bir Apache Spark kullanarak bir Jupyter Notebook yapılandırıyor musunuz?

Yapılandırmanın ilk hücresinde ,Jupyter Notebook sonra geçerli JSON biçiminde Spark yapılandırmalarını belirtin. Gerçek değerleri gereken şekilde değiştirin:

Yapılandırma ekleme

Kümeler üzerinde Apache Livy kullanarak bir Apache Spark uygulamasını nasıl yapılandırabilirim?

cURL gibi bir REST istemcisi kullanarak Spark uygulamasını Livy'ye gönderin. Aşağıdakine benzer bir komut kullanın. Gerçek değerleri gereken şekilde değiştirin:

curl -k --user 'username:password' -v -H 'Content-Type: application/json' -X POST -d '{ "file":"wasb://container@storageaccountname.blob.core.windows.net/example/jars/sparkapplication.jar", "className":"com.microsoft.spark.application", "numExecutors":4, "executorMemory":"4g", "executorCores":2, "driverMemory":"8g", "driverCores":4}'  

Kümeler üzerinde spark-submit kullanarak bir Apache Spark uygulamasını nasıl yapılandırabilirim?

Aşağıdakine benzer bir komut kullanarak spark-shell'i başlatma. Yapılandırmaların gerçek değerini gereken şekilde değiştirin:

spark-submit --master yarn-cluster --class com.microsoft.spark.application --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4 /home/user/spark/sparkapplication.jar

Ek okuma

Apache Spark HDInsight kümelerde iş gönderme

Sonraki adımlar

Sorunlarınızı görmüyorsanız veya sorun çözemiyorsanız, daha fazla destek için aşağıdaki kanallardan birini ziyaret edin: