MapReduce - Teknologi dalam Big Data

Ada banyak teknologi untuk memproses dan menganalisa Big Data, tetapi sebagian besar memiliki karakteristik yang sama. Yaitu memanfaatkan keunggulan komoditas hardware yang mampu untuk melakukan teknik scale-out dan parallel-processing, menerapkan kemampuan storage data yang non-relational untuk memproses data yang tak-terstruktur dan semi-terstruktur; dan menerapkan analytics canggih dan teknologi visualisasi data ke Big Data untuk menyalurkan insight ke end-users. Ada banyak teknologi Big Data yang unggul, yang sebagian besar dipercaya akan mentransformasi analisa bisnis dan pasar manajemen data, yaitu: MapReduce, Hadoop, dan NoSQL.

MapReduce
MapReduce adalah teknik yang dipopulerkan oleh Google yang mendistribusikan file-file data multi-struktur yang sangat besar ke seluruh cluster mesin (komputer). Kinerja yang tinggi dicapai dengan memecah pemrosesan menjadi unit-unit kerja yang kecil yang bisa dijalankan secara parallel ke seluruh ratusan bahkan ribuan node cluster. Berikut adalah cuplikan paper tentang MapReduce:
"MapReduce adalah model pemrograman dan implementasi terkait untuk memproses dan menghasilkan dataset yang sangat besar. Program-program yang ditulis dalam bentuk fungsional ini secara otomatis diparalelkan dan dieksekusi pada cluster mesin-mesin yang besar. Ini akan membuat para programmer yang tanpa pengalaman apapun berkaitan dengan sistem parallel dan terdistribusi untuk dengan mudah memanfaatkan sumber daya sistem terdistribusi yang sangat besar."
Poin utama untuk dicatat dari cuplikan tersebut adalah bahwa MapReduce adalah suatu model pemrograman, bukan bahasa pemrograman, yaitu model ini dirancang untuk digunakan oleh para programmer dan bukan untuk business user. Cara termudah untuk menjelaskan bagaimana cara kerja MapReduce adalah dengan melalui contoh -- lihat gambar di bawah ini.

Ilustrasi proses MapReduce
Input dari proses MapReduce dalam gambar tersebut adalah sekumpulan bidang berwarna. Tujuannya adalah akan menghitung jumlah bidang dari masing-masing warna. Programmer dalam contoh ini akan memiliki tugas untuk membuat 'map program' (fungsi map) dan membuat 'reduce program'; sisanya akan dilakukan oleh sistem software yang mengimplementasikan model pemrograman MapReduce.

MapReduce pertama kali akan membaca file input dan memecah menjadi beberapa pecahan. Dalam contoh ini hanya ada dua pecahan, tetapi di dunia nyata akann ada banyak sekali pemecahannya. Pecahan-pecahan itu kemudian diproses dengan berbagai 'map program' yang berjalan parallel pada node-node cluster. Peran dari masing-masing 'map program' dalam hal ini adalah mengelompokkan data dalam suatu pecahan berdasarkan warna. Sistem MapReduce kemudian akan mengambil output dari masing-masing 'map program' dan menggabungkan (mengelompokkan/mengurutkan) hasil-hasilnya untuk dijadikan input ke 'reduce program', yang akan menghitung jumlah bidang masing-masing warna. Dalam contoh ini hanya ada satu copy dari 'reduce program' yang digunakan, tetapi dalam praktiknya mungkin akan ada jauh lebih banyak. Untuk melakukan optimasi kinerja, programmer bisa membuat program mereka sendiri untuk mengelompokkan/mengurutkan dan bisa juga menerapkan suatu teknik untuk menggabungkan file-file output map lokal untuk mengurangi jumlah file-file output yang harus diakses secara remote di seluruh cluster berdasarkan langkah saat mengelopokkan/mengurutkan.

Mengapa menggunakan MapReduce?

MapReduce membantu banyak organisasi dalam memproses dan menganalisa data multi-struktur dengan volume yang sangat besar. Contoh-contoh penerapannya antara lain adalah indexing dan search, analisa grafik, analisa teks, machine learning, transformasi data, dan sebagainya. Jenis-jenis penerapan tersebut seringkali sangat sulit diimplementasikan menggunakan SQL standard yang ada pada DBMS relational.

Karakter dasar yang prosedural dari MapReduce membuatnya mudah dipahami oleh para programmer yang handal. MapReduce juga memiliki keunggulan sehingga developer tidak harus berpikir tentang implementasi parallel computing--karena ini akan ditangani secara transparent oleh sistem. Meskipun MapReduce dirancang untuk para programmer, para non-programmer bisa mengeksploitasi value penerapan MapReduce dan library fungsi-fungsi yang sudah ada. Baik library MapReduce yang komersial maupun yang open source semuanya menyediakan kemampuan analitics yang luas. Contohnya, Apache Mahaout adalah library machine-learning yang open source tentang "algorithms for clustering, classification and batch-based collaborative filtering" yang diimplementasikan dengan menggunakan MapReduce.

Link terkait Big Data:

No comments:

Post a Comment