Video: Hadoop IO 2024
Bila Anda menyimpan file di HDFS, sistem akan memecahnya menjadi satu set blok individual dan menyimpan blok ini di berbagai node budak di cluster Hadoop. Ini adalah hal yang sama sekali normal untuk dilakukan, karena semua sistem file memecah file menjadi beberapa blok sebelum menyimpannya ke disk.
HDFS tidak tahu (dan tidak peduli) apa yang tersimpan di dalam file, jadi file mentah tidak dibagi sesuai dengan peraturan yang bisa dipahami manusia. Manusia, misalnya, ingin catatan batas - garis yang menunjukkan di mana catatan dimulai dan berakhir - untuk dihormati.
Konsep menyimpan file sebagai kumpulan blok sepenuhnya sesuai dengan bagaimana sistem file bekerja normal. Tapi yang berbeda dengan HDFS adalah skala. Ukuran blok khas yang Anda lihat di sistem file di Linux adalah 4KB, sedangkan ukuran blok khas di Hadoop adalah 128MB. Nilai ini dapat dikonfigurasi, dan dapat disesuaikan, baik sebagai default sistem baru dan nilai kustom untuk file individual.
Pertama-tama, setiap blok data yang tersimpan dalam HDFS memiliki metadata sendiri dan perlu dilacak oleh server pusat sehingga aplikasi yang perlu mengakses file tertentu dapat diarahkan ke tempat semua blok file disimpan. Jika ukuran blok berada dalam kisaran kilobyte, bahkan volume data sederhana dalam skala terabyte akan membanjiri server metadata dengan terlalu banyak blok untuk dilacak.
Kedua, HDFS dirancang untuk memungkinkan throughput yang tinggi sehingga pengolahan paralel kumpulan data besar ini terjadi secepat mungkin. Kunci skalabilitas Hadoop pada sisi pemrosesan data adalah, dan selalu akan menjadi, paralelisme - kemampuan untuk memproses blok individual dari file besar ini secara paralel. Untuk memungkinkan pemrosesan yang efisien, keseimbangan perlu dipukul. Di satu sisi, ukuran blok harus cukup besar untuk menjamin sumber daya yang didedikasikan untuk unit pengolahan data individual (misalnya, peta atau kurangi tugas). Di sisi lain, ukuran blok tidak bisa begitu besar sehingga sistem menunggu waktu yang sangat lama untuk satu unit pengolahan data terakhir untuk menyelesaikan pekerjaannya.
Kedua pertimbangan ini jelas tergantung pada jenis pekerjaan yang sedang dilakukan pada blok data.