Topik ini menjawab beberapa pertanyaan umum tentang Hive.
null
- Untuk informasi tentang cara memecahkan masalah terkait pekerjaan Hive, lihat Memecahkan masalah terkait pekerjaan Hive.
- Untuk informasi tentang cara memecahkan masalah terkait HiveMetaStore dan HiveServer, lihat Memecahkan masalah terkait layanan Hive.
- Apa yang harus saya lakukan jika pekerjaan berada dalam keadaan menunggu untuk waktu yang lama?
- Apa yang harus saya lakukan jika file kecil dibaca di tahap map?
- Apa yang harus saya lakukan jika tugas reduce menghabiskan banyak waktu?
- Bagaimana cara memperkirakan jumlah maksimum pekerjaan Hive yang dapat dijalankan secara bersamaan?
- Mengapa tabel eksternal yang dibuat di Hive tidak berisi data?
Apa yang harus saya lakukan jika pekerjaan berada dalam keadaan menunggu untuk waktu yang lama?
Ikuti langkah-langkah berikut untuk mengidentifikasi masalah:
- Buka tab Access Links and Ports di konsol E-MapReduce (EMR) dan klik tautan di kolom Access URL yang sesuai dengan YARN UI.
- Klik ID aplikasi.
- Klik tautan di sebelah Tracking URL.Banyak pekerjaan berada dalam keadaan menunggu.

- Di panel navigasi di sebelah kiri, klik Scheduler.Anda dapat memeriksa apakah sumber daya di antrian sepenuhnya digunakan atau apakah pekerjaan saat ini menghabiskan banyak waktu. Jika antrian tidak memiliki sumber daya yang cukup, Anda dapat memindahkan pekerjaan yang sedang menunggu dari antrian saat ini ke antrian yang idle. Jika pekerjaan saat ini menghabiskan banyak waktu, optimalkan kode.

Apa yang harus saya lakukan jika file kecil dibaca di tahap map?
Ikuti langkah-langkah berikut untuk mengidentifikasi masalah:
- Buka tab Access Links and Ports di konsol EMR dan klik tautan di kolom Access URL yang sesuai dengan YARN UI.
- Klik ID aplikasi.Anda dapat melihat ukuran data yang dibaca di setiap tugas map pada halaman Map tasks. Ukuran data yang dibaca adalah dua byte, seperti yang ditunjukkan pada gambar berikut. Jika ukuran data dalam file yang dibaca di sebagian besar tugas map kecil, gabungkan file kecil tersebut.

Anda juga dapat melihat lebih banyak informasi di log setiap tugas map.
Apa yang harus saya lakukan jika tugas reduce menghabiskan banyak waktu?
Ikuti langkah-langkah berikut untuk mengidentifikasi masalah:
- Buka tab Access Links and Ports di konsol EMR dan klik tautan di kolom Access URL yang sesuai dengan YARN UI.
- Klik ID aplikasi.
- Di halaman Reduce tasks, urutkan tugas reduce berdasarkan waktu penyelesaian secara menurun dan kemudian temukan tugas reduce teratas yang paling lama dieksekusi.

- Klik nama tugas reduce teratas.
- Di panel navigasi di sebelah kiri halaman detail tugas, klik Counters.
Lihat nilai metrik Reduce input records dan Reduce shuffle bytes dalam tugas reduce saat ini. Jika nilai kedua metrik tersebut lebih besar daripada nilai kedua metrik tersebut di tugas lain, terjadi bias data.
Bagaimana cara memperkirakan jumlah maksimum pekerjaan Hive yang dapat dijalankan secara bersamaan?
Jumlah maksimum pekerjaan Hive yang dapat dijalankan secara bersamaan bergantung pada ukuran memori HiveServer2 dan jumlah node master. Anda dapat menggunakan rumus berikut untuk memperkirakan konkurensi maksimum:
max_num = master_num × max(5, hive_server2_heapsize/512)Parameter dalam rumus:
- master_num: jumlah node master dalam kluster.
- hive_server2_heapsize: ukuran memori HiveServer2, yang ditentukan dalam file konfigurasi hive-env.sh. Ukuran defaultnya adalah 512 MB.
Contoh: Jika sebuah kluster memiliki tiga node master dan ukuran memori HiveServer2 adalah 4 GB, konkurensi maksimum adalah 24. Dalam hal ini, hingga 24 pekerjaan Hive dapat dijalankan secara bersamaan.
Mengapa tabel eksternal yang dibuat di Hive tidak berisi data?
- Deskripsi masalah: Setelah tabel eksternal dibuat, tabel tersebut di-query tetapi tidak ada data yang dikembalikan.Pernyataan contoh yang digunakan untuk membuat tabel eksternal:
CREATE EXTERNAL TABLE storage_log(content STRING) PARTITIONED BY (ds STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION 'oss://log-12453****/your-logs/airtake/pro/storage';Perintah yang digunakan untuk query data:select * from storage_log; - Penyebab: Hive tidak secara otomatis mengasosiasikan direktori Partitions.
- Solusi:
- Tentukan secara manual direktori Partitions:
alter table storage_log add partition(ds=123); - Query data.
select * from storage_log;Data berikut dikembalikan:OK abcd 123 efgh 123
- Tentukan secara manual direktori Partitions: