Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Apache Spark uygulamanız için kullanılabilen birkaç hata ayıklama seçeneği özetlenmiştir:
- Spark Kullanıcı Arayüzü
- Sürücü günlükleri
- Yürütücü günlükleri
Spark kullanıcı arabirimini kullanarak maliyet ve performans sorunlarını tanılama adımlarını görmek için bkz. Spark kullanıcı arabirimini kullanarak maliyet ve performans sorunlarını tanılama
Spark Kullanıcı Arayüzü
Bir işi başlattıktan sonra Spark kullanıcı arabirimi, uygulamanızda neler olduğu hakkında bilgi gösterir. Spark kullanıcı arabirimine ulaşmak için İşlem sayfasından işleminizi seçin ve spark kullanıcı arabirimi sekmesine tıklayın:
Akış sekmesi
Spark kullanıcı arayüzünde, hesaplama üzerinde bir akış görevi çalışıyorsa bir Akış sekmesi görürsünüz. Bu işlemcide yürütülen bir akış işi yoksa, bu sekme görünmez. Akış işini başlatırken meydana gelmiş olabilecek istisnaları nasıl kontrol edeceğinizi öğrenmek için Sürücü günlükleri bölümüne geçebilirsiniz.
Bu sayfa, akış uygulamanızın kaynağınızdan herhangi bir giriş olayı alıp almadiğini denetlemenize olanak tanır. Örneğin, işin 1000 olay/saniye aldığını görebilirsiniz.
Not
TextFileStreamiçin, dosyalar giriş olduğundan, giriş olaylarının sayısı her zaman 0'dır. Böyle durumlarda, daha fazla bilgi bulmayı öğrenmek için not defterindeki Tamamlanan Toplu İşlemler bölümüne bakabilirsiniz.
Birden çok giriş akışı alan bir uygulamanız varsa, her alıcı için alınan olayların sayısını gösteren Giriş Hızı bağlantısına tıklayabilirsiniz.
İşlem süresi
Aşağı kaydırdığınızda, İşleme Süresigrafiğini bulun. Bu, akış işinizin performansını anlamak için önemli graflardan biridir. Genel bir kural olarak, toplu işlem sürenizin 80% içinde her bir toplu işlemi işleyebilmeniz iyidir.
Ortalama işlem süresi toplu iş aralığınıza daha yakın veya daha uzunsa, kısa süre içinde birikmeye başlayacak ve sonunda akış işinizi aksatabilecek bir akış uygulamanız olur.
Tamamlanan toplu işlemler
Sayfanın sonuna doğru, tamamlanan tüm toplu işlemlerin listesini görürsünüz. Sayfada, tamamlanan son 1000 toplu işlemle ilgili ayrıntılar görüntülenir. Tablodan, her toplu iş için işlenen olayların # ve bunların işleme süresini alabilirsiniz. Toplu işlemlerden birinde ne olduğu hakkında daha fazla bilgi edinmek isterseniz, Batch ayrıntıları sayfasına ulaşmak için toplu iş bağlantısına tıklayabilirsiniz.
Toplu ayrıntılar sayfası
Batch sayfasında bir toplu işle ilgili tüm detaylar mevcuttur. İki önemli nokta şunlardır:
- Giriş: Toplu veri girişiyle ilgili ayrıntılara sahiptir. Bu durumda, bu toplu iş için Spark Yapılandırılmış Akış tarafından okunan Apache Kafka konusu, bölüm ve ofsetler hakkında ayrıntılar içerir. TextFileStream durumunda, bu toplu iş için okunan dosya adlarının listesini görürsünüz. Bu, metin dosyalarından okuma yapan bir streaming uygulamasında hata ayıklamaya başlamanın en iyi yoludur.
- İşleme: Bu toplu işlem sırasında gerçekleştirilen işlemeyle ilgili tüm ayrıntıları içeren İş Kimliği bağlantısına tıklayabilirsiniz.
İş ayrıntıları sayfası
İş ayrıntıları sayfasında bir DAG görselleştirmesi gösterilir. Bu, her toplu iş için işlemlerin ve bağımlılıkların sırasını anlamak için yararlıdır. Örneğin, bir toplu okuma işleminin Kafka doğrudan akışından girdileri okuduktan sonra, bir düz eşleme işlemi ve ardından bir eşleme işlemi uygulandığını, ve sonuç akışının updateStateByKey kullanılarak genel durumu güncelleştirmek için kullanıldığını gösterebilir.
Gri kutular atlanan aşamaları gösterir. Spark, yeniden derlenmeleri gerekmeyen bazı aşamaları atlayabilecek kadar akıllıdır. Veriler denetim noktası olarak veya önbelleğe alınmışsa Spark bu aşamaları yeniden derlemeyi atlar. Önceki akış örneğinde, bu aşamalar updateStateBykey nedeniyle önceki toplu işlemlere olan bağımlılıkla karşılık gelir. Spark Yapılandırılmış Akış, akışın durumunu dahili olarak denetim noktalarında kaydettiğinden ve önceki toplu işlemlere bağlı kalmadığı için, bunlar gri aşamalar olarak gösterilir.
Sayfanın en altında, bu toplu iş için yürütülen işlerin listesini de bulabilirsiniz. Görev düzeyinde yürütmenin detayına gitmek için açıklamadaki bağlantılara tıklayabilirsiniz.
Görev ayrıntıları sayfası
Bu, bir Spark uygulaması için Spark kullanıcı arabiriminden girebileceğiniz en ayrıntılı hata ayıklama düzeyidir. Bu sayfada, bu toplu iş için yürütülen tüm görevler bulunur. Akış uygulamanızın performans sorunlarını araştırıyorsanız, bu sayfada yerine getirilen görevlerin sayısı, nerede yerine getirildiği (hangi yürütücülerde) ve shuffle işlemi bilgileri gibi bilgiler sağlanır.
Bahşiş
İşlem sırasında yeterli paralelliğe sahip olmak için görevlerin işleminizdeki birden çok yürütücüde (düğüm) yürütüldiğinden emin olun. Tek bir alıcınız varsa, hesaplamanızda birden fazla yürütücü olsa bile, bazen tüm işleri yalnızca bir yürütücü yapıyor olabilir.
İş parçacığı yığını
Thread dökümü, JVM'deki thread durumlarının görüntüsünü gösterir.
İş parçacığı dökümleri, belirli bir asılı veya yavaş çalışan görevde hata ayıklamada yararlıdır. Spark kullanıcı arabiriminde belirli bir görevin iş parçacığı dökümünü görüntülemek için:
- İşler sekmesine tıklayın.
- İşler tablosunda, görmek istediğiniz iş parçacığı dökümüne karşılık gelen hedef işi bulun ve Açıklama sütunundaki bağlantıya tıklayın.
- İşin Aşamalar tablosunda, görmek istediğiniz iş parçacığı dökümüyle ilgili hedef aşamayı bulun ve Açıklama sütunundaki bağlantıya tıklayın.
- Aşamanın Görevler listesinde, görmek istediğiniz iş parçacığı dökümüne karşılık gelen hedef görevi bulun ve Görev Kimliği ve Yürütücü Kimliği değerlerini not edin.
- Yürütücüler sekmesine tıklayın.
- Yürütücüler tablosunda, daha önce not ettiğiniz Yürütücü Kimliği değerine karşılık gelen Yürütücü Kimliği değerini içeren satırı bulun. Bu satırda, Thread Dump sütunundaki bağlantıya tıklayın.
- Yürütücü tablosunun
İş Parçacığı dökümü bölümünde, İş Parçacığı Adı sütunununTID içerdiği satırı ve ardından daha önce not ettiğinizGörev Kimliği değerini tıklatın. (Görevin çalışması tamamlandıysa eşleşen bir iş parçacığı bulamazsınız). Görevin iş parçacığı dökümü gösterilir.
İş parçacığı dökümleri, sürücünün takılı kaldığı (örneğin, Spark ilerleme çubukları gösterilmediği) veya sorgularda hiç ilerleme kaydetmediği (örneğin, Spark ilerleme çubukları %100'de kaldığı) sorunları ayıklamak için de yararlıdır. Spark kullanıcı arabiriminde sürücünün iş parçacığı dökümünü görüntülemek için:
- Yürütücüler sekmesine tıklayın.
- Yürütücüler tablosundaki sürücü satırında, İş Parçacığı Dökümü sütunundaki bağlantıya tıklayın. Sürücünün iş parçacığı dökümü gösterilir.
Sürücü günlükleri
Sürücü günlükleri aşağıdaki durumlarda yararlıdır:
- Özel durumlar: Bazen Spark kullanıcı arabiriminde Akış sekmesini göremeyebilirsiniz. Bunun nedeni Akış işinin bazı özel durumlar nedeniyle başlatılmamış olmasıdır. İstisnanın yığın izlemesine bakmak için Sürücü günlüklerindeki detayları inceleyebilirsiniz. Bazı durumlarda, akış işi düzgün bir şekilde başlatılmış olabilir. Ancak tüm toplu işlemlerin hiçbir zaman Tamamlanan toplu işlemler bölümüne gitmeyeceğini göreceksiniz. Hepsi işlenme aşamasında veya başarısız durumda olabilir. Bu gibi durumlarda, sürücü günlükleri temel sorunların doğasını anlamak için de yararlıdır.
- Yazdırma çıktısı: DAG'nin bir parçası olan yazdırma deyimleri günlüklerde de gösterilir.
Not
Sürücü günlüklerine kimlerin erişebileceği, işlem kaynağının erişim moduna bağlıdır. Standart erişim modu ile işlem için sürücü günlüklerine yalnızca çalışma alanı yöneticileri erişebilir. Ayrılmış erişim moduyla işlem için, ayrılmış kullanıcı veya grup ve çalışma alanı yöneticileri sürücü günlüklerine erişebilir.
Yürütücü günlükleri
Yürütücü günlükleri, belirli görevlerin yanlış çalıştığını ve belirli görevlerin günlüklerini görmek istediğinizi görürseniz yararlıdır. Yukarıda gösterilen görev ayrıntıları sayfasından, görevin çalıştırıldığı yürütücüye ulaşabilirsiniz. Bunu yaptıktan sonra işlem kullanıcı arabirimi sayfasına gidebilir, # düğümlerine ve ardından ana düğüme tıklayabilirsiniz. Ana sayfada tüm çalışanlar listelenir. Şüpheli görevin çalıştırıldığı çalışanı seçebilir ve ardından log4j çıkışına ulaşabilirsiniz.
Not
Yürütücü günlükleri Standart erişim modunda işlem için kullanılamaz. Ayrılmış erişim moduyla işlem için, ayrılmış kullanıcı veya grup ve çalışma alanı yöneticileri yürütücü günlüklerine erişebilir.