LN06-Hadoop Platform Management [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

LECTURE NOTES



Big Data Technologies



Minggu 6



Hadoop Platform Management



COMP6725 - Big Data Technologies



LEARNING OUTCOMES LO 1: Menjelaskan layer arsitektur dan konsep pengolahan Big Data Outcome: Mahasiswa mampu menjelaskan layer arsitektur dan konsep pengolahan Big Data.



OUTLINE MATERI (Sub-Topic): •



Hadoop and MapReduce







Pig







Apache Spark







Hive/HiveQL – Apache



COMP6725 - Big Data Technologies



ISI MATERI 1.



Hadoop and MapReduce



Apache Hadoop adalah kerangka kerja open source untuk pemrosesan batch terdistribusi dari data besar. Demikian pula, MapReduce adalah model pemrograman paralel yang cocok untuk analisis data besar. Algoritma MapReduce memungkinkan komputasi skala besar untuk secara otomatis diparalelkan di cluster besar server. a. Model Pemrograman MapReduce MapReduce adalah model pemrosesan data paralel untuk pemrosesan dan analisis data skala besar. Model MapReduce memiliki dua fase: Map dan Reduce. Program MapReduce ditulis dalam gaya pemrograman fungsional untuk membuat fungsi Map dan Reduce. Data masukan untuk fase map dan reduksi berupa key-value pair. Sistem run-time untuk MapReduce biasanya merupakan cluster besar yang dibangun dari perangkat keras komoditas. Sistem run-time MapReduce menangani tugastugas seperti mempartisi data, menjadwalkan pekerjaan, dan komunikasi antar node dalam cluster. Ini memudahkan pemrogram untuk menganalisis data skala besar tanpa mengkhawatirkan tugas-tugas seperti partisi data dan penjadwalan. Pada fase map, data dibaca dari sistem file terdistribusi, dipartisi di antara satu set node komputasi di cluster, dan dikirim ke node sebagai satu set pasangan kuncinilai. Tugas map memproses catatan input secara independen satu sama lain dan menghasilkan hasil antara sebagai pasangan nilai kunci. Hasil antara disimpan di disk lokal node yang menjalankan tugas Map. Ketika semua tugas Map selesai, fase Reduce dimulai di mana data perantara dengan kunci yang sama dikumpulkan. Tugas Combine opsional dapat digunakan untuk melakukan agregasi data pada data perantara dari kunci yang sama untuk output mapper sebelum mentransfer output ke tugas Reduce. Program MapReduce memanfaatkan lokalitas data dan pemrosesan data berlangsung di node tempat data berada. Dalam pendekatan tradisional untuk analisis data, data dipindahkan ke node komputasi yang mengakibatkan penundaan transmisi data antara node dalam sebuah cluster. Namun, model pemrograman MapReduce memindahkan komputasi ke tempat data berada sehingga mengurangi transmisi data dan meningkatkan efisiensi. Model pemrograman MapReduce sangat cocok untuk pemrosesan paralel data skala besar di mana tugas analisis data dapat diselesaikan dengan map independen dan operasi reduce.



COMP6725 - Big Data Technologies



Pic 6.1 Map/Reduce slot assignments for a word count MapReduce job Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Pic 6.2 Map/Reduce slot assignments for an inverted index MapReduce job Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



b. Hadoop YARN Hadoop YARN adalah arsitektur generasi berikutnya dari Hadoop (versi 2.x). Dalam arsitektur YARN, mesin pemrosesan asli Hadoop (MapReduce) telah dipisahkan dari komponen manajemen sumber daya (yang sekarang menjadi bagian dari YARN).



Pic 6.3 Comparison of Hadoop 1.x and 2.x architectures Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Hal ini membuat YARN secara efektif menjadi sistem operasi untuk Hadoop yang mendukung berbagai mesin pemrosesan pada cluster Hadoop seperti MapReduce



COMP6725 - Big Data Technologies



untuk pemrosesan batch, Apache Tez untuk kueri interaktif, Apache Storm untuk pemrosesan aliran. Arsitektur MapReduce generasi berikutnya membagi dua fungsi utama JobTracker di Hadoop 1.x - manajemen sumber daya dan manajemen siklus hidup pekerjaan menjadi komponen terpisah - ResourceManager dan ApplicationMaster. Komponen utama YARN dijelaskan sebagai berikut: • Resource Manager (RM): RM mengelola penugasan global sumber daya komputasi untuk aplikasi. RM terdiri dari dua layanan utama: o Scheduler: Scheduler adalah layanan pluggable yang mengelola dan memberlakukan kebijakan penjadwalan sumber daya di cluster. o Applications Manager (AsM): AsM mengelola Master Aplikasi yang sedang berjalan di cluster. AsM bertanggung jawab untuk memulai master aplikasi dan untuk memantau dan memulai ulang pada node yang berbeda jika terjadi kegagalan. • Application Master (AM): AM per aplikasi mengelola siklus hidup aplikasi. AM bertanggung jawab untuk menegosiasikan sumber daya dari RM dan bekerja dengan NM untuk melaksanakan dan memantau tugas. • Node Manager (NM): NM per mesin mengelola proses pengguna pada mesin itu. • Containers: Containers adalah kumpulan sumber daya yang dialokasikan oleh RM (memori, CPU, dan jaringan). Containers adalah entitas konseptual yang memberikan aplikasi hak istimewa untuk menggunakan sejumlah sumber daya pada mesin tertentu untuk menjalankan tugas. Setiap node memiliki NM yang memunculkan beberapa containers berdasarkan alokasi sumber daya yang dibuat oleh RM.



Pic 6.4 Hadoop MapReduce Next Generation (YARN) job execution Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



COMP6725 - Big Data Technologies



Gambar diatas menunjukkan alur kerja eksekusi pekerjaan MapReduce untuk kerangka kerja Hadoop MapReduce (MR2) generasi berikutnya serta menunjukkan cluster YARN dengan node Resource Manager dan tiga node Node Manager. Ada banyak Master Aplikasi yang berjalan karena ada aplikasi (pekerjaan). Setiap AM aplikasi mengelola tugas aplikasi seperti memulai, memantau, dan memulai kembali tugas jika terjadi kegagalan. Setiap aplikasi memiliki banyak tugas. Setiap tugas berjalan dalam container terpisah. Container dalam arsitektur YARN mirip dengan slot tugas di Hadoop MapReduce 1.x (MR1). Namun, tidak seperti MR1 yang membedakan antara map dan slot perkecil, setiap container di YARN dapat digunakan untuk tugas map dan reduce. Model alokasi sumber daya di MR1 terdiri dari sejumlah slot map dan slot pereduksi yang telah ditentukan sebelumnya. Alokasi statis slot ini menghasilkan pemanfaatan cluster yang rendah. Model alokasi sumber daya YARN lebih fleksibel dengan pengenalan container sumber daya yang meningkatkan pemanfaatan cluster.



Pic 6.5 Client - Resource Manager interaction Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Untuk lebih memahami alur kerja eksekusi pekerjaan YARN, mari kita menganalisis interaksi antara komponen utama pada YARN. Gambar 5.5 menunjukkan interaksi antara Klien dan Resource Manager. Eksekusi pekerjaan dimulai dengan pengajuan permintaan aplikasi baru oleh klien ke RM. RM kemudian merespons dengan ID aplikasi unik dan informasi tentang kemampuan sumber daya cluster yang akan dibutuhkan klien dalam meminta sumber daya untuk menjalankan AM aplikasi. Menggunakan informasi yang diterima dari RM, klien membangun dan mengirimkan Konteks Pengajuan Aplikasi yang berisi informasi seperti antrian penjadwal, prioritas, dan informasi pengguna. Konteks Pengajuan Aplikasi juga berisi Konteks Peluncuran Kontainer yang berisi jar aplikasi, file pekerjaan, token keamanan, dan persyaratan sumber daya apa pun. Klien dapat meminta RM untuk laporan aplikasi. Klien juga dapat "membunuh paksa" aplikasi dengan mengirimkan permintaan ke RM.



COMP6725 - Big Data Technologies



Pic 6.6 Resource Manager - Application Master interaction Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Gambar 6.6 menunjukkan interaksi antara Resource Manager dan Application Master. Setelah menerima konteks pengajuan aplikasi dari klien, RM menemukan container yang tersedia yang memenuhi persyaratan sumber daya untuk menjalankan AM untuk aplikasi. Saat menemukan container yang cocok, RM menghubungi NM agar container memulai proses AM pada simpulnya. Ketika AM diluncurkan, ia mendaftarkan dirinya ke RM. Proses pendaftaran terdiri dari handshaking yang menyampaikan informasi seperti port RPC yang akan didengarkan AM, URL pelacakan untuk memantau status dan kemajuan aplikasi, dll. Respons pendaftaran dari RM berisi informasi untuk AM yang digunakan dalam menghitung dan meminta permintaan sumber daya apa pun untuk tugas individu aplikasi (seperti kemampuan sumber daya minimum dan maksimum untuk cluster). AM menyampaikan dan informasi kemajuan ke RM. AM mengirimkan permintaan alokasi sumber daya ke RM yang berisi daftar container yang diminta, dan mungkin juga berisi daftar container yang dirilis oleh AM. Setelah menerima permintaan alokasi, komponen penjadwal RM menghitung daftar kontainer yang memenuhi permintaan dan mengirimkan kembali respons alokasi. Setelah menerima daftar sumber daya, AM menghubungi NM terkait untuk memulai container. Ketika pekerjaan selesai, AM mengirimkan pesan Finish Application ke RM.



Pic 6.7 Resource Manager - Application Master interaction Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Gambar 6.7 menunjukkan interaksi antara Application Master dan Node Manager. Berdasarkan daftar sumber daya yang diterima dari RM, AM meminta NM hosting untuk setiap wadah untuk memulai wadah. AM dapat meminta dan menerima laporan status container dari Node Manager.



COMP6725 - Big Data Technologies



c.



Hadoop Schedulers



Pic 6.8 MapReduce job execution within a YARN cluster Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Scheduler adalah komponen pluggable di Hadoop yang memungkinkan untuk mendukung algoritma penjadwalan yang berbeda. Kerangka kerja scheduler pluggable memberikan fleksibilitas untuk mendukung berbagai beban kerja dengan berbagai prioritas dan kendala kinerja. Algoritma penjadwalan Hadoop dijelaskan sebagai berikut: • FIFO Penjadwal FIFO mempertahankan antrian pekerjaan di mana pekerjaan diantrekan. Penjadwal menarik pekerjaan dengan cara first-in-first-out (pekerjaan tertua terlebih dahulu) untuk penjadwalan. Tidak ada konsep prioritas atau ukuran pekerjaan dalam penjadwal FIFO. • Fair Scheduler Fair Scheduler awalnya dikembangkan oleh Facebook. Facebook menggunakan Hadoop untuk mengelola konten besar dan data log yang terakumulasi setiap hari. Kami memahami bahwa kebutuhan akan Fair Scheduler muncul ketika Facebook ingin berbagi infrastruktur pergudangan data di antara banyak pengguna. Fair Scheduler mengalokasikan sumber daya secara merata di antara banyak pekerjaan dan juga memberikan jaminan kapasitas. Fair Scheduler menetapkan sumber daya ke pekerjaan sedemikian rupa sehingga setiap pekerjaan mendapat bagian yang sama dari sumber daya yang tersedia secara rata-rata dari waktu ke waktu. Tidak seperti penjadwal FIFO, yang membentuk antrian pekerjaan, Fair Scheduler memungkinkan pekerjaan pendek selesai dalam waktu yang wajar tanpa membuat pekerjaan panjang kelaparan. Fair Scheduler berguna ketika kluster Hadoop kecil atau besar dibagikan di antara beberapa grup pengguna dalam suatu organisasi. Meskipun Fair Scheduler memastikan keadilan dengan mempertahankan satu set kumpulan dan menyediakan kapasitas yang dijamin untuk setiap kumpulan, itu tidak memberikan jaminan waktu apa pun dan karenanya tidak dilengkapi dengan baik untuk pekerjaan waktu nyata.



COMP6725 - Big Data Technologies



d. Hadoop - Contoh MapReduce



Pic 6.9 Using Hadoop MapReduce for batch analysis of sensor data Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Gambar diatas menunjukkan alur kerja Hadoop MapReduce untuk analisis batch data cuaca. Analisis batch dilakukan untuk mengumpulkan data (seperti rata-rata komputasi, maksimum, dan minimum) pada berbagai rentang waktu. Untuk contoh ini, kami akan berasumsi bahwa kami memiliki pengumpul data yang mengambil data sensor yang dikumpulkan di database cloud dan membuat file data mentah dalam bentuk yang sesuai untuk diproses oleh Hadoop. File data mentah terdiri dari pembacaan sensor mentah bersama dengan stempel waktu seperti yang ditunjukkan di bawah ini: "2015-04-29 10:15:32",38,42,34,5 : "2015-04-30 10:15:32",87,48,21,4



Kotak 7.1 menunjukkan program map untuk analisis batch data sensor. Program map membaca data dari input standar (stdin) dan membagi data menjadi stempel



COMP6725 - Big Data Technologies



waktu dan pembacaan sensor individual. Program map memancarkan pasangan nilai kunci di mana kuncinya adalah bagian dari stempel waktu (yang bergantung pada skala waktu di mana data akan dikumpulkan) dan nilainya adalah rangkaian pembacaan sensor yang dipisahkan koma.



Kotak 7.2 menunjukkan program reduce untuk analisis batch data sensor. Pasangan nilai kunci yang dipancarkan oleh program map dikocok ke reduce dan dikelompokkan berdasarkan kunci. reduce membaca pasangan nilai kunci yang dikelompokkan dengan kunci yang sama dari input standar dan menghitung ratarata suhu, kelembaban, cahaya, dan pembacaan CO.



COMP6725 - Big Data Technologies



Kotak 7.3 menunjukkan perintah untuk mengirimkan pekerjaan MapReduce pada cluster Hadoop dan melihat file output pada HDFS.



2.



Pig



Pic 6.10 Pig – internal process Source: Big Data Concepts, Technology, and Architecture. 2021



Pig dikembangkan di Yahoo. Pig memiliki dua komponen. Komponen pertama adalah bahasa pig, disebut Pig Latin, dan yang kedua adalah lingkungan di mana skrip Pig Latin dieksekusi. Tidak seperti HBase dan HQL, yang hanya dapat menangani data terstruktur, Pig dapat menangani semua jenis kumpulan data, yaitu terstruktur, semi terstruktur, dan tidak terstruktur. Skrip pig pada dasarnya difokuskan untuk menganalisis kumpulan data besar yang mengurangi waktu yang digunakan untuk menulis kode untuk Mapper dan Reducer. Pemrogram yang tidak memiliki pengetahuan dasar tentang bahasa Java dapat melakukan tugas MapReduce menggunakan bahasa Pig Latin. Ratusan baris yang dikodekan dalam Java dapat dieksekusi menggunakan lebih sedikit skrip Pig Latin. Skrip Latin Pig secara internal diubah menjadi pekerjaan MapReduce dan dieksekusi pada lingkungan terdistribusi Hadoop. Konversi ini dilakukan oleh Pig Engine, yang menerima



COMP6725 - Big Data Technologies



skrip Pig Latin sebagai input dan menghasilkan pekerjaan MapReduce sebagai output. Skrip pig melewati beberapa langkah untuk dikonversi ke pekerjaan MapReduce. Parser memeriksa sintaks skrip. Pengoptimal melakukan pengoptimalan logis. Kompiler mengkompilasi kode yang dioptimalkan secara logis ke dalam pekerjaan MapReduce. Mesin eksekusi mengirimkan pekerjaan MapReduce ke Hadoop, dan kemudian pekerjaan MapReduce ini dijalankan di lingkungan terdistribusi Hadoop. Pig adalah bahasa pemrosesan data tingkat tinggi yang memudahkan pengembang untuk menulis skrip analisis data, yang diterjemahkan ke dalam program MapReduce oleh kompiler Pig. Pig termasuk: (1) bahasa tingkat tinggi (disebut Pig Latin) untuk mengekspresikan program analisis data dan (2) kompiler yang menghasilkan urutan program MapReduce dari skrip pig. Pig dapat dieksekusi baik dalam mode lokal atau mode MapReduce. Dalam mode lokal, Pig berjalan di dalam satu proses JVM pada mesin lokal. Mode lokal berguna untuk tujuan pengembangan dan pengujian skrip dengan file data kecil pada satu mesin. Mode MapReduce membutuhkan cluster Hadoop. Dalam mode MapReduce, Pig dapat menganalisis data yang disimpan dalam HDFS. Kompilator pig menerjemahkan skrip pig ke dalam program MapReduce yang dijalankan di cluster Hadoop. Pig menyediakan shell interaktif yang disebut grunt, untuk mengembangkan skrip pig. Grunt dapat diluncurkan sebagai berikut:



Mari kita lihat beberapa operator pig yang umum digunakan dengan contoh. Kita menggunakan dataset cuaca NCDC sebagai contoh. NCDC menyediakan akses ke data harian dari Jaringan Referensi Iklim AS / Jaringan Referensi Iklim Regional AS (USCRN/USRCRN) melalui FTP. a. Loading Data Pig menyediakan operator LOAD untuk memuat data. Operator LOAD memuat data dari file ke dalam relasi. Relasi Pig adalah kumpulan tupel di mana setiap tupel memiliki beberapa bidang. Contoh operator LOAD ditunjukkan di bawah ini:



b. Tipe Data di pig Pig mendukung tipe data sederhana seperti int, long, float, double, chararray, bytearray, boolean, datetime, dan tipe data kompleks seperti tuple, bag, dan map. Tipe data sederhana bekerja dengan cara yang sama seperti dalam bahasa pemrograman lainnya. Mari kita lihat tipe data yang kompleks secara rinci.



COMP6725 - Big Data Technologies



c.







Tupel Tuple adalah kumpulan field yang terurut.







Bag Bag adalah kumpulan tupel yang tidak berurutan. Sebuah bag diwakili dengan kurung kurawal.







Map Map adalah sekumpulan pasangan nilai kunci. map diwakili dengan tanda kurung siku dan # digunakan untuk memisahkan kunci dan nilai.



Filtering & Analisis Data Operator FOREACH digunakan untuk memproses setiap baris dalam suatu relasi dan operator GENERATE digunakan untuk mendefinisikan bidang dan menghasilkan baris baru dari aslinya. Misalnya, dengan dataset cuaca yang dimuat sebelumnya, untuk menghasilkan hubungan hanya dengan bulan dan suhu, FOREACH dan GENERATE dapat digunakan sebagai berikut:



Operator FILTER digunakan untuk menyaring tupel dari relasi berdasarkan kondisi yang ditentukan. Misalnya, untuk memfilter semua baris dengan suhu kurang dari 20, operator FILTER dapat digunakan sebagai berikut:



Operator GROUP dapat digunakan untuk mengelompokkan data dalam satu atau lebih relasi. Misalnya, untuk mengelompokkan relasi monthTemp menurut bidang bulan, operator GROUP dapat digunakan sebagai berikut:



Operator UNION dapat digunakan untuk menggabungkan isi dari dua atau lebih relasi. Contoh di bawah ini menunjukkan cara mendapatkan gabungan dua relasi:



COMP6725 - Big Data Technologies



Operator JOIN digunakan untuk menggabungkan dua relasi. Misalnya, untuk menggabungkan dua relasi (satu yang menahan suhu maksimum di setiap bulan dan yang lainnya menahan suhu minimum di setiap bulan), JOIN dapat digunakan sebagai berikut:



Pig menyediakan berbagai fungsi bawaan seperti AVG, MIN, MAX, SUM, dan COUNT. Pada contoh di atas, MAX dan MIN digunakan untuk mendapatkan suhu maksimum dan minimum setiap bulannya. Ekspresi $N dalam pernyataan join digunakan untuk menentukan kolom dimana join harus dilakukan. Atau, nama kolom juga dapat diberikan. d. Storing Hasil Untuk menyimpan hasil pada sistem file digunakan operator STORE. Pig menggunakan strategi evaluasi malas dan menunda evaluasi ekspresi hingga operator STORE atau DUMP memicu hasil untuk disimpan atau ditampilkan.



e. Debugging Operator Operator DUMP digunakan untuk membuang hasil di konsol. DUMP digunakan dalam mode interaktif untuk keperluan debugging. Operator DESCRIBE digunakan untuk melihat skema suatu relasi.



Operator EXPLAIN digunakan untuk melihat rencana eksekusi logis, fisik, dan MapReduce untuk menghitung suatu relasi. Contoh berikut menunjukkan rencana eksekusi untuk menghitung relasi monthTemp.



COMP6725 - Big Data Technologies



Operator ILLUSTRATE digunakan untuk menampilkan eksekusi langkah demi langkah pernyataan untuk menghitung relasi dengan sampel data yang kecil. Contoh di bawah ini menunjukkan pernyataan ILLUSTRATE untuk relasi monthTemp.



COMP6725 - Big Data Technologies



3.



Apache Spark



Apache Spark adalah kerangka kerja komputasi cluster open source untuk analisis data. Spark mendukung komputasi cluster dalam memori dan berjanji akan lebih cepat daripada Hadoop. Spark mendukung berbagai alat tingkat tinggi untuk analisis data seperti Spark Streaming untuk tugas streaming, Spark SQL untuk analisis data terstruktur, perpustakaan pembelajaran mesin MLlib untuk Spark, dan GraphX untuk pemrosesan grafik. Spark memungkinkan kueri real-time, batch, dan interaktif serta menyediakan API untuk bahasa Scala, Java, dan Python.



Pic 6.11 Spark tools Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016







• • •



Spark Core: Spark Core menyediakan fungsionalitas umum (seperti penjadwalan tugas dan input/output), yang digunakan oleh komponen Spark lainnya. Spark menyediakan abstraksi data yang disebut resilient distributed dataset (RDD) yang merupakan kumpulan elemen yang dipartisi di seluruh node dalam cluster Spark. Elemen RDD dapat dioperasikan secara paralel dalam cluster. RDD adalah kumpulan objek yang tidak berubah dan terdistribusi. Spark Streaming: Spark Streaming adalah komponen Spark untuk analisis data streaming seperti data sensor, data clickstream, log server web, dll. Spark SQL: Spark SQL adalah komponen Spark yang memungkinkan kueri data interaktif menggunakan kueri SQL. Spark MLlib: Spark MLlib adalah perpustakaan pembelajaran mesin Spark yang menyediakan implementasi algoritme pembelajaran mesin yang umum digunakan untuk pengelompokan, klasifikasi, regresi, pemfilteran kolaboratif, dan pengurangan dimensi.



COMP6725 - Big Data Technologies







Spark GraphX: Spark GraphX adalah komponen untuk melakukan perhitungan grafik. GraphX menyediakan implementasi algoritma grafik umum seperti PageRank, komponen terhubung, dan penghitungan segitiga.



Pic 6.12 Components of a Spark cluster Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Gambar 6.12 menunjukkan komponen cluster Spark. Setiap aplikasi Spark terdiri dari program driver dan dikoordinasikan oleh objek SparkContext. Spark mendukung berbagai manajer cluster termasuk manajer cluster mandiri Spark, Apache Mesos, dan Hadoop YARN. Manajer cluster mengalokasikan sumber daya untuk aplikasi pada node pekerja. Pelaksana yang dialokasikan pada node pekerja menjalankan kode aplikasi sebagai banyak tugas. Aplikasi diisolasi satu sama lain dan dijalankan dalam proses pelaksananya sendiri di node pekerja. Spark hadir dengan skrip spark-ec2 (dalam direktori spark/ec2) yang memudahkan penyiapan klaster Spark di Amazon EC2. Dengan skrip spark-ec2, Anda dapat dengan mudah meluncurkan, mengelola, dan mematikan kluster Spark di Amazon EC2. Spark RDD mendukung dua jenis operasi: • •



4.



Transformasi: Transformasi digunakan untuk membuat kumpulan data baru dari yang sudah ada. Actions: Tindakan mengembalikan nilai ke program driver setelah menjalankan komputasi pada kumpulan data.



Hive/HiveQL – Apache



Apache Hive adalah kerangka kerja pergudangan data yang dibangun di atas Hadoop. Hive menyediakan bahasa kueri seperti SQL yang disebut Bahasa Kueri Hive, untuk kueri data yang berada di HDFS. Hive mengatur data ke dalam tabel seperti database relasional. Sementara data tabel berada di HDFS, Hive menyertakan Metastore yang menyimpan metadata tabel (seperti skema tabel). Tabel Hive diserialkan dan disimpan dalam HDFS. Untuk setiap tabel, Hive memiliki direktori di HDFS. Tabel dibagi menjadi beberapa partisi yang mempercepat kueri. Hive mengonversi kueri seperti SQL menjadi serangkaian tugas yang dijalankan di kluster Hadoop.



COMP6725 - Big Data Technologies



Pic 6.13 Apache Hive architecture Source: Big Data Concepts, Technology, and Architecture. 2021



Arsitektur Hive dan memiliki komponen berikut: Metastore—Metastore Hive menyimpan skema atau metadata tabel, dan klien diberikan akses ke data ini melalui API metastore. Arsitektur Hive dan memiliki komponen berikut: Metastore—Metastore Hive menyimpan skema atau metadata tabel, dan klien diberikan akses ke data ini melalui API metastore. •



• •



• •



Hive Query Language—HQL mirip dengan SQL dalam sintaks dan fungsi seperti memuat dan membuat kueri tabel. HQL digunakan untuk menanyakan informasi skema yang disimpan di metastore. HQL memungkinkan pengguna untuk melakukan beberapa kueri pada data yang sama dengan satu kueri HQL. JDBC/ODBC—Alat Hive berinteraksi dengan kerangka Hadoop dengan mengirimkan kueri melalui antarmuka seperti ODBC atau JDBC. Compiler—Kueri dikirim ke compiler untuk memeriksa sintaks. Kompiler meminta metadata dari metastore. Metastore mengirimkan metadata sebagai tanggapan atas permintaan dari kompiler. Parser—Kueri diubah menjadi representasi pohon parse dengan parser. Plan executor—Setelah kompilasi dan penguraian selesai, kompilator mengirimkan rencana ke JDBC/ODBC. Rencana tersebut kemudian diterima oleh Plan executor, dan pekerjaan MapReduce dijalankan. Hasilnya kemudian dikirim kembali ke antarmuka Hive.



Hive menyediakan shell untuk membuat tabel dan query data. Shell Hive dapat diluncurkan dengan perintah Hive. Kotak di bawah ini menunjukkan contoh membuat tabel Hive dari shell Hive.



Opsi tambahan seperti format baris, format penyimpanan, partisi, dan bucket juga dapat ditentukan saat membuat tabel seperti yang ditunjukkan pada contoh di bawah ini:



COMP6725 - Big Data Technologies



Tabel dapat dipartisi menjadi satu atau lebih kolom. Saat tabel dipartisi, Hive membuat direktori data terpisah untuk setiap kombinasi nilai yang berbeda di kolom partisi. Tabel dapat disimpan sebagai file teks biasa, SequenceFiles atau dalam format file ORC. Tabel atau partisi dapat dibagi lagi menjadi ember dengan menentukan kolom CLUSTERED BY. Data dapat diurutkan dalam ember dengan menentukan kolom SORT BY.



Pic 6.14 Creating Hive table from Hue - step 1 Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Gambar 6.14 menunjukkan cara membuat tabel Metastore dari antarmuka web Hue. File data dapat diunggah langsung dari wizard atau jika file sudah ada di HDFS, jalur file ditentukan. Untuk contoh di bagian ini, kami akan menggunakan dataset cuaca untuk kota Atlanta untuk tahun 2014, yang diperoleh dari Weather Underground.



COMP6725 - Big Data Technologies



Pic 6.15 Creating Hive table from Hue - step 2 Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Pembatas untuk file dataset ditentukan seperti yang ditunjukkan pada Gambar 6.15.



Pic 6.16 Creating Hive table from Hue - step 3 Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Pada langkah berikutnya, nama kolom dan tipe data untuk kolom ditentukan seperti yang ditunjukkan pada Gambar 5.16.



COMP6725 - Big Data Technologies



Pic 6.17 Hive table created from Hue Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Setelah menyelesaikan wizard pembuatan tabel, Anda dapat melihat kolom tabel bersama dengan tipe data seperti yang ditunjukkan pada Gambar 6.17. Sekarang mari kita lihat contoh beberapa kueri SQL yang dapat dieksekusi dari editor kueri Hive di Hue. Gambar 5.18a menunjukkan query SQL untuk mengambil sepuluh record dari tabel. Output query juga dapat dilihat pada gambar.



Pic 6.18 Querying data with Hive Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



COMP6725 - Big Data Technologies



Gambar 6.18 menunjukkan query SQL untuk menemukan suhu maksimum, minimum, dan rata-rata sepanjang tahun.



Pic 5.18a Querying data with Hive Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



Gambar 5.18a menunjukkan kueri SQL untuk menemukan sepuluh hari paling basah dalam setahun, diurutkan berdasarkan curah hujan.



Pic 6.18b Querying data with Hive Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016



COMP6725 - Big Data Technologies



SIMPULAN o Apache Hadoop adalah kerangka kerja sumber terbuka untuk pemrosesan batch terdistribusi dari data besar. MapReduce adalah model pemrosesan data paralel untuk pemrosesan dan analisis data skala besar. Model MapReduce memiliki dua fase: Map dan Reduce. Pada fase Map, data dibaca dari sistem file terdistribusi, dipartisi di antara satu set node komputasi dalam cluster, dan dikirim ke node sebagai satu set pasangan kunci-nilai. Tugas Map memproses catatan input secara independen satu sama lain dan menghasilkan hasil antara sebagai pasangan nilai kunci. Hasil antara disimpan di disk lokal node yang menjalankan tugas Map. Ketika semua tugas Map selesai, fase Reduce dimulai di mana data perantara dengan kunci yang sama dikumpulkan. Kami menggambarkan arsitektur Hadoop generasi berikutnya dan manajer cluster YARN. Selanjutnya, kami menjelaskan penjadwal Hadoop FIFO, Fair and Capacity. Kami memperkenalkan Pig, yang merupakan bahasa pemrosesan data tingkat tinggi. Pig memudahkan pengembang untuk menulis skrip analisis data, yang diterjemahkan ke dalam program MapReduce oleh kompiler Pig. o Hive adalah kerangka kerja pergudangan data yang dibangun di atas Hadoop. Hive menyediakan bahasa kueri seperti SQL yang disebut Bahasa Kueri Hive, untuk kueri data yang berada di HDFS.



COMP6725 - Big Data Technologies



DAFTAR PUSTAKA • •



• • • •



Arshdeep Bahga & Vijay Madisetti. (2016). Big Data Science & Analytics: A HandsOn Approach. 1st E. VPT. India. ISBN: 9781949978001. Chapter 7 and 9. Balusamy. Balamurugan, Abirami.Nandhini, Kadry.R, Seifedine, & Gandomi. Amir H. (2021). Big Data Concepts, Technology, and Architecture. 1st. Wiley. ISBN 978-1119-70182-8. Chapter 5. https://www.youtube.com/watch?v=vdkx2xasGlM https://www.youtube.com/watch?v=Hve24pRW_Ps https://www.youtube.com/watch?v=iJ4rPk3srvo https://www.youtube.com/watch?v=cMziv1iYt28



COMP6725 - Big Data Technologies