Isi kandungan:
Video: Data Analysis in R by Dustin Tran 2024
Selain mengoptimumkan kod aplikasi sebenar dengan MapReduce untuk projek data besar, anda boleh menggunakan beberapa teknik pengoptimuman untuk meningkatkan keandalan dan prestasi. Mereka termasuk dalam tiga kategori: topologi perkakasan / rangkaian, penyegerakan, dan sistem fail.
Topologi perkakasan / rangkaian data yang besar
Aplikasi bebas, perkakasan dan rangkaian terpantas mungkin menghasilkan masa larian terpantas untuk perisian anda. Kelebihan yang berbeza dari MapReduce adalah keupayaan untuk berjalan pada kluster murah dari perkakasan komoditi dan rangkaian standard. Jika anda tidak memberi perhatian kepada di mana pelayan anda secara fizikal diatur, anda tidak akan mendapat prestasi terbaik dan toleransi kesalahan yang tinggi diperlukan untuk menyokong tugas data besar.
Perkakasan komoditi sering disimpan dalam rak di pusat data. Kedekatan perkakasan dalam rak menawarkan kelebihan prestasi berbanding dengan memindahkan data dan / atau kod dari rak ke rak. Semasa pelaksanaan, anda boleh mengkonfigurasi enjin MapReduce anda untuk mengetahui dan memanfaatkan kedekatan ini.
Mengekalkan data dan kod bersama adalah salah satu pengoptimuman yang terbaik untuk mempromosi prestasi. Pada dasarnya, lebih dekat elemen-elemen pemprosesan perkakasan adalah antara satu sama lain, kurang kependaman yang perlu anda hadapi.
Penyegerakan data besar
Kerana ia tidak cekap untuk memegang semua hasil pemetaan anda di dalam simpul, mekanisme penyegerakan menyalin hasil pemetaan ke simpang pengurangan segera setelah mereka selesai sehingga pemprosesan boleh bermula dengan segera. Semua nilai dari kekunci yang sama dihantar kepada pengurangan yang sama, sekali lagi memastikan prestasi yang lebih tinggi dan kecekapan yang lebih baik.
Pengurangan output ditulis terus ke sistem fail, jadi ia mesti direka dan ditala untuk hasil terbaik.
Sistem fail data besar
Implementasi MapReduce anda disokong oleh sistem fail yang diedarkan. Perbezaan utama antara sistem fail tempatan dan diedarkan adalah kapasiti. Untuk mengendalikan sejumlah besar maklumat dalam dunia data yang besar, sistem fail perlu disebarkan merentasi pelbagai mesin atau nod dalam rangkaian.
MapReduce implementations bergantung pada gaya distribusi master-slave, di mana nod master menyimpan semua metadata, hak akses, pemetaan dan lokasi file dan blok, dan sebagainya. Hamba adalah nod di mana data sebenar disimpan. Semua permintaan pergi ke tuan dan kemudian dikendalikan oleh nod hamba yang sesuai.Semasa anda merenungkan reka bentuk sistem fail, anda harus mempertimbangkan perkara berikut:
-
Pastikan ia hangat: Seperti yang anda jangkakan, nod induk boleh bekerja terlalu banyak kerana semuanya bermula di sana. Selain itu, jika nod induk gagal, keseluruhan sistem fail tidak boleh diakses sehingga master dipulihkan. Pengoptimuman yang sangat penting adalah untuk mewujudkan "nada hangat" nod induk yang boleh melompat ke dalam perkhidmatan jika masalah berlaku dengan tuan dalam talian.
-
Semakin besar semakin baik: Saiz fail juga merupakan pertimbangan yang penting. Banyak fail kecil (kurang daripada 100MB) harus dielakkan. Sistem fail yang diagihkan yang menyokong enjin MapReduce berfungsi dengan baik apabila mereka diisi dengan bilangan fail yang besar.
-
Pandangan yang lama: Oleh kerana beban kerja dikelola dalam batch, jalur lebar rangkaian yang sangat penting adalah lebih penting daripada masa pelaksanaan cepat pemetaan atau pengurangan. Pendekatan yang optimum adalah untuk kod untuk mengalirkan banyak data apabila ia membaca dan sekali lagi apabila tiba masanya untuk menulis ke sistem fail.
-
Pastikan ia selamat: Tetapi tidak terlalu. Menambah lapisan keselamatan pada sistem fail yang diedarkan akan menurunkan prestasinya. Kebenaran fail ada untuk melindungi terhadap akibat yang tidak diingini, bukan tingkah laku yang berniat jahat. Pendekatan terbaik adalah memastikan pengguna hanya dibenarkan mengakses persekitaran pusat data dan menyimpan sistem fail yang diedarkan yang dilindungi dari luar.