Penggunaan Teknologi Map-Reduce dalam Pengolahan Survei dan Sensus Oleh: Arbi Setiyawan
Badan Pusat Statistik merupakan lembaga pemerintah yang mempunyai tugas menyediakan kebutuhan data bagi pemerintah dan masyarakat. Data ini didapatkan dari sensus atau survey dan juga dari departemen atau lembaga pemerintahan lainnya sebagai data sekunder. Pengolahan hasil sensus dan survey, yang dilakukan oleh Badan Pusat Statistik, merupakan proses penting dalam menyediakan kebutuhan data tersebut. Proses pengolahan data dilakukan secara ketat untuk menghasilkan data yang akurat dan berkualitas. Badan Pusat Statistik menghabiskan waktu yang relatif lama dalam melakukan pengolahan hasil sensus hingga dapat dipublikasikan kepada pemerintah dan masyarakat. Data Sensus mengandung variabel yang banyak dan mempunyai ukuran yang besar. Salah satunya adalah data Sensus Penduduk. Data Sensus Penduduk terdiri dari keterangan individu dan keterangan rumah tangga. Dalam hal pengolahan data, data yang besar ini menjadi masalah tersendiri bagi Badan Pusat Statistik. Saat ini kinerja pengolahan data sensus masih rendah. Dalam prakteknya, sering terjadi kegagalan dalam proses pengolahan data yang dikarenakan adanya bottleneck pada Relational Database Management System (RDBMS) maupun program paket analisis statistik. Untuk mengatasi masalah tersebut, tim pengolah memecah data menjadi satuan wilayah lebih kecil, misalkan data dibagi per propinsi. Beberapa propinsi yang mempunyai jumlah penduduk besar, data sensus harus dibagi lagi dalam satuan wilayah lebih kecil. Hal ini menjadikan rawan terjaminnya integritas data. Selain itu juga menyebabkan pengolahan data menjadi lebih kompleks, hingga akhirnya membutuhkan waktu yang lama dalam melakukan pengolahan data. Kerja keras, waktu yang lama dan kompleksitas dalam mengolah data sensus ini akan bisa dikurangi dengan menerapkan teknologi yang bisa melakukan proses pengolahan diatas secara otomatis. Untuk melakukan proses ini, Badan Pusat Statistik memandang perlu dan membutuhkan teknologi distributed computing yang dapat melakukan proses pengolahan data yang besar secara terdistribusi dengan otomatis. Salah satu solusi yang dapat diterapkan untuk melakukan proses pengolahan data sensus adalah menggunakan Hadoop. Hadoop menjadi sebuah pilihan alternatif dalam mengolah data sensus karena merupakan perangkat open source yang handal, terukur dan menerapkan komputasi terdistribusi [3]. Beberapa tahun ini, Hadoop yang merupakan sebuah model pemrograman yang sederhana dari distributed parallel computing, menjadi sangat populer untuk mengolah data set yang besar [13]. Hadoop yang merupakan implementasi open- source dari Google-MapReduce memberikan banyak keuntungan yang signifikan dibandingkan dengan parallel databases [7]. Sudah banyak perusahaan yang berhasil dalam mengembangkan perusahaannya melalui penggunaan Hadoop [12][13]. Hal ini menjadi peluang bagi Badan Pusat Statistik untuk mengelola data dalam rangka mengembangkan diri dan memperoleh kemudahan dalam mengolah data sensus. Namun, sebelum menggunakan secara total teknologi ini, perlu dilakukan sebuah kajian terhadap Hadoop agar dapat diketahui kinerjanya dalam pengolahan data sensus.
BEBERAPA TEORI MAP-REDUCE Hadoop Apache Hadoop adalah sebuah perangkat lunak open source yang memungkinkan pemrosesan data set yang besar secara terdistribusi dalam cluster server. Hadoop dirancang untuk dapat bekerja pada server tunggal hingga banyak server, dengan toleransi kesalahan yang sangat tinggi [14][3]. Hadoop mendukung pembuatan software open-source yang menyediakan sebuah framework untuk membangun aplikasi distributed computing dengan skalabilitas yang tinggi. Programmer tidak perlu mengetahui detail pengolahan data, karena Hadoop menangani detail dari pengolahan data tersebut. Programmer hanya fokus pada logika aplikasi [8]. Apache Hadoop mempunyai dua komponen utama, yaitu: •
MapReduce
Framework yang membagi pekerjaan kepada node-node dalam hadoop cluster. •
HDFS
HDFS, singkatan dari Hadoop Distributed Filesystem, merupakan sebuah file sistem untuk menyimpan file yang besar dengan membagi-bagi dalam jumlah banyak dan disimpan secara terdistribusi didalam banyak komputer/node yang saling berhubungan. Hadoop memperkirakan adanya kegagalan dalam sebuah node. Untuk itu data akan direplikasi dalam beberapa node (umumnya ke dalam 3 node), hal ini bertujuan untuk menjaga realibility dari HDFS. Filesystem ini membutuhkan server induk yang dinamakan namenode. Namenode berfungsi untuk menyimpan metadata dari data yang ada didalam HDFS. [11] MapReduce Bagian pertama dari Hadoop adalah MapReduce. MapReduce merupakan sebuah model programming untuk pengolahan data [14]. MapReduce dibangun dengan konsep divide and conquer, dengan cara membagi pekerjaan yang besar menjadi bagian-bagian kecil dan memprosesnya secara paralel [12]. MapReduce dapat menangani semua detail dari komputasi paralel, distribusi data dan penanganan kegagalan secara otomatis [13]. MapReduce mempunyai dua bagian utama, yaitu: a) Map Map akan membaca data dari sekumpulan record pada sebuah input file, kemudian menjalankan filtering dan transformasi, dan memberikan output berupa sekumpulan intermediate records kedalam bentuk pasangan key/value [2]. Setelah itu pasangan key/value pada intermediate records dikirimkan ke fungi Reduce [15]. b) Reduce Fungsi Reduce bertugas menerima sekumpulan key/value, dan menggabungkan beberapa value untuk sebuah key menjadi ringkasan value [15]. HDFS
Bagian kedua dari Hadoop adalah HDFS. HDFS kependekan dari Hadoop Distributed Filesystem. HDFS dibangun untuk mendukung throughput yang tinggi, membaca dan menulis file yang berukuran sangat besar [6]. HDFS adalah sebuah file system yang dirancang untuk digunakan dalam MapReduce dalam membaca input file yang besar, mengolah dan menuliskan output. Untuk menjaga reliabilitas, data dalam HDFS akan diduplikasi ke dalam beberapa node. HDFS mempunyai dua bagian yaitu Namenode dan Datanode. Namenode menangani pengaturan metadata file system, sedangkan Datanode merupakan blok penyimpanan. [8] Pig Pig merupakan platform yang terdiri dari high-level language untuk melakukan analisa terhadap sekumpulan data yang besar [4]. Pig menyediakan sebuah engine yang dapat menjalankan data flows secara paralel didalam Hadoop. Pig, termasuk bahasa pemrograman Pig Latin, mengekspresikan data flows tersebut. Pig Latin mengandung operator yang banyak digunakan dalam operasi data tradisional (JOIN, SORT, FILTER dll) yang dapat digunakan oleh user untuk membangun fungsi reading, processing dan writing data [1]. Sqoop Hadoop tidak dibangun untuk menggantikan database, tetapi Hadoop dapat berjalan secara berdampingan dengan Relational Database Management Systems (RDBMS). Dengan menggunakan Sqoop integrasi antara Hadoop dan RDBMS dapat dilakukan. Sqoop, singkatan dari SQL to Hadoop, dapat melakukan transfer data (import dan export) antara Hadoop dan RDBMS menggunakan JDBC driver. Import dan Export dilakukan oleh Sqoop secara paralel dengan fault tolerance. Untuk lebih meningkatkan kinerja, Sqoop mendukung plug-in database secara khusus, daripada menggunakan JDBC. Sebagian besar connector ke RDBMS open-source dan disediakan oleh vendor. Berikut yang sudah tersedia antara lain MySQL, PosgreSQL, Teradata, Netezza, SQL Server dan Oracle. [6][10]
HBase HBase adalah versi open-source dari Google-BigTable, sebuah distributed storage system yang dibangun oleh Google untuk mengatur sejumlah data berstruktur yang besar. HBase menirukan sebagian besar fungsionalitas yang disediakan oleh BigTable. Seperti kebanyakan non SQL database systems, Hbase ditulis dalam bahasa pemrograman Java. [5]
Keuntungan Hadoop Beberapa keuntungan yang diperoleh dengan menerapkan Hadoop adalah: •
Scalable
Node dapat ditambahkan sesuai kebutuhan, dan penambahan tersebut tidak membutuhkan perubahan pada format data, bagaimana data itu di muat, bagaimana pekerjaan dituliskan dan tanpa merubah aplikasi diatasnya. •
Cost effective
Hadoop melakukan komputasi paralel secara besar-besaran. Sehingga berpengaruh pada penurunan yang cukup besar dalam biaya penyimpanan per terabyte. •
Flexible/ Capability
Hadoop tidak menggunakan schema tertentu, dan dapat menjalakan semua tipe data, yang berstruktur ataupun yang tidak, dari berbagai sumber data. Data dari berbagai sumber dapat digabungkan dan diagregasikan untuk dianalisis. •
Fault tolerant/ Reliability
Ketika ada node yang gagal beroperasi, system akan langsung bekerja pada lokasi yang lain dan melanjutkan pengolahan data tanpa keraguan. [11] •
Other
Hadoop MapReduce memberikan programming secara paralel yang sederhana, tidak seperti MPI dan PVM. Pekerjaan paralel dalam Hadoop dijalankan secara otomatis tanpa keterlibatan programmer. Keuntungan yang lain adalah adanya load balancing dalam node/server [9].
Referensi [1] A. Gates, Programming Pig. California: O'Reilly Media, Inc., 2011 [2] A. Pavlo, E. Paulson, A. Rasin, "A Comparison of Approaches to Large-Scale DatamAnalysis," in SIGMOD'09, 2009. [3] Apache Hadoop. [Online]. Available: http://hadoop.apache.org [4] Apache Pig. [Online]. Available: http://pig.apache.org [5] D. Carstoiu, A. Cernian, A. Olteanu, "Hadoop Hbase-0.20.2 Performance Evaluation," New Trends in Information Science and Service Science (NISS), 2010 4th International Conference on, pp.84,87, 11-13 May 2010. [6] E. Sammer, Hadoop Operations. California: O'Reilly Media, Inc., 2012. [7] J. Dean, S. Ghemawat, "MapReduce: A Flexible Data Processing Tool," Communications of The ACM, Vol. 53, No. 1, pp. 72-77, January 2010. [8] J. Venner, Pro Hadoop. California: Apress, 2009 [9] J. Yan, X. Yang, R. Gu, C. Yuan, Y. Huang, "Performance Optimization for Short MapReduce Job Execution" in Hadoop 2012 Second International Conf. on Cloud and Green Computing, 2012.
[10] Microsoft Corporation, Microsoft® SQL Server® Connector for Apache Hadoop Version 1.0 User Guide, October 3, 2011. [11] P. Dandekhya, S. Bhattarai, S. Shrestha, A Final Year Project Report on Distributed Approach of Analysing and Vizualizing Census Data, 2012. [12] R.D. Schneider, Hadoop For Dummies, Special Edition. Mississauga: John Wiley & Sons Canada, Ltd, 2012. [13] S. Duan, B. Wu, B. Wang, J. Yang, "Design and implementation of parallel statistical algorithm," in Proc. of IEEE CCIS, 2011. [14] T. White, Hadoop: The Definitive Guide. California: O'Reilly Media, June 5, 2009. [15] T.D. Dinh, Hadoop Performance Evaluation. March 10, 2009.