Apa saja kelas yang berbeda dari masalah sains data yang dapat diselesaikan dengan menggunakan model pemrograman mapreduce?
sumber
Apa saja kelas yang berbeda dari masalah sains data yang dapat diselesaikan dengan menggunakan model pemrograman mapreduce?
Mari kita membaginya menjadi beberapa bagian.
Ilmu Data adalah tentang membuat pengetahuan dari data mentah. Ini menggunakan pembelajaran mesin, statistik dan bidang lain untuk menyederhanakan (atau bahkan mengotomatisasi) pengambilan keputusan. Teknik ilmu data dapat bekerja dengan ukuran data apa pun, tetapi lebih banyak data berarti prediksi yang lebih baik dan dengan demikian keputusan yang lebih tepat.
Hadoop adalah nama umum untuk seperangkat alat yang dimaksudkan untuk bekerja dengan sejumlah besar data. Dua komponen terpenting dalam Hadoop adalah HDFS dan MapReduce.
HDFS , atau Sistem File Terdistribusi Hadoop, adalah penyimpanan terdistribusi khusus yang mampu menampung jumlah data yang sangat besar. File besar pada HDFS yang dibagi menjadi blok, dan untuk setiap blok HDFS API mengekspos nya lokasi .
MapReduce adalah kerangka kerja untuk menjalankan komputasi pada node dengan data. MapReduce banyak menggunakan lokalitas data yang terpapar oleh HDFS: bila memungkinkan, data tidak ditransfer antar node, tetapi kode disalin ke node dengan data.
Jadi pada dasarnya setiap masalah (termasuk tugas ilmu data) yang tidak melanggar prinsip lokalitas data dapat diimplementasikan secara efisien menggunakan MapReduce (dan sejumlah masalah lain dapat diselesaikan tidak dengan efisien, tetapi masih cukup sederhana).
Mari kita ambil beberapa contoh. Sangat sering analis hanya membutuhkan beberapa statistik sederhana atas data tabularnya. Dalam hal ini Hive , yang pada dasarnya adalah mesin SQL di atas MapReduce, bekerja dengan sangat baik (ada juga Impala, Shark dan yang lainnya, tetapi mereka tidak menggunakan Hadoop's MapReduce, jadi lebih banyak tentang mereka nanti).
Dalam kasus lain, analis (atau pengembang) mungkin ingin bekerja dengan data yang sebelumnya tidak terstruktur. Pure MapReduce cukup bagus untuk mengubah dan menstandarkan data.
Beberapa orang terbiasa mengeksplorasi statistik dan visualisasi menggunakan alat seperti R. Mungkin untuk menerapkan pendekatan ini ke jumlah data besar menggunakan paket RHadoop .
Dan ketika datang ke pembelajaran mesin berbasis MapReduce, Apache Mahout adalah yang pertama disebutkan.
Namun, ada satu jenis algoritma yang bekerja sangat lambat di Hadoop bahkan di hadapan lokalitas data, yaitu, algoritma iteratif. Algoritma berulang cenderung memiliki beberapa tahap Peta dan Mengurangi. Kerangka kerja MR Hadoop membaca dan menulis data ke disk pada setiap tahap (dan terkadang di antaranya), yang membuat tugas iteratif (dan juga multi-tahap) sangat lambat.
Untungnya, ada kerangka kerja alternatif yang bisa - menggunakan lokalitas data dan menyimpan data dalam memori di antara tahapan. Mungkin, yang paling terkenal dari mereka adalah Apache Spark . Spark adalah pengganti lengkap untuk Hadoop's MapReduce yang menggunakan runtime-nya sendiri dan memperlihatkan API yang cukup kaya untuk memanipulasi dataset terdistribusi Anda. Spark memiliki beberapa sub proyek, terkait erat dengan ilmu data:
Jadi ada banyak masalah ilmu data yang dapat Anda selesaikan dengan Hadoop dan proyek terkait.
So basically any problem that doesn't break data locality principle may be efficiently implemented using MapReduce
. Dari pemahaman saya, Anda hanya bisa menyelesaikan masalah yang bisa diekspresikan dengan pola MapReduce.Ilmu Data memiliki banyak sub-bidang yang berbeda seperti yang dijelaskan dalam posting saya ). Hampir untuk setiap bidang, ilmuwan dan pengembang memiliki kontribusi yang signifikan. Untuk mempelajari lebih lanjut tentang apa yang dapat dilakukan, silakan lihat situs web berikut:
Juga, ada beberapa pekerjaan pada kombinasi MapReduce + Excel + Cloud tetapi saya belum menemukan tautannya.
Setiap "kelas" bukan murni domain masalah homogen, yaitu beberapa masalah tidak dapat diselesaikan melalui peta dan mengurangi pendekatan karena biaya komunikasinya, atau perilaku algoritma. Yang saya maksud dengan perilaku adalah bahwa beberapa masalah ingin memiliki kontrol pada semua set data, bukan potongan. Jadi, saya menolak untuk menyebutkan jenis masalah "kelas".
Jangan lupa bahwa mengetahui apa yang bisa dilakukan MapReduce tidak cukup untuk Ilmu Data. Anda juga harus menyadari Apa yang MapReduce tidak bisa lakukan juga.
sumber
Ada kertas yang harus Anda perhatikan:
MapReduce: Komputasi Terdistribusi untuk Pembelajaran Mesin
Mereka membedakan 3 kelas masalah pembelajaran mesin yang masuk akal untuk diatasi dengan MapReduce:
Mereka juga memberikan contoh untuk setiap kelas.
sumber
peta / pengurangan paling tepat untuk perhitungan offline yang dapat diparalelkan. Untuk lebih tepatnya, ini bekerja paling baik ketika hasilnya dapat ditemukan dari hasil beberapa fungsi partisi input. Rata-rata adalah contoh sepele; Anda dapat melakukan ini dengan memetakan / mengurangi dengan menjumlahkan setiap partisi, mengembalikan jumlah dan jumlah elemen dalam partisi, kemudian menghitung rata-rata keseluruhan menggunakan hasil antara ini. Itu kurang tepat ketika langkah-langkah perantara tergantung pada keadaan partisi lain.
sumber