全部产品
Search
文档中心

E-MapReduce:Pemecahan masalah terkait layanan Hive

更新时间:Jun 24, 2025

Dokumen ini menjelaskan cara memecahkan masalah terkait layanan Hive.

Menemukan pengecualian

Jika terjadi pengecualian seperti kinerja buruk pada klien Hive, Anda dapat mengikuti langkah-langkah berikut untuk menemukan penyebabnya:

  • Periksa penggunaan CPU, memori, jaringan, dan disk dari kluster tempat layanan Hive diterapkan.

  • Periksa apakah komponen layanan Hive berfungsi dengan baik menggunakan langkah-langkah berikut:

    1. Periksa apakah ada pengecualian pada komponen HiveMetaStore dan HiveServer2. Jika terdeteksi pengecualian, selesaikan masalah berdasarkan metrik yang relevan. Sebagai contoh, jika metrik GC menunjukkan penggunaan memori yang tinggi, sesuaikan ukuran memori. Untuk informasi lebih lanjut, lihat Ubah Parameter Memori Layanan Hive.

    2. Buka tab Pemantauan Kluster. Di tab Pemantauan Metrik, periksa metrik utama dari komponen HiveMetaStore dan HiveServer2, lalu tentukan apakah parameter terkait perlu diubah. Untuk informasi lebih lanjut, lihat Periksa Item dan Metrik Utama Hive.

    3. Periksa log komponen HiveMetaStore atau HiveServer2. Dalam kebanyakan kasus, log disimpan di direktori /mnt/disk1/log/hive/. Periksa file .log, .err, .out, dan log GC dari komponen tersebut untuk mengidentifikasi penyebab pengecualian.

Masalah terkait database HiveMetaStore

Masalah 1: Host xxxx diblokir karena banyak kesalahan koneksi; buka blokir dengan 'mysqladmin flush-hosts'

Penyebab: Kesalahan sering terjadi saat klien mencoba terhubung ke database, sehingga database menolak permintaan koneksi dari klien.

Solusi:

  • Solusi 1: Tingkatkan nilai parameter max_connect_errors. Perubahan ini langsung berlaku.

    null

    Parameter max_connect_errors digunakan untuk mencegah brute-force cracking password database. Kami menyarankan agar Anda tidak menetapkan parameter ini ke nilai yang terlalu besar.

    1. Masuk ke database dan jalankan perintah berikut untuk melihat nilai parameter max_connect_errors:

      show global variables like '%max_connect_errors%'
    2. Jalankan perintah berikut untuk menetapkan parameter max_connect_errors ke nilai yang lebih besar:

      set global max_connect_errors=[Nilai yang lebih besar]
  • Solusi 2: Jalankan perintah berikut untuk membersihkan data cache host tempat pengecualian terjadi. Anda juga dapat masuk ke database dan menjalankan perintah flush hosts untuk membersihkan data cache.

    mysqladmin -u root -p flush-hosts

Masalah 2: Metastore Connection Driver : com.mysql.jdbc.Driver Metastore connection User: xxx ,stderr=org.apache.hadoop.hive.metastore.HiveMetaException: Gagal mendapatkan versi skema. Penyebab mendasar: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Kegagalan tautan komunikasi

Penyebab: Database metastore Hive belum diinisialisasi pada instance ApsaraDB RDS for MySQL yang dikelola sendiri.

Solusi: Inisialisasi database metastore Hive. Untuk informasi lebih lanjut, lihat bagian Inisialisasi Layanan Metastore dalam topik Konfigurasi Basis Data ApsaraDB RDS for MySQL Independen.

Masalah terkait HiveMetaStore

Masalah: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Tidak dapat terhubung ke meta store menggunakan salah satu URI yang disediakan

  • Penyebab 1: Komponen HiveMetaStore terganggu atau beban komponen HiveMetaStore berat, misalnya GC berlangsung selama periode waktu yang lama.

    Solusi:

    • Periksa log GC komponen HiveMetaStore dan tingkatkan ukuran memori komponen HiveMetaStore. Untuk informasi lebih lanjut, lihat Ubah Parameter Memori Layanan Hive.

    • Periksa log komponen HiveMetaStore. Jika java.lang.OutOfMemoryError muncul dalam log, tingkatkan ukuran memori komponen HiveMetaStore. Untuk informasi lebih lanjut, lihat Ubah Parameter Memori Layanan Hive.

    • Periksa apakah parameter hive.metastore.transactional.event.listeners dan hive.metastore.event.db.listener dikonfigurasi. Beberapa pendengar (listeners) dapat menyebabkan peningkatan cepat dalam penggunaan memori komponen HiveMetaStore. Jika pendengar dikonfigurasi, hapus pengaturan pendengar dan mulai ulang komponen HiveMetaStore.

    • Jika sejumlah besar permintaan klien atau permintaan bersamaan dikirim ke komponen HiveMetaStore, tingkatkan ukuran memori komponen HiveMetaStore. Ukuran memori default adalah 500 MiB. Untuk informasi lebih lanjut, lihat Ubah Parameter Memori Layanan Hive.

    • Periksa pesan kesalahan dalam log komponen HiveMetaStore. Jika komponen HiveMetaStore tidak dapat dimulai, periksa apakah konfigurasi tautan database benar.

  • Penyebab 2: Klien tidak terhubung ke komponen HiveMetaStore. Ini merupakan penyebab umum masalah bagi klien yang diterapkan pada instance Elastic Compute Service (ECS) yang dikelola sendiri.

    Solusi: Periksa apakah klien terhubung ke komponen HiveMetaStore. Jika klien tidak terhubung, buat koneksi antara klien dan komponen HiveMetaStore.

Masalah terkait HiveServer2

Masalah 1: HiveServer2 tiba-tiba restart dan berjalan sesuai harapan setelah beberapa saat

Penyebab: Mungkin terjadi pengecualian di HiveServer2. Periksa apakah jumlah pernyataan SQL yang dieksekusi meningkat atau beban layanan berat. Jika beban layanan berat, sesuaikan ukuran memori komponen HiveServer2.

Solusi: Periksa lingkungan mesin tempat komponen HiveServer2 diterapkan dan ikuti petunjuk yang dijelaskan di Menemukan Pengecualian.

Masalah 2: Akhir file tak terduga saat membaca dari server HS2. Penyebab utamanya mungkin terlalu banyak koneksi bersamaan

Penyebab: HiveServer2 kelebihan beban.

Solusi: Periksa apakah aplikasi, seperti pekerjaan Flink, terus-menerus memanggil CLI Hive. Jika aplikasi terus-menerus memanggil CLI Hive, hentikan aplikasi. Jika tidak ada aplikasi abnormal yang ditemukan, sesuaikan ukuran memori dan ubah parameter hive.server2.thrift.max.worker.threads. Untuk informasi lebih lanjut tentang cara menyesuaikan ukuran memori, lihat Ubah Parameter Memori Layanan Hive.

Masalah 3: Tidak dapat terhubung ke salah satu dari [xxx, 10000]

Penyebab: Mungkin terjadi pengecualian di HiveServer2.

Solusi: Periksa lingkungan mesin tempat komponen HiveServer2 diterapkan atau periksa komponen dengan mengikuti petunjuk yang dijelaskan di Menemukan Pengecualian.

Masalah 4: java.lang.OutOfMemoryError: Ruang kelas terkompresi

Penyebab: Ruang kelas terkompresi komponen HiveServer tidak mencukupi.

Solusi: Tingkatkan ruang kelas terkompresi komponen HiveServer dengan melakukan operasi berikut: Di konsol E-MapReduce (EMR), buka tab Konfigurasi halaman layanan Hive. Di tab Konfigurasi, klik tab hive-env.sh dan tingkatkan nilai parameter XX:CompressedClassSpaceSize dalam item konfigurasi hive_server2_opts. Pertahankan nilai default untuk parameter lain dalam item konfigurasi. Sebagai contoh, Anda dapat menetapkan parameter XX:CompressedClassSpaceSize menjadi 512m.