Aracılığıyla paylaş


Azure HDInsight kullanarak Apache Hadoop YARN sorunlarını giderme

Apache Ambari'de Apache Hadoop YARN yükleriyle çalışırken karşılaşılan en önemli sorunlar ve çözümleri hakkında bilgi edinin.

Bir kümede yeni bir YARN kuyruğu oluşturmak Nasıl yaparım??

Çözüm adımları

Ambari'de aşağıdaki adımları kullanarak yeni bir YARN kuyruğu oluşturun ve ardından kapasite ayırmayı tüm kuyruklar arasında dengeleyin.

Bu örnekte iki mevcut kuyruk (varsayılan ve thriftsvr) %50 kapasiteden %25 kapasiteye değiştirilerek yeni kuyruğa (spark) %50 kapasite sağlanır.

Sıra Kapasite Maksimum kapasite
varsayılan %25 %50
thrftsvr %25 %50
spark %50 %50
  1. Ambari Görünümleri simgesini ve ardından kılavuz desenini seçin. Ardından YARN Kuyruk Yöneticisi'ne tıklayın.

    Apache Ambari dashboard YARN Queue Manager.

  2. Varsayılan kuyruğu seçin.

    Apache Ambari YARN select default queue.

  3. Varsayılan kuyruk için kapasiteyi %50'den %25'e değiştirin. thriftsvr kuyruğu için kapasiteyi %25 olarak değiştirin.

    Change the capacity to 25% for the default and thriftsvr queues.

  4. Yeni bir kuyruk oluşturmak için Kuyruk Ekle'yi seçin.

    Apache Ambari YARN dashboard Add Queue.

  5. Yeni kuyruğu adlandırın.

    Apache Ambari YARN dashboard name Queue.

  6. Kapasite değerlerini %50 olarak bırakın ve eylemler düğmesini seçin.

    Apache Ambari YARN select action.

  7. Kuyrukları Kaydet ve Yenile'yi seçin.

    Select Save and Refresh Queues.

Bu değişiklikler YARN Scheduler kullanıcı arabiriminde hemen görünür.

Daha fazla bilgi

Bir kümeden YARN günlüklerini Nasıl yaparım? indirin?

Çözüm adımları

  1. Secure Shell (SSH) istemcisi kullanarak HDInsight kümesine Bağlan. Daha fazla bilgi için bkz . Daha fazla bilgi.

  2. Çalışmakta olan YARN uygulamalarının tüm uygulama kimliklerini listelemek için aşağıdaki komutu çalıştırın:

    yarn top
    

    Kimlikler APPLICATIONID sütununda listelenir. Günlükleri APPLICATIONID sütunundan indirebilirsiniz.

    YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root
    NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted
    Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed
    Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved
    Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved
    Queue(s) Containers: 2 allocated, 0 pending, 0 reserved
    
                      APPLICATIONID USER             TYPE      QUEUE   #CONT  #RCONT  VCORES RVCORES     MEM    RMEM  VCORESECS    MEMSECS %PROGR       TIME NAME
     application_1490377567345_0007 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628407    2442611  10.00   18:20:20 Thrift JDBC/ODBC Server
     application_1490377567345_0006 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628430    2442645  10.00   18:20:20 Thrift JDBC/ODBC Server
    
  3. Tüm uygulama yöneticileri için YARN kapsayıcı günlüklerini indirmek için aşağıdaki komutu kullanın:

    yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
    

    Bu komut amlogs.txt adlı bir günlük dosyası oluşturur.

  4. YALNıZCA en son uygulama yöneticisine yönelik YARN kapsayıcı günlüklerini indirmek için aşağıdaki komutu kullanın:

    yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    

    Bu komut latestamlogs.txt adlı bir günlük dosyası oluşturur.

  5. İlk iki uygulama yöneticisinin YARN kapsayıcı günlüklerini indirmek için aşağıdaki komutu kullanın:

    yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    

    Bu komut, first2amlogs.txt adlı bir günlük dosyası oluşturur.

  6. Tüm YARN kapsayıcı günlüklerini indirmek için aşağıdaki komutu kullanın:

    yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
    

    Bu komut, logs.txt adlı bir günlük dosyası oluşturur.

  7. Belirli bir kapsayıcının YARN kapsayıcı günlüğünü indirmek için aşağıdaki komutu kullanın:

    yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
    

    Bu komut containerlogs.txt adlı bir günlük dosyası oluşturur.

Ek okuma

Yarn Uygulama Tanılama Bilgileri'ne Nasıl yaparım? bakın?

Yarn kullanıcı arabirimindeki tanılama, Yarn üzerinde çalışan uygulamalarınızın durumunu ve günlüklerini görüntülemenizi sağlayan bir özelliktir. Tanılama, uygulamalarınızın performansını ve kaynak kullanımını izlemenin yanı sıra sorun gidermenize ve uygulamalarınızda hata ayıklamanıza yardımcı olabilir.

Belirli bir uygulamanın tanılamasını görüntülemek için uygulamalar listesinde uygulama kimliğine tıklayabilirsiniz. Uygulama ayrıntıları sayfasında, uygulamayı çalıştırmak için yapılan tüm girişimlerin listesini de görebilirsiniz. Deneme kimliği, kapsayıcı kimliği, düğüm kimliği, başlangıç zamanı, bitiş saati ve tanılama gibi diğer ayrıntıları görmek için herhangi bir girişime tıklayabilirsiniz

Screenshot showing Yarn Application Diagnostics.

YARN ile ilgili yaygın sorunları Nasıl yaparım? giderebilirsiniz?

Yarn kullanıcı arabirimi yüklenmiyor

YARN kullanıcı arabiriminiz yüklenmiyorsa veya erişilemiyorsa ve "HTTP Hatası 502.3 - Hatalı Ağ Geçidi" döndürüyorsa, Resource Manager hizmetinizin iyi durumda olmadığını gösterir. Hatayı düzeltmek için şu adımları izleyin:

  1. Ambari UI>YARN>ÖZETİ'ne gidin ve yalnızca etkin Resource Manager'ın Başlatıldı durumunda olup olmadığını denetleyin. Aksi takdirde, iyi durumda olmayan veya durdurulan Resource Manager'ı yeniden başlatarak azaltmayı deneyin.
  2. 1. adım sorunu çözmezse etkin Resource Manager baş düğümü SSH'yi seçin ve kullanarak jstat -gcutil <Resource Manager pid> 1000 100çöp toplama durumunu denetleyin. FGCT'nin yalnızca birkaç saniye içinde önemli ölçüde arttığını görürseniz, Resource Manager'ın Tam GC'de meşgul olduğunu ve diğer istekleri işleyemediğini gösterir.
  3. Ambari kullanıcı arabirimi>YARN>YAPILANDIRMALAR>Gelişmiş sayfasına gidip Resource Manager java heap size değerini artırın.
  4. Ambari kullanıcı arabiriminden gerekli hizmetleri yeniden başlatın.

Her iki kaynak yöneticisi de beklemede

  1. Benzer bir hata olup olmadığını görmek için Resource Manager günlüğünü denetleyin.
Service RMActiveServices failed in state STARTED; cause: org.apache.hadoop.service.ServiceStateException: com.google.protobuf.InvalidProtocolBufferException: Could not obtain block: BP-452067264-10.0.0.16-1608006815288:blk_1074235266_494491 file=/yarn/node-labels/nodelabel.mirror
  1. Hata varsa, bazı dosyaların çoğaltma kapsamında olup olmadığını veya HDFS’de eksik bloklar olup olmadığını denetleyin. hdfs fsck hdfs://mycluster/ çalıştırabilirsiniz

  2. HDFS'yi çok zorla temizleyip hazır bekleyen RM sorunundan kurtulmak için komutunu çalıştırın hdfs fsck hdfs://mycluster/ -delete . Alternatif olarak, kümeye düzeltme eki uygulamak için baş düğümlerden birinde PatchYarnNodeLabel komutunu çalıştırın.

Sonraki adımlar

Sorununuzu görmediyseniz veya sorununuzu çözemiyorsanız daha fazla destek için aşağıdaki kanallardan birini ziyaret edin:

  • Azure Topluluk Desteği aracılığıyla Azure uzmanlarından yanıt alın.

  • @AzureSupport ile Bağlan - müşteri deneyimini geliştirmeye yönelik resmi Microsoft Azure hesabı. Azure topluluğunun doğru kaynaklara Bağlan: yanıtlar, destek ve uzmanlar.

  • Daha fazla yardıma ihtiyacınız varsa Azure portalından bir destek isteği gönderebilirsiniz. Menü çubuğundan Destek'i seçin veya Yardım + destek hub'ını açın. Daha ayrıntılı bilgi için bkz. Azure desteği isteği oluşturma. Abonelik Yönetimi’ne ve faturalandırma desteğine erişim Microsoft Azure aboneliğinize dahildir, Teknik Destek ise herhangi bir Azure Destek Planı üzerinden sağlanır.