Apa Itu Hadoop Distributed File System (HDFS)?

Hadoop Distributed File System (HDFS) adalah sistem penyimpanan data utama yang digunakan oleh aplikasi Hadoop. Ini adalah kerangka kerja pemrosesan terdistribusi open-source yang digunakan untuk menangani pemrosesan data, mengelola kumpulan big data, serta menyimpan dan mendukung aplikasi analitik big data terkait.

HDFS menggunakan arsitektur NameNode dan DataNode untuk mengimplementasikan sistem file terdistribusi yang memberikan akses berperforma tinggi ke data di seluruh klaster Hadoop yang sangat skalabel. Sistem ini dirancang untuk berjalan di atas perangkat keras komoditas dan merupakan bagian penting dari banyak teknologi dalam ekosistem Hadoop.

Bagaimana HDFS Bekerja?

HDFS dibangun menggunakan bahasa Java dan memungkinkan transfer data yang cepat antar node komputasi. Awalnya, HDFS sangat terintegrasi dengan MapReduce, sebuah kerangka kerja pemrosesan data yang menyaring dan membagi pekerjaan di antara node dalam klaster serta mengorganisir hasilnya menjadi satu jawaban yang kohesif. Begitu juga dengan cara kerja HDFS, ketika menerima data, sistem ini akan membagi informasi menjadi blok-blok terpisah dan mendistribusikannya ke berbagai node dalam klaster.

Berikut adalah cara kerja HDFS:

  • Dalam HDFS, data ditulis ke server satu kali dan dapat dibaca serta digunakan kembali berkali-kali.
  • HDFS memiliki NameNode utama yang bertanggung jawab untuk melacak lokasi penyimpanan file dalam klaster.
  • HDFS memiliki banyak DataNode dalam klaster perangkat keras komoditas, biasanya satu per node dalam klaster. DataNode ini umumnya berada dalam rak yang sama di dalam pusat data. Data dibagi menjadi blok-blok terpisah dan didistribusikan ke berbagai DataNode untuk penyimpanan. Blok-blok ini juga direplikasi di beberapa node lain untuk memungkinkan pemrosesan paralel yang efisien.
  • NameNode mengetahui DataNode mana yang menyimpan blok tertentu serta lokasi DataNode dalam klaster. NameNode juga mengelola akses ke file, termasuk operasi baca, tulis, pembuatan, penghapusan, dan replikasi blok data di berbagai DataNode.
  • NameNode bekerja sama dengan DataNode. Dengan demikian, klaster dapat beradaptasi secara dinamis dengan permintaan kapasitas server secara real-time dengan menambah atau mengurangi node sesuai kebutuhan.
  • DataNode selalu berkomunikasi dengan NameNode untuk menentukan apakah mereka perlu menyelesaikan tugas tertentu. Oleh karena itu, NameNode selalu mengetahui status setiap DataNode. Jika NameNode mendeteksi bahwa salah satu DataNode tidak berfungsi dengan baik, ia dapat segera menugaskan ulang tugas DataNode tersebut ke node lain yang memiliki blok data yang sama. DataNode juga dapat berkomunikasi satu sama lain untuk bekerja sama dalam operasi file normal.
  • HDFS dirancang agar sangat toleran terhadap kesalahan. Sistem file ini mereplikasi atau menyalin setiap bagian data beberapa kali dan mendistribusikan salinannya ke node yang berbeda, dengan setidaknya satu salinan berada di rak server yang berbeda dari salinan lainnya.

Arsitektur HDFS, NameNode, dan DataNode

HDFS menggunakan arsitektur primer/sekunder di mana setiap klaster HDFS terdiri dari banyak node pekerja serta satu node utama atau NameNode. NameNode berfungsi sebagai pengontrol karena menyimpan metadata dan status semua file, termasuk izin file, nama, serta lokasi setiap blok. Pengguna atau aplikasi dapat membuat direktori dan menyimpan file di dalamnya. Hierarki namespace sistem file ini mirip dengan sistem file lainnya, di mana pengguna dapat membuat, menghapus, mengganti nama, atau memindahkan file dari satu direktori ke direktori lain.

NameNode dalam klaster HDFS adalah server utama yang mengelola namespace sistem file dan mengontrol akses klien ke file. Sebagai komponen utama dari Hadoop Distributed File System, NameNode memelihara serta mengelola namespace sistem file, sekaligus memberikan izin akses yang tepat kepada klien. Sementara itu, DataNode mengelola penyimpanan yang terhubung ke node tempat mereka berjalan.

NameNode

NameNode memiliki beberapa fungsi utama berikut:

  • Mengelola operasi namespace sistem file, termasuk membuka, menutup, dan mengganti nama file serta direktori.
  • Mengatur pemetaan blok ke DataNode.
  • Mencatat setiap perubahan dalam namespace sistem file atau propertinya. Aplikasi dapat menentukan jumlah replika yang harus dipertahankan oleh HDFS.
  • Menyimpan jumlah salinan file, yang disebut sebagai faktor replikasi file tersebut.
  • Untuk memastikan DataNode tetap “hidup”, NameNode menerima laporan blok serta data heartbeat.
  • Jika terjadi kegagalan pada DataNode, NameNode akan memilih DataNode baru untuk membuat replika.

DataNode

Dalam HDFS, DataNode berfungsi sebagai node pekerja atau daemon Hadoop dan biasanya terdiri dari perangkat keras murah yang tersedia di pasaran. File dalam HDFS dibagi menjadi satu atau lebih blok yang disimpan dalam DataNode. Berdasarkan faktor replikasi, file secara internal dipartisi menjadi banyak blok yang ditempatkan pada DataNode yang berbeda.

Fungsi utama DataNode:

  • Melayani permintaan baca dan tulis dari klien sistem file.
  • Melakukan pembuatan, penghapusan, dan replikasi blok sesuai perintah NameNode.
  • Mengirimkan sinyal heartbeat secara berkala ke NameNode untuk menjaga kesehatan HDFS.
  • Menyediakan laporan blok kepada NameNode untuk melacak blok yang ada dalam DataNode. Untuk redundansi dan ketersediaan yang lebih tinggi, setiap blok secara default disalin ke dua DataNode tambahan.

Fitur-fitur HDFS

Ada beberapa fitur yang membuat HDFS sangat berguna, di antaranya:

  • Replikasi data. Replikasi data memastikan data selalu tersedia dan mencegah kehilangan data. Misalnya, jika ada node yang crash atau terjadi kegagalan hardware, data yang direplikasi bisa diambil dari tempat lain dalam cluster sehingga pemrosesan tetap berjalan selama pemulihan data berlangsung.
  • Toleransi kesalahan dan keandalan. HDFS mampu mereplikasi blok file dan menyimpannya di berbagai node dalam cluster besar, memastikan sistem tetap andal dan toleran terhadap kesalahan.
  • Ketersediaan tinggi. Karena replikasi di berbagai node, data tetap bisa diakses meskipun NameNode atau DataNode mengalami kegagalan.
  • Skalabilitas. HDFS menyimpan data di berbagai node dalam cluster, sehingga saat kebutuhan meningkat, cluster bisa berkembang hingga ratusan node.
  • Throughput tinggi. Karena HDFS menyimpan data secara terdistribusi, pemrosesan data dapat dilakukan secara paralel di cluster node, mengurangi waktu pemrosesan dan meningkatkan throughput.
  • Data locality. Dengan HDFS, komputasi dilakukan langsung di DataNode tempat data berada, bukan memindahkan data ke unit komputasi. Hal ini mengurangi kemacetan jaringan dan meningkatkan throughput sistem.
  • Snapshots. HDFS mendukung snapshot, yang menangkap salinan titik waktu dari sistem file dan melindungi data penting dari kesalahan pengguna atau aplikasi.

Apa manfaat menggunakan HDFS?

Ada tujuh keuntungan utama dalam menggunakan HDFS, yaitu:

  • Hemat biaya. DataNode yang menyimpan data menggunakan hardware standar yang murah, sehingga biaya penyimpanan lebih rendah. Selain itu, karena HDFS bersifat open source, tidak ada biaya lisensi.
  • Penyimpanan data besar. HDFS dapat menyimpan berbagai jenis data dalam berbagai ukuran, mulai dari megabyte hingga petabyte, dalam format terstruktur maupun tidak terstruktur.
  • Pemulihan cepat dari kegagalan hardware. HDFS dirancang untuk mendeteksi kesalahan dan secara otomatis melakukan pemulihan.
  • Portabilitas. HDFS bisa dijalankan di berbagai platform hardware dan kompatibel dengan beberapa sistem operasi, termasuk Windows, Linux, dan macOS.
  • Akses data streaming. HDFS dibangun untuk throughput data yang tinggi, ideal untuk akses data streaming.
  • Kecepatan. Dengan arsitektur berbasis cluster, HDFS mampu menangani hingga 2 GB data per detik.
  • Beragam format data. Data lake Hadoop mendukung berbagai format data, termasuk data tidak terstruktur seperti video, data semi-terstruktur seperti XML, dan data terstruktur untuk database SQL. Data yang diambil melalui Hadoop tidak memiliki skema tetap sehingga dapat diproses dalam berbagai cara.

Contoh penggunaan HDFS

HDFS digunakan untuk mengelola big data di berbagai industri dan skenario, seperti:

  • Perusahaan listrik. Industri tenaga listrik menggunakan phasor measurement units (PMU) untuk memantau jaringan listrik pintar. Sensor ini mengukur arus dan tegangan di titik-titik transmisi tertentu. Data PMU dianalisis untuk mendeteksi gangguan sistem dan menyesuaikan jaringan listrik secara otomatis.
  • Kesehatan. HDFS digunakan dalam industri kesehatan untuk mengumpulkan dan menganalisis data sensor medis, memungkinkan pemantauan pasien secara real-time dan meningkatkan perawatan.
  • Pemasaran. Kampanye pemasaran yang ditargetkan membutuhkan banyak data dari berbagai sumber seperti CRM, sistem kasir, dan media sosial. HDFS menjadi tempat penyimpanan yang hemat biaya sebelum data dianalisis.
  • Minyak dan gas. Industri ini menangani berbagai format data besar, seperti video, model bumi 3D, dan data sensor mesin. HDFS memberikan platform yang cocok untuk analisis big data yang kompleks.
  • Riset ilmiah. Ilmuwan menggunakan HDFS untuk menyimpan, memproses, dan menganalisis data dalam jumlah besar yang dihasilkan dari eksperimen, observasi, dan simulasi.
  • Telekomunikasi. Bisnis telekomunikasi menggunakan HDFS untuk menganalisis jaringan, memprediksi perawatan infrastruktur, dan memahami perilaku pelanggan untuk mengembangkan layanan baru.
  • Ritel. Sebagian besar peritel menggunakan Hadoop untuk memahami pelanggan mereka dengan lebih baik dengan menganalisis data terstruktur maupun tidak terstruktur.
  • Kecerdasan buatan dan machine learning. Aplikasi AI dan machine learning menggunakan HDFS sebagai tulang punggung penyimpanan data. HDFS memungkinkan pelatihan model AI secara terdistribusi dengan penyimpanan dan pengambilan dataset besar secara efisien.

HDFS data replication

Data replication adalah bagian penting dari format HDFS karena memastikan data tetap tersedia jika terjadi kegagalan node atau perangkat keras. Seperti yang disebutkan sebelumnya, data dibagi menjadi blok-blok dan direplikasi ke berbagai node dalam cluster. Kecuali untuk blok terakhir dalam sebuah file, semua blok memiliki ukuran yang sama. Jadi, jika satu node mati, pengguna tetap bisa mengakses data dari node lain. HDFS menjaga proses replikasi ini berjalan secara berkala.

Berikut beberapa fungsi utama dan manfaat dari replikasi data HDFS:

  • Faktor replikasi. Faktor replikasi menentukan jumlah salinan yang dibuat untuk setiap blok data. Secara default, faktor replikasi di HDFS adalah 3, artinya setiap blok data direplikasi tiga kali. Ini memastikan bahwa jika terjadi kegagalan node atau kerusakan data, masih ada beberapa salinan blok data yang tersedia.
  • Ketersediaan data. Replikasi HDFS meningkatkan ketersediaan data dengan menyimpan beberapa salinan blok data di berbagai node. Ini memastikan bahwa data tetap dapat diakses meskipun ada gangguan sementara pada salah satu node.
  • Kebijakan penempatan. HDFS mereplikasi blok data berdasarkan kebijakan penempatan tertentu. Jika faktor replikasi adalah 3, HDFS akan menempatkan satu replika di mesin lokal (jika penulis berada di DataNode), satu di DataNode acak dalam rak yang sama, dan satu lagi di node yang berbeda dalam rak lain. Kebijakan ini membantu meningkatkan lokalitas data sekaligus mengurangi lalu lintas jaringan.
  • Kesadaran terhadap rak. Karena HDFS dirancang dengan kesadaran terhadap rak (rack awareness), sistem ini mempertimbangkan struktur jaringan dalam cluster. Ini membantu meminimalkan dampak kegagalan rak terhadap ketersediaan data dengan memastikan salinan blok data didistribusikan di berbagai rak.

Aplikasi big data dapat memanfaatkan berbagai alat open source. Temukan teknologi open source terbaik dan dapatkan lebih banyak informasi tentang database NoSQL.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *