Apa itu Hadoop Distributed File System (HDFS)?

Pelaku bisnis dalam pertemuan brainstorming

Penyusun

Jim Holdsworth

Staff Writer

IBM Think

Apa itu HDFS?

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 klaster 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.

Desain 3D bola yang menggelinding di lintasan

Berita + Insight AI terbaru 


Temukan insight dan berita yang dikurasi oleh para pakar tentang AI, cloud, dan lainnya di Buletin Think mingguan. 

Manfaat HDFS

Toleransi kesalahan dan pemulihan cepat dari kegagalan perangkat keras

Karena satu instans HDFS dapat terdiri atas 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 klaster besar di seluruh node meningkatkan keandalan. Selain itu, HDFS dapat mengambil snapshot penyimpanan untuk menyimpan informasi point-in-time (PIT).

Akses ke data streaming

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.

Akomodasi kumpulan data besar

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 klaster dan membantu mendorong sistem komputasi kinerja tinggi (HPC) . Danau data sering disimpan di HDFS. Gudang data juga telah menggunakan HDFS, tetapi sekarang lebih jarang, karena kompleksitas operasi yang dirasakan.

Efisiensi biaya

Karena data disimpan secara virtual, biaya untuk metadata sistem file dan penyimpanan data ruang nama sistem file dapat dikurangi.

Portabilitas

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.

Kecepatan pemrosesan

HDFS menggunakan arsitektur klaster 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.

Skalabilitas

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.

AI Academy

Apakah manajemen data merupakan rahasia AI generatif?

Jelajahi mengapa data berkualitas tinggi sangat penting untuk keberhasilan penggunaan AI generatif.

Arsitektur HDFS dan cara kerjanya

HDFS memiliki arsitektur direktur/pekerja.

  • klaster HDFS mencakup satu NameNode, yang merupakan server direktur. NameNode melacak status semua file, izin file, dan lokasi setiap blok. Perangkat lunak NameNode mengelola namespace sistem file yang pada gilirannya melacak dan mengontrol akses klien ke file dan melakukan operasi seperti membuka, menutup, dan mengganti nama direktori dan file.

    Namespace sistem file juga membagi file menjadi blok dan memetakan blok ke DataNodes, yang merupakan bagian pekerja dari sistem. Dengan mengonfigurasi hanya dengan satu NameNode per klaster, arsitektur sistem menyederhanakan manajemen data dan penyimpanan metadata HDFS. Selain itu, keamanan yang lebih besar dibangun dengan menjaga data pengguna agar tidak mengalir melalui NameNode.

  • Umumnya, ada satu DataNode per node dalam sebuah cluster yang mengelola penyimpanan data di dalam node tersebut. Perangkat lunak DataNode mengelola pembuatan blok, penghapusan dan replikasi, ditambah permintaan baca dan tulis. Setiap DataNode secara terpisah menyimpan data HDFS dalam sistem file lokal dengan setiap blok sebagai file terpisah. DataNode adalah node pekerja (atau daemon Hadoop, yang menjalankan proses di latar belakang) dan dapat berjalan pada perangkat keras komoditas jika organisasi ingin menghemat.

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 klaster 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 instans HDFS.

Namespace sistem file

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.

Replikasi data

Untuk menyediakan penyimpanan yang andal, HDFS menyimpan file besar di beberapa lokasi dalam klaster 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 klaster. 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.

Contoh HDFS dan contoh penggunaan

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 klaster Hadoop untuk memecah pekerjaan menjadi potongan-potongan yang lebih kecil dan menjalankan pekerjaan tersebut di semua server di klaster 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.

  • Energi: Ketika menggunakan unit pengukuran phasor (PMU) untuk memantau kinerja smart grid di jaringan transmisi mereka, perusahaan listrik dapat mengumpulkan data dalam jumlah yang sangat besar, dengan ribuan catatan per detik. HDFS mungkin merupakan sistem file yang hemat biaya dan tersedia luas yang dapat mereka andalkan.

  • Kesehatan: Volume rekam medis terus bertambah setiap harinya. Peralatan medis dan data sensor pasien dapat dikumpulkan dan disimpan secara efisien untuk perawatan dan penelitian yang lebih responsif.

  • Pemasaran: Data dari sistem manajemen hubungan pelanggan (CRM), sistem titik penjualan (PoS), respons kampanye, dan media sosial, yang sebagian besar tidak terstruktur, perlu dikumpulkan untuk analisis dan memandu upaya pemasaran di masa mendatang. Klaster HDFS mungkin memberikan solusi hemat anggaran untuk menyimpan dan menganalisis sejumlah besar data yang dihasilkan.

  • Minyak dan gas: Klaster HDFS dapat membantu menyatukan semua data yang masuk dalam berbagai format agar tersedia untuk analisis big data. Hal ini dapat mencakup segala sesuatu mulai dari model bumi 3D hingga video, pembelian pelanggan atau data sensor peralatan.

  • Retail: Untuk lebih memahami pelanggan mereka, retailer dapat mengumpulkan dan menganalisis data dari berbagai sumber. Ini termasuk catatan penjualan, interaksi layanan pelanggan, dan media sosial, baik data yang tidak terstruktur maupun yang terstruktur—untuk mengembangkan strategi keterlibatan baru.

  • Telekomunikasi:  HDFS dapat membantu bisnis telekomunikasi membangun jalur jaringan yang kuat, melakukan pemeliharaan prediktif, mengindikasikan opsi perluasan jaringan yang menjanjikan, dan menganalisis perilaku pelanggan.

Sejarah HDFS

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 pula: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 dan Lucene (untuk pencarian dan pengindeksan), Spark (pemrosesan data, dalam memori), YARN (Yet Another Resource Negotiator), dan Zookeeper (koordinasi kluster).

Perangkat lunak sumber terbuka dalam Ekosistem Hadoop sekarang dikelola oleh Apache Software Foundation1, yaitu komunitas internasional untuk pengembang perangkat lunak dan kontributor perangkat lunak.

Solusi terkait
Perangkat lunak dan solusi manajemen data

Rancang strategi data yang menghilangkan silo data, mengurangi kompleksitas, dan meningkatkan kualitas data untuk pengalaman pelanggan dan karyawan yang luar biasa.

Jelajahi solusi manajemen data
IBM watsonx.data™

watsonx.data memungkinkan Anda untuk menskalakan analitik dan AI dengan semua data Anda, di mana pun data berada, melalui penyimpanan data yang terbuka, hybrid, dan diatur.

Temukan watsonx.data
Layanan konsultasi data dan analitik

Dapatkan nilai data perusahaan dengan IBM Consulting, untuk membangun organisasi berbasis insight yang memberikan keuntungan bisnis.

Temukan layanan analitik
Ambil langkah selanjutnya

Rancang strategi data yang menghilangkan silo data, mengurangi kompleksitas, dan meningkatkan kualitas data untuk pengalaman pelanggan dan karyawan yang luar biasa.

Jelajahi solusi manajemen data Temukan watsonx.data