HDInsight'ta Apache Spark kümesi için bilinen sorunlar

Bu belge, HDInsight Spark genel önizlemesi için bilinen tüm sorunları izler.

Apache Livy etkileşimli oturum sızdırıyor

Apache Livy etkileşimli bir oturumla yeniden başlatıldığında (Apache Ambari'den veya baş düğüm 0 sanal makine yeniden başlatma nedeniyle) etkileşimli bir iş oturumu sızdırılır. Sonuç olarak, yeni işler Kabul Edildi durumunda takılabilir.

Sorun Giderme:

Sorunu geçici olarak çözmek için aşağıdaki yordamı kullanın:

  1. Ssh baş düğümüne. Bilgi için bkz. HDInsight ile SSH kullanma.

  2. Livy aracılığıyla başlatılan etkileşimli işlerin uygulama kimliklerini bulmak için aşağıdaki komutu çalıştırın.

    yarn application –list
    

    İşler açık adlar belirtilmemiş bir Livy etkileşimli oturumuyla başlatıldıysa, varsayılan iş adları Livy olacaktır. Jupyter Notebook tarafından başlatılan Livy oturumu için iş adı ile remotesparkmagics_*başlar.

  3. Bu işleri sonlandırmak için aşağıdaki komutu çalıştırın.

    yarn application –kill <Application ID>
    

Yeni işler çalışmaya başlar.

Spark Geçmiş Sunucusu başlatılamadı

Spark Geçmiş Sunucusu, bir küme oluşturulduktan sonra otomatik olarak başlatılmaz.

Sorun Giderme:

Ambari'den geçmiş sunucusunu el ile başlatın.

Spark günlük dizininde izin sorunu

hdiuser, spark-submit kullanarak bir iş gönderirken aşağıdaki hatayı alır:

java.io.FileNotFoundException: /var/log/spark/sparkdriver_hdiuser.log (Permission denied)

Sürücü kaydı da yazılmıştır.

Sorun Giderme:

  1. Hadoop grubuna hdiuser ekleyin.
  2. Küme oluşturulduktan sonra /var/log/spark üzerinde 777 izin sağlayın.
  3. Ambari kullanarak spark günlüğü konumunu 777 izinlerine sahip bir dizin olacak şekilde güncelleştirin.
  4. spark-submit komutunu sudo olarak çalıştırın.

Spark-Phoenix bağlayıcısı desteklenmiyor

HDInsight Spark kümeleri Spark-Phoenix bağlayıcısını desteklemez.

Sorun Giderme:

Bunun yerine Spark-HBase bağlayıcısını kullanmanız gerekir. Yönergeler için bkz. Spark-HBase bağlayıcısını kullanma.

Jupyter Notebooks ile ilgili bazı bilinen sorunlar aşağıda verilmiştir.

Dosya adlarında ASCII olmayan karakterler içeren not defterleri

Jupyter Notebook dosya adlarında ASCII olmayan karakterler kullanmayın. ASCII olmayan bir dosya adına sahip jupyter kullanıcı arabirimi aracılığıyla bir dosyayı karşıya yüklemeye çalışırsanız, herhangi bir hata iletisi olmadan başarısız olur. Jupyter dosyayı karşıya yüklemenize izin vermez, ancak görünür bir hata da oluşturmaz.

Daha büyük boyutlu not defterleri yüklenirken hata oluştu

Boyutu daha büyük not defterlerini yüklerken bir hata Error loading notebook görebilirsiniz.

Sorun Giderme:

Bu hatayı alırsanız, bu verilerinizin bozuk veya kayıp olduğu anlamına gelmez. Not defterleriniz hala içinde disktedir /var/lib/jupyterve bunlara erişmek için kümeye SSH ekleyebilirsiniz. Bilgi için bkz. HDInsight ile SSH kullanma.

Kümeye SSH kullanarak bağlandıktan sonra, not defterinizdeki önemli verilerin kaybını önlemek için yedek olarak not defterlerinizi kümenizden yerel makinenize (SCP veya WinSCP kullanarak) kopyalayabilirsiniz. Ardından ağ geçidinden geçmeden Jupyter'e erişmek için 8001 numaralı bağlantı noktasında baş düğümünüzün içine SSH tüneli oluşturabilirsiniz. Buradan, not defterinizin çıkışını temizleyebilir ve not defterinin boyutunu en aza indirmek için yeniden kaydedebilirsiniz.

Bu hatanın gelecekte oluşmasını önlemek için bazı en iyi yöntemleri izlemeniz gerekir:

  • Not defteri boyutunu küçük tutmak önemlidir. Spark işlerinizden Jupyter'a geri gönderilen tüm çıkışlar not defterinde kalıcı olarak kalır. Büyük RDD'lerde veya veri çerçevelerinde çalışmaktan .collect() kaçınmak için Jupyter ile genel olarak en iyi uygulamadır; bunun yerine, bir RDD'nin içeriğine göz atmak istiyorsanız çalıştırmayı .take() veya .sample() çıkışınızın çok büyük olmamasını sağlayın.
  • Ayrıca, not defterini kaydettiğinizde boyutu küçültmek için tüm çıkış hücrelerini temizleyin.

Not defterinin ilk başlatılması beklenenden uzun sürüyor

Spark magic kullanan Jupyter Notebook'daki ilk kod deyimi bir dakikadan fazla sürebilir.

Açıklama:

Bunun nedeni, ilk kod hücresi çalıştırıldığında olmasıdır. Arka planda bu işlem oturum yapılandırmasını başlatır ve Spark, SQL ve Hive bağlamları ayarlanır. Bu bağlamlar ayarlandıktan sonra ilk deyim çalıştırılır ve bu, deyimin tamamlanmasının uzun sürdüğü izlenimini verir.

Oturumu oluştururken zaman aşımını Jupyter Notebook

Spark kümesinin kaynakları tükendiyse, Jupyter Notebook Spark ve PySpark çekirdekleri oturumu oluşturmaya çalışırken zaman aşımına uyacaktır.

Azaltıcı etken:

  1. Spark kümenizdeki bazı kaynakları şu şekilde boşaltın:

    • Kapat ve Durdur menüsüne giderek veya not defteri gezgininde Kapat'a tıklayarak diğer Spark not defterlerini durdurun.
    • YARN'dan diğer Spark uygulamalarını durdurma.
  2. Başlatmaya çalıştığınız not defterini yeniden başlatın. Şimdi oturum oluşturmak için yeterli kaynak kullanılabilir olmalıdır.

Ayrıca bkz.

Senaryolar

Uygulamaları oluşturma ve çalıştırma

Araçlar ve uzantılar

Kaynakları yönetme