Daftar Isi:
- Perangkat keras / data topologi perangkat keras yang besar
- Sinkronisasi data yang besar
- Sistem file data besar
Video: Cara Optimalkan setting Open Camera 2024
Selain mengoptimalkan kode aplikasi aktual dengan MapReduce untuk proyek data besar, Anda dapat menggunakan beberapa teknik optimasi untuk meningkatkan kehandalan dan kinerja. Mereka terbagi dalam tiga kategori: topologi hardware / jaringan, sinkronisasi, dan sistem file.
Perangkat keras / data topologi perangkat keras yang besar
Independen aplikasi, perangkat keras dan jaringan tercepat kemungkinan akan menghasilkan waktu tercepat untuk perangkat lunak Anda. Keuntungan yang berbeda dari MapReduce adalah kemampuan untuk berjalan dalam kelompok perangkat keras dan jaringan standar yang murah. Jika Anda tidak memperhatikan di mana server Anda diatur secara fisik, Anda tidak akan mendapatkan kinerja terbaik dan tingkat toleransi kesalahan yang tinggi yang diperlukan untuk mendukung tugas data yang besar.
Perangkat keras komoditi sering disimpan di rak di pusat data. Kedekatan perangkat keras di dalam rak menawarkan keuntungan kinerja dibandingkan dengan memindahkan data dan / atau kode dari rak ke rak. Selama implementasi, Anda dapat mengkonfigurasi mesin MapReduce untuk mengetahui dan memanfaatkan kedekatan ini.
Menjaga data dan kode bersama adalah salah satu pengoptimalan terbaik untuk kinerja MapReduce. Intinya, semakin dekat elemen pemrosesan perangkat keras satu sama lain, semakin sedikit latency yang harus Anda hadapi.
Sinkronisasi data yang besar
Karena tidak efisien menahan semua hasil pemetaan Anda di dalam node, mekanisme sinkronisasi akan menyalin hasil pemetaan ke nodus pengurang segera setelah selesai pengolahan bisa dimulai segera. Semua nilai dari kunci yang sama dikirim ke peredam sama, lagi memastikan kinerja lebih tinggi dan efisiensi yang lebih baik.
Keluaran reduksi ditulis langsung ke sistem file, jadi harus dirancang dan disetel untuk hasil terbaik.
Sistem file data besar
Implementasi MapReduce Anda didukung oleh sistem file terdistribusi. Perbedaan utama antara sistem file lokal dan terdistribusi adalah kapasitas. Untuk menangani sejumlah besar informasi di dunia data yang besar, sistem berkas perlu disebarkan ke beberapa mesin atau node dalam jaringan.
Implementasi MapReduce bergantung pada gaya distribusi master-slave, dimana simpul induk menyimpan semua metadata, hak akses, pemetaan dan lokasi file dan blok, dan seterusnya. Budak adalah simpul dimana data sebenarnya disimpan. Semua permintaan pergi ke master dan kemudian ditangani oleh node budak yang sesuai.Saat Anda merenungkan desain sistem file, Anda harus mempertimbangkan hal berikut:
-
Jaga agar tetap hangat: Seperti yang Anda duga, simpul master bisa bekerja terlalu keras karena semuanya dimulai di sana. Selain itu, jika node utama gagal, keseluruhan sistem file tidak dapat diakses sampai master dipulihkan. Pengoptimalan yang sangat penting adalah membuat simpul induk "warm standby" yang bisa beralih ke layanan jika ada masalah dengan master online.
-
Semakin besar semakin baik: Ukuran file juga merupakan pertimbangan penting. Banyak file kecil (kurang dari 100MB) harus dihindari. Sistem file terdistribusi yang mendukung mesin MapReduce bekerja paling baik bila dihuni dengan sejumlah kecil file berukuran besar.
-
Pandangan panjang: Karena beban kerja dikelola dalam jumlah banyak, bandwidth jaringan yang sangat tinggi lebih penting daripada waktu eksekusi cepat pemotong atau pereduksi. Pendekatan yang optimal adalah kode untuk mengalirkan banyak data saat sedang membaca dan lagi saat sudah waktunya menulis ke sistem file.
-
Jaga agar tetap aman: Tapi jangan terlalu parah. Menambahkan lapisan keamanan pada sistem file terdistribusi akan menurunkan kinerjanya. Izin file ada untuk menjaga konsekuensi yang tidak diinginkan, bukan perilaku jahat. Pendekatan terbaik adalah memastikan bahwa hanya pengguna yang berwenang yang memiliki akses ke lingkungan data center dan menjaga agar sistem file terdistribusi terlindungi dari luar.