Daftar Isi:
Video: Sejarah Hadoop 2024
Sistem File Terdistribusi Hadoop adalah pendekatan serbaguna, tangguh, berkerumun untuk mengelola file di lingkungan data yang besar. HDFS bukan tujuan akhir untuk file. Sebaliknya, ini adalah layanan data yang menawarkan seperangkat kemampuan unik yang dibutuhkan saat volume data dan kecepatan tinggi. Karena datanya ditulis sekali dan kemudian dibaca berkali-kali sesudahnya, daripada membaca-tulis konstan dari sistem file lain, HDFS adalah pilihan tepat untuk mendukung analisis data yang besar.
Data besar NameNodes
HDFS bekerja dengan memecah file berukuran besar menjadi potongan kecil yang disebut blok . Blok-blok disimpan pada node data, dan merupakan tanggung jawab NameNode untuk mengetahui blok mana di mana simpul data membentuk file yang lengkap. NameNode juga bertindak sebagai "polisi lalu lintas", mengelola semua akses ke file.
Kumpulan lengkap semua file dalam cluster kadang disebut sebagai namespace sistem berkas . Ini adalah tugas NameNode untuk mengelola namespace ini.
Meskipun ada hubungan yang kuat antara NameNode dan node data, mereka beroperasi dengan mode "longgar digabungkan". Hal ini memungkinkan elemen cluster untuk berperilaku dinamis, menambahkan server seiring permintaan meningkat. Dalam konfigurasi yang khas, Anda menemukan satu NameNode dan mungkin sebuah node data yang berjalan pada satu server fisik di rak. Server lain hanya menjalankan simpul data.
Simpul data berkomunikasi di antara mereka sendiri sehingga mereka dapat bekerja sama selama operasi sistem berkas normal. Hal ini diperlukan karena blok untuk satu file cenderung disimpan pada banyak node data. Karena NameNode sangat penting untuk pengoperasian cluster yang benar, hal itu dapat dan harus direplikasi untuk mencegah satu titik kegagalan.
Simpul data besar
Simpul data tidak cerdas, namun tahan lama. Dalam cluster HDFS, blok data direplikasi di beberapa node data dan akses dikelola oleh NameNode. Mekanisme replikasi dirancang untuk efisiensi optimal bila semua simpul cluster dikumpulkan ke dalam rak. Sebenarnya, NameNode menggunakan "rack ID" untuk melacak node data dalam cluster.
Simpul data juga menyediakan pesan "detak jantung" untuk mendeteksi dan memastikan konektivitas antara NameNode dan node data. Ketika detak jantung tidak lagi ada, NameNode melepaskan simpul data dari cluster dan terus beroperasi seolah tidak terjadi apa-apa. Ketika detak jantung kembali, ditambahkan ke cluster secara transparan sehubungan dengan pengguna atau aplikasi.
Integritas data adalah fitur utama. HDFS mendukung sejumlah kemampuan yang dirancang untuk memberikan integritas data. Seperti yang Anda duga, ketika file dipecah menjadi blok dan kemudian didistribusikan ke server yang berbeda di cluster, variasi dalam pengoperasian elemen apapun dapat mempengaruhi integritas data. HDFS menggunakan log transaksi dan validasi checksum untuk memastikan integritas di cluster.
Log transaksi melacak setiap operasi dan efektif dalam mengaudit atau membangun kembali sistem berkas jika terjadi sesuatu yang tidak diinginkan.
Validitas checksum digunakan untuk menjamin isi file dalam HDFS. Saat klien meminta file, ia dapat memverifikasi isinya dengan memeriksa checksumnya. Jika checksum cocok, operasi file bisa berlanjut. Jika tidak, kesalahan dilaporkan. File checksum tersembunyi untuk membantu menghindari gangguan.
Data node menggunakan disk lokal di server komoditas untuk ketekunan. Semua blok data disimpan secara lokal, terutama untuk alasan kinerja. Blok data direplikasi di beberapa node data, sehingga kegagalan satu server mungkin tidak harus merusak file. Tingkat replikasi, jumlah node data, dan namespace HDFS ditetapkan saat cluster diimplementasikan.
HDFS untuk data besar
HDFS menangani tantangan data yang besar dengan memecah file menjadi kumpulan blok yang lebih kecil. Blok ini didistribusikan di antara node data di cluster HDFS dan dikelola oleh NameNode. Ukuran blok dapat dikonfigurasi dan biasanya berukuran 128 megabyte (MB) atau 256MB, yang berarti file 1GB menghabiskan delapan blok 128MB untuk kebutuhan penyimpanan dasarnya.
HDFS tangguh, jadi blok ini direplikasi di seluruh cluster jika terjadi kegagalan server. Bagaimana cara HDFS melacak semua potongan ini? Jawaban singkatnya adalah sistem file metadata .
Metadata didefinisikan sebagai "data tentang data. "Pikirkan metadata HDFS sebagai template untuk memberikan penjelasan rinci tentang hal berikut:
-
Saat file dibuat, diakses, dimodifikasi, dihapus, dan seterusnya
-
Tempat blok file disimpan dalam cluster < Siapa yang memiliki hak untuk melihat atau memodifikasi file
-
Berapa banyak file yang tersimpan di cluster
-
Berapa banyak node data ada di cluster
-
Lokasi log transaksi untuk cluster
-
HDFS metadata disimpan di NameNode, dan sementara cluster beroperasi, semua metadata dimasukkan ke dalam memori fisik server NameNode. Seperti yang Anda duga, semakin besar cluster, semakin besar metadata tapaknya.
Apa sebenarnya yang dilakukan server blok? Lihat daftar berikut ini:
Menyimpan blok data dalam sistem file lokal server. HDFS tersedia di berbagai sistem operasi dan berperilaku sama baik di Windows, Mac OS, atau Linux.
-
Menyimpan metadata blok dalam sistem file lokal berdasarkan template metadata di NameNode.
-
Melakukan validasi checksum file secara berkala.
-
Mengirimkan laporan berkala ke NameNode tentang blok yang tersedia untuk operasi file.
-
Menyediakan metadata dan data ke klien sesuai permintaan. HDFS mendukung akses langsung ke node data dari program aplikasi klien.
-
Ke depan data ke node data lain berdasarkan model "pipelining".
-
Blok penempatan pada node data sangat penting untuk replikasi data dan dukungan untuk pipelining data. HDFS menyimpan satu replika dari setiap blok secara lokal. HDFS serius tentang replikasi data dan ketahanan.