Nama
: Mochamad Iqbal Saepudin
NPM
: 50407526
Pembimbing : Dr.Lintang Yuniar Banowosari, SKom, MSc. Implementasi Mapreduce pada Very Large Database System
ABSTRAKSI Melihat tingginya angka jumlah penduduk Indonesia yang memasuki usia dewasa untuk membuat KTP (kartu tanda penduduk) maka akan dibutuhkan Database dalam skala VLDB (Very Large Database), data penduduk perlu dilakukan pemeriksaan kembali agar tidak terjadi duplikasi data di mana setiap penduduk hanya boleh memiliki satu Kartu Tanda Penduduk. Proses menganalisa KTP ini dapat dengan mudah dilakukan dengan konsekuensi mampu membayar harga hardware dan lisensi Software. Tujuan penelitian ini adalah bagaimana memanfaatkan aplikasi-aplikasi opensource untuk mengolah sebuah Database sendiri yang dibangun diatas framework Mapreduce yang dapat bekerja dan memproses secara terparalel. Dengan mengandalkan dan mengembangkan aplikasi Opensource alias gratis untuk diunduh yaitu Hadoop, Sqoop, dan Hive dapat dibentuk menjadi sebuah Framework Mapreduce yang mampu bekerja memproses dan menganalisis dengan baik karena bekerja memproses input data secara terparalel oleh lebih dari satu mesin.
ABSTRACT See the high rate of indonesia population who enter adulthood to make KTP (identity cards) it will be required a database on scale VLDb (Very Large Database), population data need to be re-examination in order to avoid duplication data in which each people may only have one Identity Cards. The process of analyzing the card can be easily done with the consequence able to pay the cost hardware and software licenses. The purpose of this research is how to take advantage an opensource applications to process own database that built on top MapReduce framework and the process could be work in parallel.
By relying and developing software Opensource or free applications for download like a Hadoop, Sqoop, and the Hive can be formed into a Mapreduce framework that able to process and analyze can be easily done because the input data was processed in parallel way by more than one machine to work.
PENDAHULUAN Jumlah penduduk Indonesia tahun 2011 diperkirakan mencapai 240 juta jiwa atau atau sekitar 60 juta keluarga [4]. Dengan melihat tingginya angka jumlah penduduk Indonesia yang memasuki usia dewasa untuk membuat KTP (kartu tanda penduduk) maka akan dibutuhkan Database dalam skala VLDB (Very Large Database) karena dimana akan terdapat jutaan baris dan ratusan tabel untuk dapat menampung semua data penduduk Indonesia, data penduduk perlu dilakukan pemeriksaan kembali agar tidak terjadi duplikasi data di mana setiap penduduk hanya boleh memiliki satu Kartu Tanda Penduduk karena dilihat dari fungsi utamanya yaitu untuk menghindari kecurangan pajak, menyembunyikan identitas (misalnya teroris), memudahkan membuat paspor yang tidak dapat dibuat di seluruh kota dan menjaga terjadi kecurangan pada saat pemilihan umum atau pemilihan kepala daerah karena setiap penduduk hanya boleh memiliki satu suara yang ditandai dengan penggunaan KTP Facebook.com merupakan situs jejaring sosial terkenal di dunia, situs ini mampu menghasilkan satu petabyte data setiap harinya untuk disimpan dan dianalisis. kekuatan terbesar situs tersebut adalah dengan mengandalkan dan mengembangkan aplikasi Opensource alias gratis untuk diunduh seperti Hadoop, Hbase, Hive, Thrift, Cassandra, HipHop, dan lain-lain [6]. Usahanya memanfaatkan sebagian besar aplikasi bersifat opensource tersebut menjadikan Facebook.com dikatakannya mampu dengan mudah mengolah data besar setiap harinya karena data diolah secara terparalel.
Melihat usahanya yang dapat dilakukan oleh para developer facebook.com maka aplikasi opensource tersebut juga dapat dibentuk menjadi sebuah Framework yang mampu bekerja untuk mengolah database meskipun memiliki kapasitas VLDB. Dengan memanfaatkan kemampuan Hadoop Mapreduce dan Hive dalam data warehousing dapat memproses dan menganalisis data berukuran VLDB sehingga mampu bersaing dengan perangkat lunak enterprise lain yang harus membayar harga untuk membeli lisensi agar dapat menggunakan semua fitur handalannya.
TINJAU PUSTAKA Data Warehouse Data warehouse adalah sebuah sistem yang mengambil dan menggabungkan data secara periodik dari sistem sumber data ke penyimpanan data bentuk dimensional atau normal. Data warehouse merupakan penyimpanan data yang berorientasi objek, terintegrasi, mempunyai variant waktu, dan menyimpan data dalam bentuk nonvolatile sebagai pendukung manejemen dalam proses pengambilan keputusan [8]. Data warehouse menyatukan dan menggabungkan data dalam bentuk multidimensi. Pembangunan data warehouse meliputi pembersihan data, penyatuan data dan transformasi data dan dapat dilihat sebagai praproses yang penting untuk digunakan dalam data mining. Selain itu data warehouse mendukung On-line Analitycal Processing (OLAP), sebuah perkakas yang digunakan untuk menganalisis secara interaktif dari bentuk multidimensi yang mempunyai data yang rinci. Sehingga dapat memfasilitasi secara efektif data generalization dan data mining. Hadoop Hadoop adalah Framework software berbasis Java dan Opensource yang berfungsi untuk mengolah data yang sangat besar secara terdistribusi dan berjalan di atas cluster yang terdiri dari beberapa komputer yang saling terhubung [3]. Hadoop dapat mengolah data dalam jumlah yang sangat besar hingga petabyte dan dijalankan di atas ribuan komputer. Terinspirasi dari whitepaper Google yang membahas tentang Mapreduce dan Google File
System dibuat oleh Doug Cutting dan nama Hadoop ini berasal dari boneka gajah milik anaknya. Hadoop bersifat opensource dan berada dibawah bendera Apache Software Foundation. Mapreduce Mapreduce pertama kali dikenalkan oleh Jeffrey Dean dan Sanjay Ghemawat dari Google, Inc. Saat ini model pemrograman Mapreduce digunakan pada sistem pengolahan data di Google dan juga di Yahoo. Mapreduce merupakan sebuah Framework untuk pengolahan Dataset besar pada beberapa jenis masalah yang didistribusikan menggunakan sejumlah besar komputer (node) yang disebut sebagai cluster jika semua node menggunakan hardware yang sama atau sebagai grid jika node menggunakan hardware berbeda. Komputasi pengolahan dapat terjadi pada data yang disimpan secara tidak terstruktur dalam Filesystem atau secara terstruktur dalam Database. Pemetaan (Map) Simpul yang mengambil Input Master dan memecah input menjadi bagian-bagian kecil dan mendistribusikannya ke para pekerja (nodes worker). Sebuah node worker dapat melakukannya pekerjaannya berulang kali dalam setiap giliran yang mengarah pada multi-level tree structure. Node worker memproses sub-input yang ditanganinya dan mengirim hasil proses tersebut kembali kembali pada input master. Pengurangan (Reduce) dimulai dari sebuah node master yang akan bertugas mengambil hasil dari Node worker untuk semua sub-input dan menggabungkan mereka dalam beberapa cara untuk mendapatkan output. Output itulah yang merupakan jawaban dari permasalahan awal yang akan dipecahkan.
Gambar-1 Mapreduce
Keuntungan dari Mapreduce ini adalah proses map and reduce dijalankan secara terdistribusi. Dalam setiap proses mapping bersifat independen sehingga proses dapat dijalankan secara simultan dan paralel. Demikian pula dengan proses reducer dapat dilakukan secara paralel diwaktu yang sama, selama output dari operasi mapping mengirimkan key value yang sesuai dengan proses reducernya. Proses Mapreduce ini dapat diaplikasikan di cluster server yang jumlahnya sangat banyak sehingga dapat mengolah data dalam jumlah petabyte hanya dalam waktu beberapa jam. Didalam Hadoop, Mapreduce engine ini terdiri dari satu Jobtracker dan satu/banyak Tasktracker. Jobtracker adalah server penerima job dari client, sekaligus akan mendistribusikan jobs tersebut ke Tasktracker yang akan mengerjakan sub job sesuai yang diperintahkan Jobtracker. Strategi ini akan mendekatkan pengolahan data dengan datanya sendiri, sehingga ini akan sangat signifikan mempercepat proses pengolahan data.
HIVE Dalam “Information Platforms and the Rise of the Data Scientist”, Jeff Hammerbacher menjelaskan informasi “Platforms sebagai locus upaya organisasi mereka untuk mencerna, mengolah, dan menghasilkan informasi” adalah bagaimana mereka melayani untuk memberikan akselarasi proses belajar dari data empiris Satu dari resep terbesar dalam informasi platform dibangun oleh team jeff dalam facebook adalah Hive, sebuah Framework untuk data warehouse yang berjalan diatas Hadoop. Hive berkembang dari kebutuhan untuk mengelola dan belajar dari Volume data besar yang diproduksi oleh Facebook setiap harinya dari situs jaringan sosial yang berkembang. Setelah mencoba beberapa system yang berbeda, team jeff akhirnya memutuskan untuk memilih Hadoop sebagai penyimpanan serta pemrosesan karena dapat menekan biaya dan cocok dengan skalabilitas yang dibutuhkan. Hive diciptakan untuk memungkinkan dilakukan analisis dengan kemampuan SQL yang kuat tetapi sedikit menggunakan keterampilan java programming untuk melakukan Query pada Volume data besar yang Facebook simpan dalam HDFS. Hari ini Hive adalah proyek Apache yang sukses digunakan dalam berbagai organisasi. Sebagai keperluan umumnya dalam pengolahan data terstruktur. Tentu saja SQL tidak ideal untuk setiap masalah data besar karena tidak cocok dalam membangun algoritma pembelajaran mesin yang kompleks, tapi bagus untuk melakukan banyak analisis dan memiliki banyak keuntungan besar untuk dapat dikenal dengan baik dalam industri. SQL adalah alat bisnis intelejen sehingga Hive sangat baik untuk dapat diintegrasikan dengan produk SQL ini.
SQOOP Kekuatan besar dari platform Hadoop adalah kemampuannya untuk dapat bekerja dengan beberapa bentuk data yang berbeda. HDFS dipercaya dapat menyimpan log dan data lain dari sejumlah sumber dan Mapreduce program dapat menguraikan beragam ad hoc data format, melakukan Extracting dengan sempurna dan menggambungkan multiple Dataset untuk menghasilkan hasil yang kuat.
Tetapi untuk berinteraksi dengan data dalam repository penyimpanan diluar HDFS, Mapreduce program perlu menggunakan external API untuk mendapatkan data diluar dari HDFS. Sqoop adalah alat Opensource yang memungkinkan user untuk extractting data dari relational Database kedalam Hadoop untuk kemudian dapat diproses lebih lanjut. Pengolahan ini dapat diselesaikan dengan program Mapreduce atau dengan alat tingkatan lebih tinggi lagi seperti Hive. Ketika hasil akhir dari analytic pipeline telah tersedia, Sqoop dapat mengekspor hasil tersebut kembali kedalam Database untuk dapat dikonsumsi oleh client yang lain.
MySQL SQL merupakan bahasa query yang paling banyak dipilih oleh DBMS dan Development Tolls (seperti Visual Basic, Delphi, PHP, Java, dll) dalam menyediakan median bagi penggunanya untuk berinteraksi dengan basis data [2]. MySQL merupakan salah satu contoh produk DBMS yang sangat popular di lingkungan linux, tetapi juga tersedia pada windows. Banyak situs web yang menggunakan MySQL sebagai Database server (server yang melayani permintaan akses Database) [1]. Pernyataan-pernyataan SQL digunakan untuk melakukan beberapa tugas seperti update data pada Database, atau menampilkan data dari Database. Beberapa software RDBMS dan dapat menggunakan SQL, seperti Oracle, Sybase, Microsoft SQL Server, Microsoft Access dan Ingres. Setiap software Database mempunyai bahasa perintah atau sintaks yang berbeda, namun pada prinsipnya mempunyai arti dan fungsi yang sama.
ANALISIS DAN PERANCANGAN Framework ini akan menganalisis database yang tersimpan pada MySQL dan untuk memperoleh datanya tool Sqoop dibutuhkan untuk melakukan import data menjadi text File dan me-Load data ke Hive agar user dapat menganalisis data yang diperlukan dengan memanfaatkan query Mapreduce yang telah didefinisikan pada HiveQL. Mapreduce itu sendiri terdapat pada Hadoop Distributed Filesystem yang mengatur mesin master dan slave
untuk mengerjakan fungsi Mapreduce serta menyimpan hasil eksekusinya pada Hive Metastore dengan mengandalkan tool MySQL JDBC connector.
Gambar-2 Alur Kerja Framework Analisis Masalah Permasalahan pada penelitian ini adalah bagaimana menganalisis suatu Id unik yang dimiliki satu oleh setiap penduduk pada KTP agar tidak terjadi duplikasi KTP pada saat pembuatan, database yang disimpan berukuran Very Large Database sehingga membutuhkan sebuah Framework Mapreduce dan suatu data warehouse agar dapat menganalisis Id penduduk yang disimpan pada database.
Gambar-3 Analisis Masalah
Arsitektur Sistem Sistem dibangun menjadi tiga sistem, yaitu sistem MySQL, sistem Apache Hive dan sistem Apache Hadoop. Sistem MySQL digunakan untuk keperluan memproduksi data dan tabel, sistem pada Hive digunakan untuk keperluan mengolah data yang telah diproduksi oleh MySQL, dan sistem Apache Hadoop merupakan mesin yang bekerja pada Hive dengan menggunakan kekuatan Mapreduce multi node. Sqoop merupakan pintu yang akan dilewati oleh MySQL untuk melakukan import data dengan menggunakan Mapreduce juga. Gambaran arsitektur dapat dilihat pada gambar 3.3.
Gambar-4 Arsitektur Framework Hive Mapreduce Data Warehouse
Perancangan Perancangan sistem untuk membangun Framework ini menggunakan UML yang digunakan untuk merancang model sebuah sistem. Dalam memodelkan proses yang terjadi pada rancangan sistem Mapreduce akan dibuat ke dalam tiga model UML, yaitu Use case dan Activity Diagram. Diagram Use Case Terdapat empat peran aktor yang bekerja dalam sistem ini, MySQL mempunyai peran untuk menyimpan data dan memproduksi data, aktor Sqoop hanya melakukan proses Import tabel dalam MySQL, sedangkan Hadoop Multinode mempunyai peran banyak dalam sistem ini yaitu membantu Sqoop dalam proses import data dan melakukan analisis tabel yang
dilakukan aktor Hive. Aktor Hive mempunyai peran dalam memerintahkan fungsi Mapreduce dan menyimpan tabel dalam Metastore Hive.
Gambar-5 Use Case Diagram Sistem Data Warehouse Hive
Diagram Activity Produksi Data
Gambar-6 Diagram Activity Produksi Data Diagram Activity Produksi Data dilakukan oleh MySQL di mana hanya melakukan pembuatan tabel, field dan mengisi tabel tersebut. Semakin banyak data yang terisi maka semakin terasa keoptimalan kerja Mapreduce.
Diagram Activity Membuat Tabel dalam Hive
Gambar-7 Diagram Activity Memuat Tabel dalam Hive Proses ini dilakukan dalam Hive, ketika data yang telah di-import harus dimasukan dalam tabel Hive maka sebelumnya tabel harus telah disiapkan untuk dapat dimasukan dalam tabel Hive. Dalam proses ini, Hive hanya perlu membuat tabel dan kolom dan type data saja.
Diagram Activity Import Data
Gambar-8 Diagram Activity Import Data
Proses ini dilakukan oleh tool SQOOP agar dapat mengkonversi dari tabel yang berada pada MySQL ke File berbentuk text File, proses konversi dilakukan dengan menggunakan Hadoop Mapreduce. Berikut tahapan proses konversi: 1. Sqoop akan mencoba melakukan koneksi pada Driver tergantung dari koneksi Driver yang digunakan oleh Hive pada databasenya.
2. Setelah koneksi berhasil, tabel yang di-import akan dibaca kolom, record dan tipe datanya. 3. Tipe data MySQL dengan Java berbeda, tetapi memiliki kesamaan. Disini merupakan proses konversi setiap kolom dijadikan kedalam class java berikut dengan tipe datanya. 4. Setiap class java akan diproses dengan Mapreduce dan hasilnya akan berbentuk .txt yang telah dikonversi dari class-class java. Diagram Activity Proses Analisis Data
Gambar-9 Diagram Activity Proses Analisis Data Proses ini dilakukan oleh Hive dimulai dari memasukan tabel, menyatukan, menggunakan script map dan reduce lalu disimpan pada Metastore. Berikut tahapan prosesnya: 1. Tabel yang telah dilakukan Import oleh Sqoop dimasukan pada tabel yang sebelumnya telah dibuat oleh Hive yaitu tabel ktp_a dan tabel ktp_b 2. Data yang telah dimasukan pada kedua tabel, tabel tersebut disatukan dengan mengambil kolom id dan kab dan keduanya disimpan menjadi satu pada tabel ktp_ab.
3. Dengan menggunakan Map dan Reduce script, tabel ktp_ab dilakukan perhitungan id. 4. Hasil analisis disimpan pada tabel analisa dengan kolom id dan value, kolom value menunjukan nilai yang dimiliki ktp pada penduduk.
IMPLEMENTASI DAN PENGUJIAN Implementasi Perangkat Keras Perangkat keras yang digunakan untuk sistem ini menggunakan spesifikasi yang sama terkecuali pada komputer master harusnya mempunyai spesifikasi yang lebih bagus dari komputer slave karena komputer master melakukan pekerjaan lebih berat tetapi pada sistem ini spesifikasi yang digunakan sama semua dan terhubung pada satu jaringan. 1. Processor dual core 2.5Ghz 2. RAM 1Gb 3. Hardisk 80Gb 4. Keyboard dan mouse 5. Switch Implementasi Perangkat Lunak Perangkat Lunak yang digunakan untuk membangun dan menjalankan sistem ini menggunakan Sistem Operasi Linux Ubuntu 10.10 (maverick meerkat), Apache Hadoop dan java jdk pada semua komputer, tetapi hanya pada komputer master akan dipasang server Database mysql dan apache Hive, sedangkan pada komputer slave hanya apache Hadoop saja. 1. Java Development Kit 1.6 2. Hadoop-0.20.2
3. Hive-0.7.1 4. Mysql-server dan Mysql-client 5. Sqoop
Implementasi framework Mapreduce Untuk pembuatan sistem ini perlu dijalankan dalam Sistem Operasi Linux Ubuntu, dalam pembuatan sistem ini versi Ubuntu yang digunakan adalah ubuntu 10.10
Maverick
Meerkat, lalu install semua aplikasi pendukung seperti: 1. Install sun java JDK 2. Install Hadoop secara Multinode cluster 3. Install MySQL Server dan MySQL Client 4. Install Hive secara pseudo distributed 5. Install Sqoop framework yang telah dibuat diuji pada tabel yang telah disimpan pada Hive dan dilakukan analisis dengan script Map dan Reduce. Pengujian dilakukan pada tabel ktp_ab yang telah terisi sebanyak 20 baris. Hasil pengujian bisa dilihat pada nilai value yang keluar dan waktu yang dihasilkan oleh pekerjaan Mapreduce. Pengujian Mapreduce Proses kerja Mapreduce pada tabel ktp_ab dapt dilihat dalam capture screen pada gambar-10. gambar tersebut menunjukan mapreduce sedang berjalan dan berhasil memproses, 20 baris telah terisi pada tabel analisa.
Gambar-10 Mapreduce Berjalan Tabel analisa yang telah terisi pada kolom id dan value menunjukan pengujian telah berhasil dilakukan dan sesuai dengan tujuan, hasil dapat dilihat pada gambar-11.
Gambar-11 Hasil Mapreduce pada Tabel Analisa
PENUTUP Penulis merasa bahwa aplikasi dan tulisan ini masih jauh dari sempurna, karena itu saran yang dapat diberikan penulis untuk pengembangan selanjutnya adalah, karena Framework ini masih merupakan prototype maka masih bisa dikembangkan lebih lanjut dalam algoritma analisanya. Selain itu masih banyak implementasi aplikasi yang berjalan diatas model pemrograman pemetaan dan reduksi ini antara lain untuk aplikasi data mining, statistika, machine learning, dan search engine.
DAFTAR PUSTAKA [1] Abdul Kadir, Yogyakarta 2003. [2] Fatansyah, Jakarta 2004. [3] Tom White. Hadoop The Definitive Guide Second Edition, O’Reilly Media, inc., United States of America 2011. [4] URL : http://bps.go.id 8 juli 2011. [5] URL : http://developers.facebook.com 10 juli 2011. [6] URL : http://intelligenenterprise.com 10 juli 2011. [7] URL : http://mahrus.wordpress.com 12 juli 2011. [8] URL : http://sbasisdata.blogsopt.com 12 juli 2011.