Beranda
Topics
HDFS
Diperbarui: 14 Juni 2024
Kontributor: Jim Holdsworth
Hadoop Distributed File System (HDFS) adalah sistem file yang mengelola kumpulan data besar yang dapat berjalan pada perangkat keras komoditas. HDFS adalah sistem penyimpanan data yang paling populer untuk Hadoop dan dapat digunakan untuk menskalakan satu cluster Apache Hadoop menjadi ratusan bahkan ribuan node. Karena secara efisien mengelola big data dengan throughput tinggi, HDFS dapat digunakan sebagai pipeline data dan sangat ideal untuk mendukung analitik data yang kompleks.
HDFS dibangun di atas kerangka kerja sumber terbuka dan merupakan salah satu komponen utama Apache Hadoop, yang lainnya adalah MapReduce dan YARN. HDFS tidak boleh disamakan atau diganti dengan Apache HBase, yang merupakan sistem manajemen basis data non-relasional yang berorientasi kolom yang berada di atas HDFS dan dapat lebih mendukung kebutuhan data real-time dengan mesin pemrosesan dalam memori.
Pelajari manfaat utama AI generatif dan bagaimana organisasi dapat meningkatkan bisnis mereka.
Karena satu instance HDFS dapat terdiri dari ribuan server, kegagalan pada setidaknya satu server selalu ada. HDFS telah dibangun untuk mendeteksi kesalahan dan secara otomatis pulih dengan cepat. Data replication dengan beberapa salinan di banyak node membantu melindungi dari kehilangan data. HDFS menyimpan setidaknya satu salinan di rak yang berbeda dari semua salinan lainnya. Penyimpanan data ini dalam cluster besar di seluruh node meningkatkan keandalan. Selain itu, HDFS dapat mengambil snapshot penyimpanan untuk menyimpan informasi point-in-time (PIT).
HDFS lebih ditujukan untuk pemrosesan batch daripada penggunaan interaktif, sehingga penekanan dalam desain adalah untuk tingkat throughput data yang tinggi, yang mengakomodasi akses streaming ke kumpulan data.
HDFS mengakomodasi aplikasi yang menggunakan kumpulan data biasanya dari ukuran gigabyte hingga terabyte. HDFS menyediakan bandwidth data agregat tinggi dan dapat menskalakan hingga ratusan node dalam satu cluster dan membantu mendorong sistem komputasi kinerja tinggi (HPC). Data lake biasanya disimpan di HDFS. Gudang data juga telah menggunakan HDFS, tetapi sekarang lebih jarang, karena kompleksitas operasi yang dirasakan.
Karena data disimpan secara virtual, biaya untuk metadata sistem file dan penyimpanan data ruang nama sistem file dapat dikurangi.
Untuk memfasilitasi adopsi, HDFS dirancang agar portabel di berbagai platform perangkat keras dan kompatibel dengan berbagai sistem operasi, termasuk Linux, macOS, dan Windows. Selain itu, danau data Hadoop mampu mendukung basis data yang tidak terstruktur, semi terstruktur, dan terstruktur, untuk fleksibilitas maksimum. Sementara Hadoop dikodekan dalam Java, bahasa lain, termasuk C++, Perl, Python, dan Ruby, memungkinkan penggunaannya dalam ilmu data.
HDFS menggunakan arsitektur cluster untuk membantu memberikan throughput yang tinggi. Untuk mengurangi lalu lintas jaringan, sistem file Hadoop menyimpan data di DataNodes tempat perhitungan berlangsung, daripada memindahkan data ke lokasi lain untuk komputasi.
Dengan fitur skalabilitas horizontal dan vertikal, HDFS dapat dengan cepat disesuaikan agar sesuai dengan kebutuhan data organisasi. Sebuah cluster mungkin mencakup ratusan atau ribuan node.
HDFS memiliki arsitektur direktur/pekerja.
Baik NameNode maupun DataNode adalah perangkat lunak yang ditulis untuk berjalan pada berbagai macam sistem operasi (OS), yang biasanya adalah OS GNU/Linux. Bahasa Java digunakan dalam membangun HDFS, yang berarti bahwa mesin apa pun yang mendukung Java juga dapat menggunakan perangkat lunak NameNode atau DataNode.
Penerapan sering kali memiliki satu mesin khusus yang menjalankan perangkat lunak NameNode. Kemudian, mesin lain di kluster menjalankan satu contoh perangkat lunak DataNode. Jika diperlukan, tetapi jarang digunakan, konfigurasi lebih dari satu DataNode pada satu mesin dimungkinkan.
Ketika data dibawa ke HDFS, itu dipecah menjadi blok dan didistribusikan ke node yang berbeda dalam sebuah cluster. Dengan data yang disimpan di beberapa DataNode, blok dapat direplikasi ke node lain untuk memungkinkan pemrosesan paralel. Sistem file terdistribusi (DFS) menyertakan perintah untuk mengakses, mengambil, memindahkan, dan melihat data dengan cepat. Dengan replika blok data di beberapa DataNode, satu salinan dapat dihapus tanpa risiko kerusakan file pada salinan lainnya. Ukuran blok HDFS default adalah 128 MB (Hadoop 2.x), yang oleh sebagian orang dianggap besar, tetapi ukuran blok dilakukan untuk meminimalkan waktu pencarian dan mengurangi metadata yang dibutuhkan.
Untuk meminimalkan risiko dan mempercepat pemrosesan, ketika sebuah DataNode berhenti memberi sinyal pada NameNode, DataNode tersebut akan dihapus dari klaster dan operasi akan dilanjutkan tanpa DataNode tersebut. Jika DataNode tersebut kemudian beroperasi, maka akan dialokasikan ke cluster baru.
HDFS menyediakan file akses data yang fleksibel melalui berbagai antarmuka: API Java asli disediakan dengan HDFS, sementara pembungkus bahasa C tersedia untuk API Java, ditambah browser HTTP dapat digunakan untuk menelusuri file instance HDFS.
HDFS diatur dengan hierarki file tradisional di mana pengguna dapat membuat direktori yang berisi banyak file. Hirarki ruang nama sistem file mirip dengan sistem file tradisional, di mana pengguna membuat dan menghapus file, memindahkannya di antara direktori, dan dapat mengganti nama file.
Namespace sistem file dikelola oleh NameNode, yang menyimpan catatan perubahan apa pun dalam namespace sistem file. Jumlah total replika yang akan disimpan untuk aplikasi apa pun dapat ditentukan di sini. Angka itu adalah faktor replikasi untuk file itu. Faktor replikasi dapat diatur saat file dibuat dan kemudian dimodifikasi sesuai kebutuhan.
Untuk menyediakan penyimpanan yang andal, HDFS menyimpan file besar di beberapa lokasi dalam cluster besar, dengan setiap file dalam urutan blok. Setiap blok disimpan dalam file dengan ukuran yang sama, kecuali untuk blok terakhir, yang terisi saat data ditambahkan.
Untuk perlindungan tambahan, file HDFS hanya dapat ditulis satu kali oleh satu penulis saja setiap saat. Untuk membantu memastikan bahwa semua data sedang direplikasi seperti yang diinstruksikan. NameNode menerima detak jantung (laporan status berkala) dan laporan blok (ID blok, stempel generasi, dan panjang setiap replika blok) dari setiap DataNode yang terpasang pada cluster. Menerima detak jantung menunjukkan bahwa DataNode bekerja dengan benar.
NameNode memilih ID rak untuk setiap DataNode dengan menggunakan proses yang disebut Hadoop Rack Awareness untuk membantu mencegah hilangnya data jika seluruh rak gagal. Ini juga memungkinkan penggunaan bandwidth dari beberapa rak saat membaca data.
Pertimbangkan sebuah file yang berisi nomor telepon untuk seluruh negara. Nomor untuk orang dengan nama keluarga yang dimulai dengan A mungkin disimpan di server 1, B di server 2 dan seterusnya. Dengan Hadoop, potongan-potongan direktori telepon ini akan disimpan dalam satu cluster, dan untuk merekonstruksi seluruh buku telepon, sebuah aplikasi akan membutuhkan blok-blok dari setiap server dalam cluster.
Untuk membantu memastikan ketersediaan yang tinggi jika dan ketika sebuah server gagal, HDFS mereplikasi bagian yang lebih kecil ini ke dua server lainnya secara default. (Redundansi ini dapat ditingkatkan atau dikurangi berdasarkan per file atau untuk seluruh lingkungan. Misalnya, cluster pengembangan Hadoop biasanya tidak memerlukan redundansi data apa pun.)
Redundansi ini juga memungkinkan cluster Hadoop untuk memecah pekerjaan menjadi potongan-potongan yang lebih kecil dan menjalankan pekerjaan tersebut di semua server di cluster untuk skalabilitas yang lebih baik. Terakhir, organisasi mendapatkan manfaat dari lokalitas data, yang sangat penting ketika bekerja dengan kumpulan data yang besar.
HDFS juga dapat mengaktifkan kecerdasan buatan (AI) dan machine learning (ML) melalui peningkatan skala yang efektif. Pertama, untuk menyimpan data dalam jumlah yang cukup besar yang diperlukan untuk melatih model ML, lalu mengakses kumpulan data yang sangat besar tersebut.
Setiap organisasi yang menangkap, menyimpan, dan menggunakan kumpulan data besar, hingga petabyte, dapat mempertimbangkan untuk menggunakan HDFS. Beberapa contoh penggunaan berbasis industri menunjukkan bagaimana HDFS dapat diimplementasikan.
Asal mula Hadoop, menurut salah satu pendirinya, Mike Cafarella dan Doug Cutting, adalah sebuah makalah Google File System, yang diterbitkan pada tahun 2003. Makalah kedua menyusul, “MapReduce: Simplified Data Processing on Large Clusters.” Pengembangan mesin pencari awal bernama Apache Nutch dimulai, tetapi kemudian pekerjaannya berpindah dengan Doug Cutting ke Yahoo pada tahun 2006.
Nama Hadoop diambil dari nama gajah mainan milik putra Cutting. (Yang menjelaskan logonya.) Kode awal Hadoop sebagian besar berdasarkan pada Nutch, tetapi mengatasi keterbatasan skalabilitasnya, dan berisi versi awal HDFS dan MapReduce.
Rangkaian program di Ekosistem Hadoop terus berkembang. Selain HDFS, ada juga:HBase (basis data NoSQL), Mahout, Spark MLLib (pustaka algoritma untuk machine learning), MapReduce (pemrosesan data berbasis pemrograman), Oozie (penjadwal pekerjaan), PIG, dan HIVE (layanan pemrosesan data berbasis kueri), Solar and Lucene (untuk pencarian dan pengindeksan), Spark (pemrosesan data, dalam memori), YARN (Yet Another Resource Negotiator), dan Zookeeper (koordinasi cluster).
Perangkat lunak sumber terbuka dalam Ekosistem Hadoop sekarang dikelola oleh Apache Software Foundation1, yaitu komunitas internasional untuk pengembang perangkat lunak dan kontributor perangkat lunak.
watsonx.data sekarang tersedia: penyimpanan data sesuai tujuan yang dibangun di atas arsitektur data lakehouse terbuka untuk menskalakan beban kerja AI, untuk semua data Anda, di mana saja.
IBM® dan Cloudera telah bermitra untuk menawarkan distribusi Hadoop kelas perusahaan yang terdepan di industri ini, termasuk ekosistem produk dan layanan terintegrasi untuk mendukung analitik yang lebih cepat dalam skala besar.
Setidaknya tiga solusi platform data yang berbeda muncul. Pelajari tentang hubungan antara data lakehouse, data fabric, dan data mesh.
Baca pengantar praktis ini untuk arsitektur data generasi berikutnya. Buku ini memperkenalkan peran teknologi cloud dan NoSQL serta membahas kepraktisan keamanan, privasi, dan tata kelola.
Presto memberi organisasi dari semua ukuran cara yang cepat dan efisien untuk menganalisis big data dari berbagai sumber termasuk sistem on premises dan cloud.
1 Apache software foundation (tautan berada di luar ibm.com)