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:
Ssh baş düğümüne. Bilgi için bkz. HDInsight ile SSH kullanma.
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.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:
- Hadoop grubuna hdiuser ekleyin.
- Küme oluşturulduktan sonra /var/log/spark üzerinde 777 izin sağlayın.
- Ambari kullanarak spark günlüğü konumunu 777 izinlerine sahip bir dizin olacak şekilde güncelleştirin.
- 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 sorunlar
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/jupyter
ve 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:
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.
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
- BI ile Apache Spark: BI araçlarıyla HDInsight'ta Spark kullanarak etkileşimli veri analizi gerçekleştirme
- Machine Learning ile Apache Spark: HVAC verilerini kullanarak bina sıcaklığını analiz etmek için HDInsight'ta Spark kullanma
- Machine Learning ile Apache Spark: Gıda denetimi sonuçlarını tahmin etmek için HDInsight'ta Spark kullanma
- HDInsight'ta Apache Spark kullanarak web sitesi günlük analizi
Uygulamaları oluşturma ve çalıştırma
- Scala kullanarak tek başına uygulama oluşturma
- Apache Livy kullanarak bir Apache Spark kümesinde işleri uzaktan çalıştırma
Araçlar ve uzantılar
- Spark Scala uygulamaları oluşturmak ve göndermek amacıyla IntelliJ IDEA için HDInsight Araçları Eklentisini kullanma
- Apache Spark uygulamalarında uzaktan hata ayıklamak için IntelliJ IDEA için HDInsight Araçları Eklentisi'ni kullanma
- HDInsight'ta Apache Spark kümesiyle Apache Zeppelin not defterlerini kullanma
- HDInsight için Apache Spark kümesinde Jupyter Notebook için kullanılabilir çekirdekler
- Jupyter Notebooks ile dış paketleri kullanma
- Jupyter’i bilgisayarınıza yükleme ve bir HDInsight Spark kümesine bağlanma