全部产品
Search
文档中心

E-MapReduce:FAQ

更新时间:Jul 06, 2025

Topik ini menjawab beberapa pertanyaan umum tentang Kudu.

Di mana saya dapat melihat berkas log Kudu?

Lihat berkas log Kudu di direktori /mnt/disk1/log/kudu.

Metode partisi apa yang didukung oleh Kudu?

Kudu mendukung partisi rentang dan partisi hash. Anda dapat menggunakan kedua metode partisi tersebut secara bersamaan. Untuk informasi lebih lanjut, lihat Desain Skema Apache Kudu.

Bagaimana cara mengakses antarmuka web Kudu?

Kudu tidak terintegrasi dengan Knox. Anda tidak dapat menggunakan Knox untuk mengakses antarmuka web Kudu. Anda dapat membuat terowongan SSH untuk mengakses antarmuka web Kudu. Untuk informasi lebih lanjut, lihat Buat terowongan SSH untuk mengakses antarmuka web komponen open source.

Apa yang harus saya lakukan jika pesan kesalahan "NonRecoverableException" muncul di klien Kudu?

  • Deskripsi masalah
    Informasi kesalahan berikut muncul:
    org.apache.kudu.client.NonRecoverableException: Could not connect to a leader master. Client configured with 1 master(s) (192.168.0.10:7051) but cluster indicates it expects 3 master(s) (192.168.0.36:7051,192.168.0.11:7051,192.168.0.10:7051)
  • Penyebab

    Masalah ini terjadi karena tiga node master diperlukan, tetapi hanya satu node master yang diterapkan.

  • Solusi

    Terapkan semua node master yang diperlukan, dan sambungkan klien Kudu ke node master utama.

Bagaimana cara melihat FAQ di komunitas Kudu?

Untuk informasi lebih lanjut, lihat Pemecahan Masalah Apache Kudu.

Apa yang harus saya lakukan jika pesan kesalahan "Bad status: Network error: Could not obtain a remote proxy to the peer.: unable to resolve address for <hostname>: Name or service not known" muncul?

  • Penyebab: Nama host tidak dapat diubah menjadi alamat IP. Akibatnya, server raft dari tablet Kudu tidak dapat mengenali jenis server raft peer-nya. Apakah server raft dapat menyediakan layanan sesuai harapan tidak diketahui. Oleh karena itu, jaringan dihentikan.
  • Solusi:
    1. Tambahkan pemetaan antara nama host dan alamat IP yang diselesaikan secara manual ke file /etc/hosts.
    2. Jika host yang diwakili oleh nama host telah dilepaskan, Anda dapat menambahkan pemetaan antara nama host dan alamat IP acak ke file /etc/hosts, terlepas dari apakah alamat IP dapat diakses. Kemudian, server tablet Kudu mereplikasi data dari server raft yang tidak tersedia ke server raft baru yang ditambahkan ke grup server raft. Dengan cara ini, grup server raft dapat menyediakan layanan sesuai harapan lagi.

Apa yang harus saya lakukan jika pesan kesalahan "Bad status: I/O error: Failed to load Fs layout: could not verify integrity of files: <directory>, <number> data directories provided, but expected <number>" muncul?

Masalah ini disebabkan oleh ketidaksesuaian antara jumlah disk yang ditentukan oleh parameter -fs_data_dirs dan metadata yang direkam oleh parameter -fs_metadata_dir. Untuk menyelesaikan masalah, ubah jumlah disk yang ditentukan oleh parameter -fs_data_dirs dan pastikan jumlah disk sesuai dengan metadata yang direkam oleh parameter -fs_metadata_dir.

Apa yang harus saya lakukan jika pesan kesalahan "pthread_create failed: Resource temporarily unavailable (error 11)" muncul?

Kesalahan ini terjadi karena sumber daya tidak tersedia dan thread gagal dibuat. Selesaikan masalah berdasarkan kasus-kasus berikut:

  • Sumber daya tidak tersedia.

    Periksa nilai parameter max user processes dengan menjalankan perintah ulimit -a. Jika nilainya kecil, modifikasi file /etc/security/limits.conf. Anda juga dapat membuat file /etc/security/limits.d/kudu.conf dan mengubah nilai parameter max user processes dalam file tersebut.

  • Klien Kudu V0.8 digunakan dalam lingkungan penyebaran hybrid.

    Berdasarkan deskripsi dari masalah KUDU-1453, executor Spark mungkin bocor thread jika Kudu client V0.8 digunakan. Untuk menyelesaikan masalah, tingkatkan versi Kudu client ke V0.9.

  • Thread bocor.
    • Masalah yang disebabkan oleh Trino

      Saat Anda keluar dari Trino dan menunggu metode take dari BlockingQueue di thread hook shutdown mengembalikan elemen, thread hook shutdown tidak dapat diinterupsi, dan kontrol E-MapReduce (EMR) terus mengirim sinyal SIGTERM untuk membuat thread SIGTERM Handler baru. Akibatnya, thread habis.

      Anda dapat menyelesaikan masalah di sisi Trino, atau langsung jalankan perintah Kill -9.

    • Masalah yang disebabkan oleh Jindo SDK

      Spark menggunakan kelas JindoOssCommitter saat Spark mengeksekusi pekerjaan tulis. Kelas ini membuat objek JindoOssMagicCommitter dan menghasilkan thread pool bernama oss-committer-pool dalam objek JindoOssMagicCommitter. Thread pool tidak statis dan tidak dimatikan secara manual. Objek JindoOssMagicCommitter terus dibuat dan thread pool baru terus dihasilkan. Thread pool yang sebelumnya dibuat tidak dilepaskan karena berbagai alasan. Oleh karena itu, terlalu banyak thread digunakan. Jika Anda menggunakan Spark Streaming atau Structure Streaming, sumber daya sistem mungkin habis.

      Anda dapat menentukan parameter berikut untuk menyelesaikan masalah:
      spark.sql.hive.outputCommitterClass=org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
      spark.sql.sources.outputCommitterClass=org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
    • Pencarian alat
      Anda dapat menjalankan skrip threads_monitor.sh berikut untuk menemukan proses yang menggunakan thread paling banyak di sistem. Lalu, selesaikan masalah.
      #!/bin/bash
      
      total_threads=0
      max_pid=-1
      max_threads=-1
      
      for tid in `ls /proc`
      do
        if [[ $tid != *self && -f /proc/$tid/status ]]; then
          num_threads=`cat /proc/$tid/status | grep Threads | awk '{print $NF}'`
          ((total_threads+=num_threads))
          if [[ ${max_pid} -eq -1 || ${max_threads} -lt ${num_threads} ]]; then
            max_pid=${tid}
            max_threads=${num_threads}
          fi
      #    echo "Thread ${pid}: ${num_threads}"
        fi
      done
      
      echo "Total threads: ${total_threads}"
      echo "Max threads: ${max_threads}, pid is ${max_pid}"
      ps -ef | grep ${max_pid} | grep -v grep

Apa yang harus saya lakukan jika gagal memulai Kudu?

Saat menggunakan Kudu, monitor Bigboot yang disediakan oleh Bigboot melakukan operasi seperti mulai, jalankan, dan restart otomatis saat terjadi kegagalan. Ada cacat pada Bigboot V3.5.0. Jika Kudu crash, informasi layanan di database tidak dapat dihapus. Akibatnya, Kudu tidak dapat di-restart. Dalam hal ini, Anda perlu menghentikan Kudu, lalu memulai ulang Kudu.
Catatan Anda perlu melakukan operasi ini di mesin Anda. Konsol mungkin tidak melakukan operasi penghentian karena layanan telah dihentikan.
Untuk menyelesaikan masalah, jalankan perintah berikut di node inti atau tugas. Jika Anda menjalankan perintah berikut di node master, ganti kudu-tserver dalam perintah dengan kudu-master.
/usr/lib/b2monitor-current/bin/monictrl -stop kudu-tserver
/usr/lib/b2monitor-current/bin/monictrl -start kudu-tserver

Apa yang harus saya lakukan jika pesan kesalahan "Service unavailable: RunTabletServer() failed: Cannot initialize clock: timed out waiting for clock synchronisation: Error reading clock. Clock considered unsynchronized" muncul?

  • Deskripsi masalah
    Pesan kesalahan berikut mungkin dicatat dalam log:
    E1010 10:37:54.165313 29920 system_ntp.cc:104] /sbin/ntptime
    ------------------------------------------
    stdout:
    ntp_gettime() returns code 5 (ERROR)
      time e6ee0402.2a452c4c  Mon, Oct 10 2022 10:37:54.165, (.165118697),
      maximum error 16000000 us, estimated error 16000000 us, TAI offset 0
    ntp_adjtime() returns code 5 (ERROR)
      modes 0x0 (),
      offset 0.000 us, frequency 187.830 ppm, interval 1 s,
      maximum error 16000000 us, estimated error 16000000 us,
      status 0x2041 (PLL,UNSYNC,NANO),
      time constant 6, precision 0.001 us, tolerance 500 ppm,
  • Penyebab: ntpd di mesin tidak dapat terhubung ke server ntp yang dikonfigurasi.
  • Solusi: Mulai ulang server dan coba lagi.

Apa yang harus saya lakukan jika pesan kesalahan "Rejecting Write request: Soft memory limit exceeded" muncul?

  • Penyebab: Jumlah data yang akan ditulis melebihi batas memori lunak.
  • Solusi:
    Anda dapat melakukan operasi berikut:
    1. Konfigurasikan parameter memory_limit_hard_bytes untuk meningkatkan ukuran memori. Nilai defaultnya adalah 0, yang menunjukkan bahwa penggunaan memori maksimum secara otomatis ditetapkan oleh sistem. Anda dapat mengubah nilainya menjadi -1. Ini menunjukkan bahwa tidak ada batasan yang diberlakukan pada penggunaan memori.
    2. Konfigurasikan parameter memory_limit_soft_percentage untuk menyesuaikan persentase memori yang tersedia. Nilai defaultnya adalah 80.