Bagikan melalui


Memecahkan masalah Apache Hadoop YARN dengan menggunakan Azure HDInsight

Pelajari tentang masalah paling umum dan resolusinya saat menggunakan payload Apache Hadoop YARN di Apache Ambari.

Bagaimana cara membuat antrean YARN baru pada klaster?

Langkah-langkah resolusi

Gunakan langkah-langkah berikut di Ambari untuk membuat antrean YARN baru, lalu seimbangkan alokasi kapasitas pada semua antrean.

Dalam contoh ini, dua antrean yang ada (default dan thriftsvr) diubah dari kapasitas 50% menjadi kapasitas 25%, yang memberikan kapasitas antrian (spark) baru 50%.

Antrean Kapasitas Kapasitas maksimum
Default 25% 50%
thrftsvr 25% 50%
spark 50% 50%
  1. Pilih ikon Ambari Views, lalu pilih pola kisi. Selanjutnya, pilih YARN Queue Manager.

    Apache Ambari dasbor YARN Queue Manager.

  2. Pilih antrean default.

    Apache Ambari YARN pilih antrean default.

  3. Untuk antrean default, ubah kapasitas dari 50% menjadi 25%. Untuk antrean thriftsvr, ubah kapasitas menjadi 25%.

    Ubah kapasitas menjadi 25% untuk antrean default dan thriftsvr.

  4. Untuk membuat antrean baru, pilih Tambahkan Antrean.

    Dasbor YARN Apache Ambari Tambahkan Antrean.

  5. Beri nama antrean baru.

    Antrean nama dasbor YARN Apache Ambari.

  6. Biarkan nilai kapasitas di 50%, lalu pilih tombol Tindakan.

    Tindakan pilih Apache Ambari YARN.

  7. Pilih Simpan dan Refresh Antrean.

    Pilih Simpan dan Refresh Antrean.

Perubahan ini langsung terlihat pada YARN Scheduler UI.

Bacaan lebih lanjut

Bagaimana cara mengunduh log YARN dari klaster?

Langkah-langkah resolusi

  1. Sambungkan ke kluster HDInsight dengan menggunakan klien Secure Shell (SSH). Untuk informasi selengkapnya, lihat Membaca lebih lanjut.

  2. Untuk mencantumkan semua ID aplikasi dari aplikasi YARN yang sedang berjalan, jalankan perintah berikut:

    yarn top
    

    ID tercantum di kolom APPLICATIONID. Anda dapat mengunduh log dari kolom APPLICATIONID.

    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. Untuk mengunduh log kontainer YARN untuk semua master aplikasi, gunakan perintah berikut:

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

    Perintah ini membuat file log bernama amlogs.txt.

  4. Untuk mengunduh log kontainer YARN untuk semua master aplikasi terbaru saja, gunakan perintah berikut:

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

    Perintah ini membuat file log bernama latestamlogs.txt.

  5. Untuk mengunduh log kontainer YARN untuk dua master aplikasi pertama, gunakan perintah berikut:

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

    Perintah ini membuat file log bernama first2amlogs.txt.

  6. Untuk mengunduh semua log kontainer YARN, gunakan perintah berikut:

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

    Perintah ini membuat file log bernama logs.txt.

  7. Untuk mengunduh log kontainer YARN untuk kontainer tertentu, gunakan perintah berikut:

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

    Perintah ini membuat file log bernama containerlogs.txt.

Pembacaan tambahan

Bagaimana cara memeriksa Informasi Diagnostik Aplikasi Yarn?

Diagnostik di Yarn UI adalah fitur yang memungkinkan Anda melihat status dan log aplikasi Anda yang berjalan di Yarn. Diagnostik dapat membantu Anda memecahkan masalah dan men-debug aplikasi Anda, serta memantau performa dan penggunaan sumber dayanya.

Untuk melihat diagnostik aplikasi tertentu, Anda dapat mengklik ID aplikasi dalam daftar aplikasi. Pada halaman detail aplikasi, Anda juga dapat melihat daftar semua upaya yang telah dilakukan untuk menjalankan aplikasi. Anda dapat mengklik upaya apa pun untuk melihat detail selengkapnya, seperti ID upaya, ID kontainer, ID simpul, waktu mulai, waktu selesai, dan diagnostik

Cuplikan layar memperlihatkan Diagnostik Aplikasi Yarn.

Bagaimana cara memecahkan masalah umum YARN?

Antarmuka pengguna Yarn tidak dimuat

Jika UI YARN Anda tidak dimuat atau tidak dapat dijangkau, dan menampilkan "Kesalahan HTTP 502.3 - Gateway Buruk," itu sangat menunjukkan layanan Resource Manager Anda tidak sehat. Untuk mengatasi masalah ini, ikuti langkah-langkah ini:

  1. Buka RINGKASAN YARN>Ambari UI>dan periksa untuk melihat apakah hanya Resource Manager aktif yang berada dalam status Dimulai. Jika tidak, coba mitigasi dengan memulai ulang Resource Manager yang tidak sehat atau dihentikan.
  2. Jika langkah 1 tidak mengatasi masalah, SSH simpul kepala Resource Manager aktif dan periksa status pengumpulan sampah menggunakan jstat -gcutil <Resource Manager pid> 1000 100. Jika Anda melihat FGCT meningkat secara signifikan hanya dalam beberapa detik, itu menunjukkan Resource Manager sibuk di Full GC, dan tidak dapat memproses permintaan lainnya.
  3. Buka Ambari UI>YARN>KONFIG>Tingkat lanjut dan tingkatkan Resource Manager java heap size.
  4. Hidupkan ulang layanan yang diperlukan di Ambari UI.

Kedua manajer sumber daya berada dalam mode siaga

  1. Periksa log Resource Manager untuk melihat apakah ada kesalahan serupa.
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. Jika terdapat kesalahan, periksalah untuk melihat apakah ada file yang sedang direplikasi atau apakah ada blok yang hilang di HDFS. Anda bisa menjalankan hdfs fsck hdfs://mycluster/

  2. Jalankan hdfs fsck hdfs://mycluster/ -delete terlalu paksa pembersihan HDFS dan untuk menyingkirkan masalah RM siaga. Atau, jalankan PatchYarnNodeLabel pada salah satu headnode untuk melakukan patch terhadap kluster.

Langkah berikutnya

Jika Anda tidak melihat masalah atau tidak dapat memecahkan masalah, kunjungi salah satu saluran berikut untuk mendapatkan dukungan lebih lanjut:

  • Dapatkan jawaban dari para ahli Azure melalui Dukungan Komunitas Azure.

  • Hubungi @AzureSupport - akun Microsoft Azure resmi untuk meningkatkan pengalaman pelanggan. Menghubungkan komunitas Microsoft Azure ke sumber daya yang tepat: jawaban, dukungan, dan pakar.

  • Jika Anda memerlukan bantuan lainnya, Anda dapat mengirimkan permintaan dukungan dari portal Microsoft Azure. Pilih Dukungan dari bilah menu atau buka hub Bantuan + Dukungan. Untuk informasi selengkapnya, tinjau Cara membuat permintaan dukungan Microsoft Azure. Akses ke Manajemen Langganan dan dukungan tagihan disertakan dengan langganan Microsoft Azure, dan Dukungan Teknis disediakan melalui salah satu Paket Dukungan Azure.