Senin, 12 Mei 2014

Big Data - Map Reduce & NoSQL

Big Data - Map Reduce & NoSQL


Nama        : Hadi Daryanto
Kelas          : 4IA17
NPM           : 53410073

1.             PENDAHULUAN
1.1              Latar belakang
           Akhir-akhir ini, istilah ‘big data’ menjadi topik yang dominan dan sangat sering dibahas dalam industri IT. Banyak pihak yang mungkin heran kenapa topik ini baru menjadi pusat perhatian padahal ledakan informasi telah terjadi secara berkelangsungan sejak dimulainya era informasi. Perkembangan volume dan jenis data yang terus meningkat secara berlipat-lipat dalam dunia maya Internet semenjak kelahirannya adalah fakta yang tak dapat dipungkiri. Mulai data yang hanya berupa teks, gambar atau foto, lalu data berupa video hingga data yang berasal system pengindraan. Lalu kenapa baru sekarang orang ramai-ramai membahas istilah big data? Apa sebenarnya ‘big data’ itu?
Hingga saat ini, definisi resmi dari istilah big data belum ada. Namun demikian, latar belakang dari munculnya istilah ini adalah fakta yang menunjukkan bahwa pertumbuhan data yang terus berlipat ganda dari waktu ke waktu telah melampaui batas kemampuan media penyimpanan maupun sistem database yang ada saat ini. Kemudian, McKinseyGlobal Institute (MGI), dalam laporannya yang dirilis pada Mei 2011, mendefinisikan bahwa big data adalah data yang sudah sangat sulit untuk dikoleksi, disimpan, dikelola maupun dianalisa dengan menggunakan sistem database biasa karena volumenya yang terus berlipat. Tentu saja definisi ini masih sangat relatif, tidak mendeskripsikan secara eksplisit sebesar apa big data itu. Tetapi, untuk saat sekarang ini, data dengan volume puluhan terabyte hingga beberapa petabyte kelihatannya dapat memenuhi definis MGI tersebut. Di lain pihak, berdasarkan definisi dari Gartner, big data itu memiliki tiga atribute yaitu : volume , variety , dan velocity. Ketiga atribute ini dipakai juga oleh IBM dalam mendifinisikan big data. Volume berkaitan dengan ukuran, dalam hal ini kurang lebih sama dengan definisi dari MGI. Sedangkan variety berarti tipe atau jenis data, yang meliputi berbagai jenis data baik data yang telah terstruktur dalam suatu database maupun data yang tidak terorganisir dalam suatu database seperti halnya data teks pada web pages, data suara, video, click stream, log file dan lain sebagainya. Yang terakhir, velocity dapat diartikan sebagai kecepatan dihasilkannya suatu data dan seberapa cepat data itu harus diproses agar dapat memenuhi permintaan pengguna.

1.2              Tujuan
            Tujuan dari penulisan ini diharapkan dapat mengetahui apa itu Big Data, Map Reduce & NoSQL dan di manfaatkan untuk mempermudah manusia dalam melakukan pekerjaan dibidang apapun.


2.       ISI
PENJELASAN
Definisi Big Data
Jika diterjemahkan secara mentah-mentah maka Big Data berarti suatu data dengan kapasitas yang besar. Sebagai contoh, saat ini kapasitas DWH yang digunakan oleh perusahaan-perusahaan di Jepang berkisar dalam skala terabyte. Namun, jika misalnya dalam suatu sistem terdapat 1000 terabyte (1 petabyte) data, apakah sistem tersebut bisa disebut Big Data?
Satu lagi, Big Data sering dikaitkan dengan SNS (Social Network Service), contohnya Facebook. Memang benar Facebook memiliki lebih dari 800 juta orang anggota, dan dikatakan bahwa dalam satu hari Facebook memproses sekitar 10 terabyte data. Pada umumnya, SNS seperti Facebook tidak menggunakan RDBMS(Relational DataBase Management System) sebagai software pengolah data, melainkan lebih banyak menggunakan NoSQL. Lalu, apa kita bisa menyebut sistem NoSQL sebagaiBig Data?
Dengan mengkombinasikan kedua uraian diatas, dapat ditarik sebuah definisi bahwa Big Data adalah “suatu sistem yang menggunakan NoSQL dalam memproses atau mengolah data yang berukuran sangat besar, misalnya dalam skala petabyte“. Apakah definisi ini tepat? Boleh dikatakan masih setengah benar. Definisi tersebut masih belum menggambarkan Big Data secara menyeluruh. Big Datatidak sesederhana itu,
Big Data memuat arti yang lebih kompleks sehingga perlu definisi yang sedikit lebih kompleks pula demi mendeskripsikannya secara keseluruhan.
Mengapa butuh definisi yang lebih kompleks? Fakta menunjukkan bahwa bukan hanya NoSQL saja yang mampu mengolah data dalam skala raksasa (petabyte). Beberapa perusahaan telah menggunakan RDBMS untuk memberdayakan data dalam kapasitas yang sangat besar. Sebagai contoh, Bank of America memiliki DWH dengan kapasitas lebih dari 1,5 petabyteWallmart Stores yang bergerak dalam bisnis retail (supermarket) berskala dunia telah mengelola data berkapasitas lebih dari 2,5 petabyte, dan bahkan situs auction (lelang) eBay memiliki DWH yang menyimpan lebih dari 6petabyte data. Oleh karena itu, hanya karena telah berskala petabyte saja, suatu data belum bisa disebut Big Data. Sekedar referensi, DWH dengan kapasitas sangat besar seperti beberapa contoh diatas disebut EDW(Enterprise Data Warehouse) dan database yang digunakannya disebut VLDB(Very Large Database).
Memang benar, NoSQL dikenal memiliki potensi dan kapabilitas Scale Up (peningkatan kemampuan mengolah data dengan menambah jumlah server atau storage) yang lebih unggul daripada RDBMS. Tetapi, bukan berarti RDBMS tak diperlukan. NoSQL memang lebih tepat untuk mengolah data yang sifatnya tak berstruktur seperti data teks dan gambar, namun NoSQL kurang tepat bila digunakan untuk mengolah data yang sifatnya berstruktur seperti data-data numerik, juga kurang sesuai untuk memproses data secara lebih detail demi menghasilkan akurasi yang tinggi. Pada kenyataannya, Facebook juga tak hanya menggunakan NoSQL untuk memproses data-datanya, Facebook juga tetap menggunakan RDBMS. Lain kata, penggunaan RDBMS dan NoSQL mesti disesuaikan dengan jenis data yang hendak diproses dan proses macam apa yang dibutuhkan guna mendapat hasil yang optimal.
Gambar Big Data Infographic sumber intel.co.jp
Karakteristik Big Data : Volume, Variety, Velocity (3V)
Kembali ke pertanyaan awal, apakah sebenarnya Big Data itu? Sayang sekali, hingga saat ini masih belum ada definisi baku yang disepakati secara umum. Ada yang mendeskripsikan Big Data sebagai fenomena yang lahir dari meluasnya penggunaan internet dan kemajuan teknologi informasi yang diikuti dengan terjadinya pertumbuhan data yang luar biasa cepat, yang dikenal dengan istilah ledakan informasi (Information Explosion) maupun banjir data (Data Deluge). Hal ini mengakibatkan terbentuknya aliran data yang super besar dan terus-menerus sehingga sangat sulit untuk dikelola, diproses, maupun dianalisa dengan menggunakan teknologi pengolahan data yang selama ini digunakan (RDBMS). Definisi ini dipertegas lagi dengan menyebutkan bahwa Big Data memiliki tiga karakteristik yang dikenal dengan istilah 3V: Volume, Variety, Velocity. Dalam hal ini, Volumemenggambarkan ukuran yang superbesar, Variety menggambarkan jenis yang sangat beragam, danVelocity menggambarkan laju pertumbuhan maupun perubahannya. Namun demikian, definisi ini tentu masih sulit untuk dipahami. Oleh karena itu, uraian berikut mencoba memberikan gambaran yang lebih jelas dan nyata berkaitan dengan maksud definisi Big Data tersebut.
Gambar karakteristik big data
Bukan Hanya Masalah Ukuran, Tapi Lebih pada Ragam
Kini jelas bahwa Big Data bukan hanya masalah ukuran yang besar, terlebih yang menjadi ciri khasnya adalah jenis datanya yang sangat beragam dan laju pertumbuhan maupun frekwensi perubahannya yang tinggi. Dalam hal ragam data, Big Data tidak hanya terdiri dari data berstruktur seperti halnya data angka-angka maupun deretan huruf-huruf yang berasal dari sistem database mendasar seperti halnya sistem database keuangan, tetapi juga terdiri atas data multimedia seperti data teks, data suara dan video yang dikenal dengan istilah data tak berstruktur. Terlebih lagi, Big Data juga mencakup data setengah berstruktur seperti halnya data e-mail maupun XML. Dalam hal kecepatan pertumbuhan maupun frekwensi perubahannya, Big Data mencakup data-data yang berasal dari berbagai jenis sensor, mesin-mesin, maupun data log komunikasi yang terus menerus mengalir. Bahkan, juga mencakup data-data yang tak hanya data yang berada di internal perusahaan, tetapi juga data-data di luar perusahaan seperti data-data di Internet. Begitu beragamnya jenis data yang dicakup dalam Big Data inilah yang kiranya dapat dijadikan patokan untuk membedakan Big Data dengan sistem manajemen data pada umumnya.

Fokus pada Trend per-Individu, Kecepatan Lebih Utama daripada Ketepatan
Hingga saat ini, pendayagunaan Big Data didominasi oleh perusahaan-perusahaan jasa berbasis Internet seperti halnya Google dan Facebook. Data yang mereka berdayakan pun bukanlah data-data internal perusahaan seperti halnya data-data penjualan maupun data pelanggan, lebih menitik beratkan pada pengolahan data-data teks dan gambar yang berada di Internet. Bila kita melihat gaya pemberdayaan data yang dilakukan oleh perusahaan-perusahaan pada umumnya, yang dicari adalahtrend yang didapat dari pengolahan data secara keseluruhan. Misalnya, dari data konsumen akan didapat informasi tentang trend konsumen dengan memproses data konsumen secara keseluruhan, bukan memproses data per-konsumen untuk mendapatkan trend per-konsumen. Dilain pihak, perusahaan-perusahaan jasa berbasis Internet yang memanfaatkan Big Data justru memfokuskan pemberdayaan data untuk mendapatkan informasi trend per-konsumen dengan memanfaatkan atribut-atribut yang melekat pada pribadi tiap konsumen. Sebut saja toko online Amazon yang memanfaatkan informasi maupun atribut yang melekat pada diri per-konsumen, untuk memberikan rekomendasi yang sesuai kepada tiap konsumen. Satu lagi, pemberdayaan data ala Big Data ini dapat dikatakan lebih berfokus pada kecepatan ketimbang ketepatan.
MapReduce
MapReduce adalah model pemrograman rilisan Google yang ditujukan untuk memproses data berukuran raksasa secara terdistribusi dan paralel dalam cluster yang terdiri atas ribuan komputer. Dalam memproses data, secara garis besar MapReduce dapat dibagi dalam dua proses yaitu proses Map dan proses Reduce. Kedua jenis proses ini didistribusikan atau dibagi-bagikan ke setiap komputer dalam suatu cluster (kelompok komputer yang salih terhubung) dan berjalan secara paralel tanpa saling bergantung satu dengan yang lainnya. Proses Map bertugas untuk mengumpulkan informasi dari potongan-potongan data yang terdistribusi dalam tiap komputer dalam cluster. Hasilnya diserahkan kepada proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke pengguna.
Dari definisinya, MapReduce mungkin terkesan sangat ribet. Untuk memproses sebuah data raksasa, data itu harus dipotong-potong kemudian dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses Reduce pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara paralel. Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah, MapReduce telah didesain sangat sederhana alias simple. Untuk menggunakan MapReduce, seorang programer cukup membuat dua program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google File System
Gambar map and reduce Google file service
Program yang memuat kalkulasi yang akan dilakukan dalam proses Map disebut Fungsi Map, dan yang memuat kalkulasi yang akan dikerjakan oleh proses Reduce disebut Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan MapReduce harus membuat program Fungsi Map dan Fungsi Reduce. Fungsi Map bertugas untuk membaca input dalam bentuk pasangan Key/Value, lalu menghasilkan output berupa pasangan Key/Value juga. Pasangan Key/Value hasil fungsi Map ini disebut pasangan Key/Value intermediate. Kemudian, fungsi Reduce akan membaca pasangan Key/Value intermediate hasil fungsi Map, dan menggabungkan atau mengelompokkannya berdasarkan Key tersebut. Lain katanya, tiap Value yang memiliki Key yang sama akan digabungkan dalam satu kelompok. Fungsi Reduce juga menghasilkan output berupa pasangan Key/Value. Untuk memperdalam pemahaman, mari kita simak satu contoh. Taruhlah kita akan membuat program MapReduce untuk menghitung jumlah tiap kata dalam beberapa file teks yang berukuran besar.Dalam program ini, fungsi Map dan fungsi Reduce dapat didefinisikan sebagai berikut:

map(String key, String value):
//key : nama file teks.
//value: isi file teks tersebut.
for each word W in value:
emitIntermediate(W,”1″);
reduce(String key, Iterator values):
//key : sebuah kata.
//values : daftar yang berisi hasil hitungan.
int result = 0;
for each v in values:
result+=ParseInt(v);
emit(AsString(result));

Hasil akhir  dari program ini adalah jumlah dari tiap kata yang terdapat dalam file teks yang dimasukkan sebagai input program ini.
Gambar Menghitung jumlah tiap kata pada dokumen

Dari segi teknologi, dipublikasikannya GoogleBigtable pada 2006 telah menjadi moment muncul dan meluasnya kesadaran akan pentingnya kemampuan untuk memproses ‘big data’. Berbagai layanan yang disediakan Google, yang melibatkan pengolahan data dalam skala besar termasuk search engine-nya, dapat beroperasi secara optimal berkat adanya Bigtable yang merupakan sistem database berskala besar dan cepat. Semenjak itu, teknik akses dan penyimpanan data KVS (Key-Value Store) dan teknik komputasi paralel yang disebutMapReduce mulai menyedot banyak perhatian. Lalu, terinspirasi oleh konsep dalam GoogleFile System dan MapReduce yang menjadi pondasi Google Bigtable, seorang karyawan Yahoo! bernama Doug Cutting kemudian mengembangkan software untuk komputasi paralel terdistribusi (distributed paralel computing) yang ditulis dengan menggunakan Java dan diberi nama Hadoop. Saat ini Hadoop telah menjadi project open source-nya Apache Software. Salah satu pengguna Hadoop adalah Facebook, SNS (Social Network Service) terbesar dunia dengan jumlah pengguna yang mencapai 800 juta lebih. Facebook menggunakan Hadoop dalam memproses big data seperti halnya content sharing, analisa access log, layanan message / pesan dan layanan lainnya yang melibatkan pemrosesan big data.


3.          Kesimpulan
       Berdasar uraian diatas, dapat ditarik kesimpulan bahwa yang dimaksud dengan ‘big data’ bukanlah semata-mata hanya soal ukuran, bukan hanya tentang data yang berukuran raksasa. Big data adalah data berukuran raksasa yang volumenya terus bertambah, terdiri dari berbagai jenis atau varietas data, terbentuk secara terus menerus dengan kecepatan tertentu dan harus diproses dengan kecepatan tertentu pula. Momen awal ketenaran istilah ‘big data’ adalah kesuksesan Google dalam memberdayakan ‘big data’ dengan menggunakan teknologi canggihnya yang disebut Bigtable beserta teknologi-teknologi pendukungnya


4.         Daftar Pustaka / Referensi :

Semoga Bermanfaat…

Tidak ada komentar:

Posting Komentar