Daftar Isi:
- Fungsi peta untuk data besar
- reduce
- Anda tidak ingin mengubah daftar masukan itu sehingga Anda dapat menggunakannya dengan cara yang berbeda dengan asumsi dan data baru.
Video: Aditya Riaddy - Apa itu Apache Spark dan Penggunaanya untuk Big Data Analytics | BukaTalks 2024
MapReduce adalah kerangka kerja perangkat lunak yang ideal untuk data besar karena memungkinkan pengembang menulis program yang dapat memproses data dalam jumlah besar secara tidak terstruktur secara paralel di seluruh kelompok prosesor terdistribusi.
Fungsi peta untuk data besar
Fungsi map telah menjadi bagian dari banyak bahasa pemrograman fungsional selama bertahun-tahun. Peta telah diregruasi sebagai teknologi inti untuk memproses daftar elemen data.
Keuntungan lain untuk pemrograman fungsional tidak harus secara tegas mengatur pergerakan atau arus data. Ini membebaskan programmer dari pengelolaan data dan penempatan data secara eksplisit. Akhirnya, urutan operasi pada data tidak diresepkan.
mylist = ("semua kabupaten di AS yang berpartisipasi dalam pemilihan umum paling akhir") > Buat fungsi howManyPeople menggunakan fungsi peta
.
Ini hanya memilih kabupaten dengan lebih dari 50.000 orang: peta howManyPeople (mylist) = [howManyPeople "county 1"; howManyPeople "county 2"; howManyPeople "county 3"; howManyPeople "county 4"; …] Sekarang buat daftar keluaran baru dari semua negara dengan populasi lebih dari 50.000:
(tidak, county 1; ya, county 2; tidak, county 3; yes, county 4;?, County nnn)
Fungsi dijalankan tanpa membuat perubahan pada daftar aslinya. Selain itu, Anda dapat melihat bahwa setiap elemen dari daftar keluaran memetakan ke elemen yang sesuai dari daftar input, dengan ya atau tidak terpasang. Jika county telah memenuhi persyaratan lebih dari 50.000 orang, fungsi peta mengidentifikasikannya dengan iya. Jika tidak, tidak ada indikasi.Tambahkan fungsi pengurangan untuk data besar
Seperti fungsi peta,reduce
telah menjadi fitur bahasa pemrograman fungsional selama bertahun-tahun. Fungsi mengurangi mengambil output dari fungsi peta dan "mengurangi" daftar dengan cara apa pun yang diinginkan pemrogram. Langkah pertama yang dibutuhkan fungsi pengurangan adalah memberi nilai pada sesuatu yang disebut akumulator, yang memegang nilai awal. Setelah menyimpan nilai awal pada akumulator, fungsi mengurangi kemudian memproses setiap elemen dari daftar dan melakukan operasi yang Anda butuhkan di seluruh daftar.
Setelah meminta fungsi peta howManyPeople, Anda akan ditinggalkan dengan daftar output berikut:
(no, county 1; yes, county 2; no, county 3; yes, county 4;, county nnn)Sekarang ini adalah masukan untuk mengurangi fungsi Anda. Inilah bentuknya:
countylist = (tidak, county 1; ya, county 2; no, county 3; yes, county 4;?, County nnn) reduce isDemocrat (countylist)
Proses pengurangan fungsi setiap elemen daftar dan mengembalikan daftar semua kabupaten dengan populasi lebih dari 50.000, di mana mayoritas memilih Demokrat.
Menempatkan peta data yang besar dan mengurangi bersama
Kadang-kadang menghasilkan daftar output cukup. Demikian juga, terkadang melakukan operasi pada setiap elemen dalam daftar sudah cukup. Paling sering, Anda ingin melihat sejumlah besar data masukan, memilih elemen tertentu dari data, dan kemudian menghitung sesuatu yang bernilai dari potongan data yang relevan.
Anda tidak ingin mengubah daftar masukan itu sehingga Anda dapat menggunakannya dengan cara yang berbeda dengan asumsi dan data baru.
Pengembang perangkat lunak merancang aplikasi berdasarkan algoritma. Algoritma
tidak lebih dari serangkaian langkah yang perlu dilakukan dalam melayani keseluruhan tujuan. Mungkin terlihat sedikit seperti ini: Mulailah dengan sejumlah besar atau data atau catatan. Iterasi atas data.
-
Gunakan fungsi peta untuk menarik sesuatu yang menarik dan buat daftar keluaran.
-
Atur daftar output untuk dioptimalkan untuk diproses lebih lanjut.
-
Gunakan fungsi pengurangan untuk menghitung satu set hasil.
-
Menghasilkan hasil akhir.
-
Pemrogram dapat menerapkan semua jenis aplikasi dengan menggunakan pendekatan ini, namun contohnya sampai saat ini sangat sederhana, sehingga nilai sebenarnya dari MapReduce mungkin tidak terlihat. Apa yang terjadi bila Anda memiliki data masukan yang sangat besar? Bisakah Anda menggunakan algoritma yang sama pada terabyte data? Kabar baiknya adalah ya.
-
Semua operasi tampak independen. Itu karena memang begitu. Kekuatan sesungguhnya dari MapReduce adalah kemampuan untuk membagi dan menaklukkan. Ambillah masalah yang sangat besar dan pecahkan menjadi potongan yang lebih kecil dan lebih mudah diatur, beroperasi pada masing-masing potongan secara terpisah, dan kemudian tarik semuanya pada akhirnya. Selanjutnya, fungsi peta bersifat komutatif - dengan kata lain, perintah agar suatu fungsi dijalankan tidak masalah.
Jadi MapReduce dapat melakukan pekerjaannya pada mesin yang berbeda dalam jaringan. Ini juga bisa menarik dari beberapa sumber data, baik internal maupun eksternal. MapReduce melacak karyanya dengan membuat kunci unik untuk memastikan bahwa semua pemrosesan terkait untuk memecahkan masalah yang sama.Kunci ini juga digunakan untuk menarik semua output bersamaan pada akhir semua tugas terdistribusi.