Home » Software » Apa itu Hive ?

Apa itu Hive ?

by Wahyu Saputra S.Kom
by Wahyu Saputra S.Kom

Proses Big data saat ini melibatkan sejumlah pemrosesan yang besar dari informasi yang beragam dan memberikan wawasan dengan cepat sehingga karakteristik tersebut sering disimpulkan dengan empat V: volume, variety, velocity, dan veracity. Data scientist dan para analis membutuhkan alat khusus untuk membantu mengubah informasi yang masih berupa data mentah ini menjadi sebuah konten yang dapat ditindaklanjuti, sehingga berpotensi menghasilkan tugas yang luar biasa. Untungnya, ada beberapa tools yang mampu mendukung proses tersebut.

Hadoop adalah salah satu kerangka kerja perangkat lunak paling populer yang dirancang untuk memproses dan menyimpan informasi Big Data. Hive juga merupakan alat yang dirancang untuk digunakan dengan Hadoop. Dalam Artikel ini akan dibahas mengenai peran Hive dalam big data, serta arsitektur hive dan teknik optimalisasinya.

Mari kita mulai dengan memahami apa itu Hive di Hadoop.

Apa itu Hive di Hadoop ?

Tidak ada yang bisa menjelaskan dengan lebih baik apa itu Hive di Hadoop daripada pencipta Hive sendiri, menurut mereka Hive adalah : ‘Perangkat lunak data warehouse Apache Hive yang memfasilitasi dalam membaca, menulis, dan mengelola set data besar yang berada di penyimpanan terdistribusi menggunakan SQL. Struktur tersebut dapat diproyeksikan ke data yang sudah ada di penyimpanan.’

Dengan kata lain, Hive adalah sistem open sources yang memproses data terstruktur di Hadoop, berada di lapisan paling atas dan terakhir untuk meringkas Big Data, serta memfasilitasi analisis dan kueri.

Setelah melihat pengertian dari Hive di Hadoop, selanjutnya mari kita lihat fitur dan karakteristiknya.

Fitur dan Karakteristik Hive

Berikut ini adalah karakteristik utama Hive yang perlu diingat saat menggunakannya untuk pemrosesan data:

  • Hive dirancang untuk melakukan kueri dan mengelola hanya untuk data terstruktur yang disimpan dalam table
  • Hive dapat diskalakan, cepat, dan menggunakan konsep yang telah familiar
  • Skema akan disimpan dalam database, sementara data yang diproses masuk ke Hadoop Distributed File System (HDFS)
  • Tabel dan database dibuat terlebih dahulu; lalu data akan dimuat ke dalam tabel yang sesuai
  • Hive mendukung empat format file: ORC, SEQUENCEFILE, RCFILE (Record Columnar File), dan TEXTFILE
  • Hive menggunakan bahasa yang terinspirasi dari SQL, sehingga memudahkan pengguna dalam  melakukan pekerjaan yang berhubungan dengan kompleksitas pemrograman MapReduce. Ini membuat pembelajaran lebih mudah diakses dengan menggunakan konsep yang familiar dan ditemukan dalam database relasional, seperti kolom, tabel, baris, dan skema, dan lain-lain.
  • Perbedaan paling signifikan antara Hive Query Language (HQL) dan SQL adalah bahwa Hive menjalankan kueri pada infrastruktur Hadoop disamping infrastruktur database tradisional
  • Karena pemrograman Hadoop bekerja pada file yang datar, maka Hive menggunakan struktur direktori untuk data ‘partisi’, sehingga meningkatkan kinerja pada kueri tertentu
  • Hive mendukung partisi dan bucket untuk pengambilan data yang cepat dan sederhana
  • Hive mendukung custom user-defined functions (UDF) untuk beberapa tugas seperti pembersihan dan pemfilteran data. HIVE UDF dapat didefinisikan sesuai dengan persyaratan programmer

Bagaimana Data Flow di Hive ?

Berikut bagaimana data flow di Hive dilakukan yaitu :

  • Analis data menjalankan kueri dengan User Interface (UI).
  • Driver berinteraksi dengan kompilasi kueri untuk mengambil paket, yang terdiri dari proses eksekusi kueri dan informasi metadata. Driver juga mengurai kueri untuk memeriksa sintaks dan persyaratan.
  • Compiler membuat rencana pekerjaan (metadata) untuk dieksekusi dan berkomunikasi dengan metastore untuk mengambil permintaan metadata.
  • Metastore mengirim informasi metadata kembali ke kompilasi
  • Compiler menyampaikan rencana eksekusi kueri yang diusulkan ke driver.
  • Driver mengirimkan rencana eksekusi ke Execution Engine.
  • Execution Engine (EE) memproses kueri dengan bertindak sebagai jembatan antara Hive dan Hadoop. Proses pekerjaan dijalankan di MapReduce. Execution Engine mengirim pekerjaan ke JobTracker, ditemukan di node Nama, dan menetapkannya ke TaskTracker, di node Data. Selama proses ini berlangsung, Execution Engine menjalankan operasi metadata dengan metastore.
  • Hasilnya diambil dari node data.
  • Hasilnya dikirim ke Execution Engine, yang pada saatnya, mengirimkan hasilnya kembali ke driver dan User Interface (UI).

Setelah mengetahui ap aitu dan bagaimana cara kerja dari Hive, maka kita perlu mengetahui bahwa :

  • Hive bukan bahasa untuk row-level update dan kueri real-time
  • Hive bukan database relasional
  • Hive bukanlah di desain untuk Pemrosesan Transaksi Online

Setelah mengetahui bagaimana data flow di Hive, selanjutnya mari kita lihat mode dari Hive.

Mode Hive

Tergantung pada ukuran node data Hadoop, Hive dapat beroperasi dalam dua mode berbeda:

  • Local mode
  • Map reduce mode

Local mode digunakan ketika :

  • Hadoop diinstal di bawah mode pseudo, dimana hanya memiliki satu node data
  • Ukuran data lebih kecil dan terbatas pada satu mesin local
  • Pengguna dapat melakukan pemrosesan yang lebih cepat karena mesin lokal berisi set data yang lebih kecil.

Map reduce mode digunakan ketika :

  • Hadoop memiliki beberapa node data, dan data didistribusikan di berbagai node ini
  • Pengguna harus berhubungan dengan kumpulan data yang lebih massif

Map reduce mode merupakan default mode dari Hive.

Teknik Optimalisasi Hive

Analis data yang ingin mengoptimalkan kueri Hive tersebut dan membuatnya berjalan lebih cepat di klaster maka harus mempertimbangkan beberapa hal berikut:

  • Partisi data kita untuk mengurangi waktu baca dalam direktori kita, atau semua data akan dibaca
  • Gunakan format file yang sesuai seperti Optimized Row Columnar (ORC) untuk meningkatkan kinerja kueri. ORC mampu mengurangi ukuran data asli hingga 75 persen
  • Membagi set tabel menjadi bagian yang lebih mudah dikelola dengan menggunakan bucketing
  • Tingkatkan agregasi, filter, pemindaian, dan gabungan dengan memaktorasi kueri kita. Lakukan fungsi ini dalam batch 1024 baris sekaligus, bukan satu per satu
  • Buat tabel indeks terpisah yang berfungsi sebagai referensi cepat untuk tabel asli.

You may also like