All Products
Search
Document Center

E-MapReduce:FAQ Kudu

Last Updated:Jul 07, 2026

Jawaban atas pertanyaan umum mengenai Kudu di EMR.

Umum

Di mana file log Kudu disimpan?

File log Kudu berada di /mnt/disk1/log/kudu.

Metode partisi apa saja yang didukung oleh Kudu?

Kudu mendukung range partitioning dan hash partitioning. Kedua metode tersebut dapat dikombinasikan. Untuk detailnya, lihat Apache Kudu Schema Design.

Bagaimana cara mengakses UI web Kudu?

Kudu tidak terintegrasi dengan Knox. Buat SSH tunnel untuk mengakses UI web tersebut. Untuk petunjuknya, lihat Create an SSH tunnel to access web UIs of open source components.

Di mana saya dapat menemukan FAQ komunitas Kudu?

Lihat halaman Apache Kudu Troubleshooting.

Startup errors

NonRecoverableException saat menghubungkan klien Kudu

Galat ini berarti jumlah node master yang dikonfigurasi pada klien tidak sesuai dengan yang diharapkan oleh kluster:

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)

Terapkan semua node master yang diperlukan dan hubungkan klien Kudu ke node master primer.

Kudu gagal dimulai karena cacat pada monitor Bigboot

Cacat pada Bigboot V3.5.0 mencegah Kudu melakukan restart setelah crash. Monitor Bigboot gagal menghapus informasi layanan yang sudah tidak valid dari database-nya, sehingga upaya restart berikutnya gagal.

Hentikan Kudu dan jalankan kembali langsung di mesin menggunakan perintah berikut.

Jalankan perintah berikut di core atau task node. Jika Anda menjalankannya di master node, ganti kudu-tserver dengan kudu-master.

/usr/lib/b2monitor-current/bin/monictrl -stop kudu-tserver
/usr/lib/b2monitor-current/bin/monictrl -start kudu-tserver
Catatan

Jalankan perintah ini langsung di mesin tersebut. Konsol EMR mungkin tidak dapat melakukan operasi stop karena layanan sudah dihentikan.

Galat sinkronisasi jam mencegah Kudu dimulai

Galat ini terjadi ketika ntpd tidak dapat terhubung ke server NTP yang dikonfigurasi:

Service unavailable: RunTabletServer() failed: Cannot initialize clock: timed out waiting for clock synchronisation: Error reading clock. Clock considered unsynchronized

Log juga mungkin berisi output serupa berikut:

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,

Restart server dan coba lagi.

Runtime errors

Galat jaringan: tidak dapat menyelesaikan hostname

Bad status: Network error: Could not obtain a remote proxy to the peer.: unable to resolve address for <hostname>: Name or service not known

Galat ini terjadi ketika hostname tidak dapat diselesaikan menjadi alamat IP. Tanpa pemetaan yang valid, peer Raft tablet Kudu tidak dapat mengenali peer-nya dan menghentikan koneksi.

Solusi 1: Tambahkan pemetaan hostname-ke-IP ke /etc/hosts.

Solusi 2: Jika host di balik hostname telah dilepas, tambahkan pemetaan antara hostname dan alamat IP apa pun ke /etc/hosts. Alamat IP tersebut tidak perlu dapat dijangkau. Setelah pemetaan tersedia, server tablet Kudu mereplikasi data dari server Raft yang tidak tersedia ke server Raft baru dalam grup Raft.

Galat integritas tata letak filesystem

Bad status: I/O error: Failed to load Fs layout: could not verify integrity of files: <directory>, <number> data directories provided, but expected <number>

Jumlah disk yang ditentukan oleh -fs_data_dirs tidak sesuai dengan metadata yang dicatat oleh -fs_metadata_dir. Perbarui -fs_data_dirs agar jumlah disk sesuai dengan yang tercatat di -fs_metadata_dir.

Kegagalan pembuatan thread (pthread_create error 11)

pthread_create failed: Resource temporarily unavailable (error 11)

Periksa penyebab berikut secara berurutan.

Batas proses tidak mencukupi

Periksa batas saat ini untuk jumlah maksimum proses pengguna:

ulimit -a

Jika nilainya terlalu rendah, tingkatkan dengan memodifikasi /etc/security/limits.conf atau dengan membuat /etc/security/limits.d/kudu.conf.

Kebocoran thread pada klien Kudu V0.8 dalam penerapan hibrida

Dalam penerapan hibrida, executor Spark dapat mengalami kebocoran thread saat menggunakan klien Kudu V0.8. Ini adalah isu yang telah diketahui sebagaimana didokumentasikan dalam KUDU-1453. Tingkatkan ke klien Kudu V0.9 untuk menyelesaikan masalah ini.

Kebocoran thread saat shutdown Trino

Saat Trino keluar, thread shutdown hook terblokir pada metode take dari BlockingQueue yang menunggu elemen. Thread ini tidak dapat diinterupsi, sehingga kontrol EMR terus mengirim sinyal SIGTERM, membuat thread handler SIGTERM baru hingga mencapai batas proses.

Perbaiki masalah ini di sisi Trino, atau hentikan proses secara paksa dengan kill -9.

Kebocoran kolam thread pada Jindo SDK

Spark menggunakan kelas JindoOssCommitter untuk pekerjaan write. Kelas ini membuat objek JindoOssMagicCommitter yang menghasilkan kolam thread bernama oss-committer-pool. Kolam thread tersebut bukan statis dan tidak pernah dimatikan. Saat objek JindoOssMagicCommitter baru dibuat, kolam thread menumpuk tanpa dilepas. Hal ini terutama berisiko tinggi pada beban kerja Spark Streaming atau Structured Streaming.

Tambahkan parameter Spark berikut untuk mengatasi masalah ini:

spark.sql.hive.outputCommitterClass=org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
spark.sql.sources.outputCommitterClass=org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter

Temukan proses dengan jumlah thread terbanyak

Gunakan skrip threads_monitor.sh berikut untuk mengidentifikasi proses mana yang mengonsumsi thread terbanyak:

#!/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

Batas memori lunak terlampaui

Rejecting Write request: Soft memory limit exceeded

Throughput write melebihi batas memori lunak. Untuk mengatasi hal ini, sesuaikan salah satu parameter berikut:

  1. Konfigurasikan parameter memory_limit_hard_bytes untuk meningkatkan ukuran memori. Nilai default-nya adalah 0, yang menunjukkan bahwa penggunaan memori maksimum diatur secara otomatis 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 default-nya adalah 80.

Konfigurasi allowlist Kudu dan refresh token

Apakah EMR menyediakan tombol untuk mengaktifkan atau menonaktifkan allowlist Kudu secara manual?

Masalah: Anda ingin mengaktifkan atau menonaktifkan allowlist Kudu melalui Konsol EMR.

Solusi: EMR tidak menyediakan tombol khusus untuk fitur ini. Allowlist merupakan item konfigurasi kustom yang harus Anda tambahkan secara manual. Setelah Anda memodifikasi file konfigurasi, Anda harus merestart layanan Kudu agar perubahan diterapkan. Anda tidak dapat beralih antara mode akses penuh dan mode akses sebagian tanpa merestart layanan.

Apakah saya harus merestart layanan Kudu untuk merefresh token yang kedaluwarsa?

Masalah: Token layanan Kudu telah kedaluwarsa dan Anda ingin merefresh-nya.

Solusi: Ya. Anda harus merestart layanan Kudu untuk merefresh token tersebut.

Galat: "Unable to open the Kudu table" atau "Unable to initialize the Kudu scan node" saat mengkueri tabel Kudu dari Impala

Masalah: Anda menerima salah satu galat berikut saat menggunakan Impala untuk mengkueri tabel Kudu:

  • Unable to open the Kudu table

  • Unable to initialize the Kudu scan node

Penyebab: Galat ini biasanya disebabkan oleh token Kudu Master yang kedaluwarsa, kegagalan memperoleh leader, atau kegagalan otentikasi. Galat ini tidak terkait dengan konfigurasi Ranger.

Solusi:

  1. Tambahkan subnet klien (misalnya, 10.85.0.0/16) ke konfigurasi allowlist Kudu.

  2. Restart layanan Kudu.

FAQ tentang merestart Kudu

Konsol terus memuat saat saya merestart layanan Kudu

Masalah: Saat Anda merestart layanan Kudu, halaman konsol terus menampilkan spinner loading.

Solusi: Masalah ini dapat terjadi karena sesi login Anda telah kedaluwarsa, yang menyebabkan gangguan saat merefresh halaman, atau karena proses restart layanan memerlukan waktu untuk memperbarui status. Refresh halaman atau periksa riwayat operasi.

Apakah saya dapat menggunakan kueri Impala selama restart layanan Kudu?

Masalah: Anda ingin mengetahui apakah Anda dapat mengkueri data selama restart layanan Kudu.

Solusi: Kami menyarankan agar Anda tidak menjalankan kueri selama restart. Meskipun layanan Impala itu sendiri mungkin tetap tersedia, kueri yang melibatkan tabel Kudu akan gagal karena gangguan koneksi.

Layanan menampilkan status abnormal atau meminta saya untuk memulai layanan lain secara manual setelah restart Kudu

Masalah: Setelah Anda merestart layanan Kudu, konsol menampilkan status abnormal atau meminta Anda untuk memulai layanan lain secara manual.

Solusi: Tidak diperlukan tindakan manual. Status abnormal biasanya muncul karena pemeriksaan kesehatan mendeteksi bahwa layanan belum sepenuhnya dimulai. Jika layanan telah pulih sendiri dan node Master dapat menjalankan kueri, maka restart telah selesai. Anda tidak perlu memulai layanan lain secara manual.