HBase
 sql >> Teknologi Basis Data >  >> NoSQL >> HBase

Tutorial HDFS – Pengenalan Lengkap tentang HDFS untuk Pemula

Ingin tahu bagaimana Hadoop menyimpan data dalam jumlah besar dengan cara yang andal dan toleran terhadap kesalahan?

Dalam tutorial HDFS ini, kita akan membahas salah satu komponen inti Hadoop, yaitu Hadoop Distributed File System (HDFS).

Pertama, kita akan melihat pengantar Sistem File Terdistribusi. Kemudian kita akan mempelajari Hadoop Distributed FileSystem. Artikel tersebut menjelaskan alasan penggunaan HDFS, arsitektur HDFS, dan pemblokiran di HDFS.

Artikel ini juga mencantumkan beberapa fitur Hadoop HDFS. Selain itu, Anda akan mengetahui tentang pesan detak jantung di Hadoop HDFS.

Tutorial HDFS ini memberikan panduan pengantar lengkap untuk penyimpanan paling andal Hadoop HDFS.

Mari kita mulai dengan pengenalan Sistem File Terdistribusi.

Sistem File Terdistribusi

Ketika dataset melebihi kapasitas penyimpanan satu mesin, maka menjadi wajib untuk mempartisi dataset di beberapa mesin yang terpisah. Sistem file yang mengelola data di seluruh jaringan mesin disebut sistem file terdistribusi .

Sistem file terdistribusi adalah sistem file yang memungkinkan kita untuk menyimpan data di beberapa mesin atau node dalam sebuah cluster dan memungkinkan banyak pengguna untuk mengakses data.

Karena DFS didasarkan pada jaringan, semua komplikasi pemrograman jaringan muncul, membuat sistem file terdistribusi lebih kompleks daripada sistem file biasa. Salah satu tantangan terbesar dalam DFS adalah menoleransi kegagalan node tanpa kehilangan data.

Hadoop hadir dengan sistem file terdistribusi yang disebut Hadoop Distributed Filesystem untuk menyimpan data dalam jumlah besar sambil memberikan toleransi kesalahan dan ketersediaan tinggi.

Penasaran ingin tahu HDFS? Jadi sekarang, mari kita mulai dengan tutorial HDFS.

Tutorial HDFS – Pendahuluan

Hadoop Distributed FileSystem (HDFS) adalah sistem file terdistribusi berbasis java yang digunakan di Hadoop untuk menyimpan sejumlah besar data terstruktur atau tidak terstruktur, mulai dari ukuran GigaBytes hingga PetaBytes, melintasi sekelompok perangkat keras komoditas. Ini adalah penyimpanan paling andal yang diketahui hingga saat ini di planet ini.

Dalam HDFS, data disimpan di beberapa lokasi, jadi jika salah satu mesin gagal, maka data dapat diambil dari mesin lain yang berisi salinan data. Oleh karena itu, perangkat ini sangat toleran terhadap kesalahan dan memastikan tidak ada kehilangan data bahkan jika terjadi kegagalan perangkat keras.

Ini adalah komponen utama Hadoop, bersama dengan MapReduce, YARN, dan utilitas umum lainnya.

Ini mengikuti Tulis-Sekali-Baca-Banyak filosofi yang menyederhanakan koherensi data dan memungkinkan akses throughput tinggi.

Mengapa HDFS?

Di dunia TI saat ini, hampir 75% data dunia berada di Hadoop HDFS. Hal ini karena alasan berikut:

  • HDFS menyimpan data di seluruh perangkat keras komoditas sehingga tidak diperlukan mesin kelas atas untuk menyimpan data besar. Dengan demikian menyediakan penyimpanan yang ekonomis untuk menyimpan data besar.
  • HDFS mengikuti pola pemrosesan data yang paling efisien yaitu pola Tulis-Sekali-Baca-Banyak-Kali. Kumpulan data yang dihasilkan dari berbagai sumber disalin, dan kemudian berbagai analisis dilakukan pada kumpulan data tersebut dari waktu ke waktu. Jadi, ini yang terbaik untuk pemrosesan batch.
  • HDFS dapat menyimpan data dengan ukuran berapa pun yang dihasilkan dari sumber apa pun dalam format apa pun, baik terstruktur maupun tidak.
  • Model tulis-satu-baca-banyaknya melonggarkan persyaratan kontrol konkurensi. Data dapat diakses beberapa kali tanpa masalah terkait koherensi data.
  • HDFS bekerja dengan asumsi lokalitas data bahwa pemindahan komputasi ke data jauh lebih mudah dan cepat daripada pemindahan data ke unit komputasi. HDFS memfasilitasi penempatan logika pemrosesan di dekat data daripada memindahkan data ke ruang aplikasi. Dengan demikian, ini mengurangi kemacetan jaringan dan waktu penyelesaian secara keseluruhan.

Jadi, untuk melanjutkan tutorial HDFS ini, mari kita beralih ke Arsitektur HDFS.

Arsitektur HDFS

Hadoop DFS mengikuti master-slave Arsitektur. HDFS terdiri dari dua jenis node yaitu node master dan node slave. Node master mengelola namespace sistem file, yaitu, menyimpan metadata tentang blok file.

Node slave menyimpan data pengguna dan bertanggung jawab untuk memproses data berdasarkan instruksi dari node master.

HDFS Master

Master di HDFS adalah inti dari Hadoop HDFS. Mereka adalah mesin kelas atas yang menyimpan metadata yang terkait dengan semua file yang disimpan dalam HDFS. Ini mengelola dan memelihara namespace sistem file dan memberikan instruksi ke node slave.

NameNode adalah node master di Hadoop HDFS.

Budak HDFS

Slave Nodes bertanggung jawab untuk menyimpan data bisnis yang sebenarnya. Mereka adalah mesin konfigurasi normal (perangkat keras komoditas) yang menyimpan dan memproses kumpulan data berdasarkan instruksi dari node master.

DataNode adalah node budak di Hadoop HDFS.

Node Nama HDFS

NameNode adalah simpul master. Ini mengelola operasi ruang nama sistem file seperti membuka/menutup, mengganti nama file, dan direktori. NameNode memetakan blok data ke DataNodes dan mencatat setiap perubahan yang dibuat pada namespace sistem file.

HDFS DataNode

DataNodes adalah node budak yang menangani permintaan baca/tulis dari klien HDFS. DataNodes membuat, menghapus, dan mereplikasi blok data sesuai instruksi dari node nama yang mengatur.

Ingin tahu bagaimana data disimpan dalam HDFS?

Blok di HDFS

HDFS membagi file menjadi potongan ukuran blok yang disebut blok data. Blok ini disimpan di beberapa DataNodes di cluster. Ukuran blok default adalah 128 MB. Kita dapat mengkonfigurasi ukuran blok default, tergantung pada konfigurasi cluster.

Untuk cluster dengan mesin kelas atas, ukuran blok dapat dijaga tetap besar (seperti 256 Mb atau lebih). Untuk cluster dengan mesin yang memiliki konfigurasi seperti RAM 8 Gb, ukuran blok dapat dibuat lebih kecil (seperti 64 Mb).

Selain itu, HDFS membuat replika blok berdasarkan faktor replikasi ( angka yang menentukan total salinan blok file). Secara default, faktor replikasi adalah 3. Ini berarti bahwa 3 salinan dari setiap blok dibuat dan disimpan di beberapa node.

Jika salah satu DataNode gagal, maka blok diambil dari DataNode lain yang berisi replika blok. Ini membuat toleransi kesalahan HDFS.

Pernahkah Anda berpikir bagaimana NameNode menemukan kegagalan DataNode?

Kegagalan Node Data

Semua DataNodes di Hadoop HDFS terus menerus mengirimkan pesan detak jantung kecil (sinyal) ke NameNode untuk memberi tahu “Saya Hidup” dalam setiap 3 detik.

Jika NameNode tidak mendapatkan pesan detak jantung dari DataNode tertentu selama lebih dari 10 menit, maka DataNode akan dianggap mati dan mulai membuat replika blok yang tersedia di DataNode tersebut.

NameNode menginstruksikan DataNodes yang berisi salinan data tersebut untuk mereplikasi data tersebut pada DataNodes lain untuk menyeimbangkan replikasi. Dengan cara ini, NameNode menemukan kegagalan DataNode.

Ingin tahu bagaimana NameNode menempatkan replika pada DataNode yang berbeda? Mari kita jelajahi kesadaran rak di HDFS untuk mendapatkan jawaban atas pertanyaan di atas.

Kesadaran Rak dalam HDFS

Hadoop HDFS menyimpan data di seluruh klaster perangkat keras komoditas. Untuk memberikan toleransi kesalahan, replika blok dibuat dan disimpan di DataNodes yang berbeda.

NameNode menempatkan replika blok pada beberapa DataNode dengan mengikuti algoritma Rack Awareness untuk memastikan tidak ada kehilangan data bahkan jika DataNode atau seluruh rak mati. NameNode menempatkan replika pertama pada DataNode terdekat.

Ini menyimpan replika kedua di DataNode berbeda di rak yang sama dan replika ketiga di DataNode berbeda di rak berbeda.

Jika faktor replikasi adalah 2, maka ia menempatkan replika kedua pada DataNode yang berbeda di rak yang berbeda sehingga jika rak yang lengkap turun, maka sistem juga akan sangat tersedia.

Tujuan utama dari kebijakan penempatan replika yang sadar rak adalah untuk meningkatkan toleransi kesalahan, keandalan data, ketersediaan.

Selanjutnya dalam tutorial HDFS, kita membahas beberapa fitur utama Hadoop HDFS.

Fitur Penting Hadoop HDFS

1. Ketersediaan Tinggi

Ini adalah sistem file yang sangat tersedia. Dalam sistem file ini, data direplikasi di antara node di cluster Hadoop dengan membuat replika blok pada slave lain yang ada di cluster HDFS. Jadi, kapan pun pengguna ingin mengakses data ini, mereka dapat mengakses datanya dari slave, yang berisi blok-bloknya.

2. Toleransi Kesalahan

Toleransi kesalahan di Hadoop HDFS adalah kekuatan kerja suatu sistem dalam kondisi yang tidak menguntungkan. Ini sangat toleran terhadap kesalahan. Kerangka kerja Hadoop membagi data menjadi blok-blok.

Setelah itu, ia membuat banyak salinan blok pada mesin yang berbeda di cluster. Jadi, ketika ada mesin di cluster yang down, maka klien dapat dengan mudah mengakses data mereka dari mesin lain, yang berisi salinan blok data yang sama.

3. Keandalan Tinggi

HDFS menyediakan penyimpanan data yang andal. Itu dapat menyimpan data dalam kisaran 100-an petabyte. HDFS menyimpan data dengan andal di sebuah cluster. Ini membagi data menjadi blok. Kemudian, kerangka Hadoop menyimpan blok-blok ini pada node yang ada di cluster.

HDFS juga menyimpan data dengan andal dengan membuat replika dari setiap blok yang ada di cluster. Oleh karena itu menyediakan fasilitas toleransi kesalahan.

4. Replikasi

Replikasi Data adalah fitur unik dari HDFS. Replikasi memecahkan masalah kehilangan data dalam kondisi yang tidak menguntungkan seperti kegagalan perangkat keras, kerusakan node, dll. HDFS mempertahankan proses replikasi pada interval waktu yang teratur.

Itu juga terus membuat replika data pengguna pada mesin berbeda yang ada di cluster. Jadi, ketika ada node yang down, pengguna dapat mengakses data dari mesin lain. Dengan demikian, tidak ada kemungkinan kehilangan data pengguna.

5. Skalabilitas

Ini menyimpan data pada beberapa node dalam cluster. Jadi, setiap kali persyaratan meningkat, Anda dapat menskalakan klaster. Dua mekanisme skalabilitas tersedia di HDFS:Skalabilitas Vertikal dan Horizontal.

6. Penyimpanan Terdistribusi

Fitur HDFS dicapai melalui penyimpanan dan replikasi terdistribusi. Ini menyimpan data secara terdistribusi di seluruh node. Di Hadoop, data dibagi menjadi beberapa blok dan disimpan di node yang ada di cluster.

Setelah itu, ia membuat replika dari setiap blok dan menyimpannya di node lain. Ketika satu mesin di cluster mengalami crash, kita dapat dengan mudah mengakses data kita dari node lain yang berisi replikanya.

Selanjutnya dalam tutorial HDFS, kita membahas beberapa operasi HDFS yang berguna.

Operasi HDFS

Hadoop HDFS memiliki banyak kesamaan dengan sistem file Linux. Kita dapat melakukan hampir semua operasi yang dapat kita lakukan dengan sistem file lokal seperti membuat direktori, menyalin file, mengubah izin, dll.

Ini juga memberikan hak akses yang berbeda seperti membaca, menulis, dan mengeksekusi kepada pengguna, grup, dan lainnya.

1. Operasi Baca

Ketika klien HDFS ingin membaca file apa pun dari HDFS, klien pertama-tama berinteraksi dengan NameNode. NameNode adalah satu-satunya tempat yang menyimpan metadata. NameNode menentukan alamat budak tempat data disimpan. Kemudian, klien berinteraksi dengan DataNodes yang ditentukan dan membaca data dari sana.

Klien HDFS berinteraksi dengan API sistem file terdistribusi. Kemudian, ia mengirimkan permintaan ke NameNode untuk mengirim lokasi blok. NameNode pertama-tama memeriksa apakah klien memiliki hak yang cukup untuk mengakses data atau tidak? Setelah itu, NameNode akan membagikan alamat tempat data disimpan di DataNode.

NameNode menyediakan token ke klien, yang ditunjukkan ke DataNode untuk membaca file untuk tujuan keamanan. Saat klien membuka DataNode untuk membaca file, setelah memeriksa token, DataNode mengizinkan klien untuk membaca blok tertentu.

Setelah itu klien membuka aliran input dan mulai membaca data dari DataNodes yang ditentukan. Jadi, dengan cara ini, klien membaca data langsung dari DataNode.

2. Operasi Penulisan

Untuk menulis file, klien pertama kali berinteraksi dengan NameNode. HDFS NameNode menyediakan alamat DataNode tempat data harus ditulis oleh klien.

Ketika klien selesai menulis blok, DataNode mulai mereplikasi blok ke DataNode lain. Kemudian menyalin blok ke DataNode ketiga. Setelah membuat replikasi yang diperlukan, ia mengirimkan pengakuan terakhir ke klien. Otentikasinya sama dengan operasi baca.

Klien hanya mengirim 1 salinan data terlepas dari faktor replikasi kami, sementara DataNodes mereplikasi blok. Menulis file tidak mahal karena menulis beberapa blok secara paralel beberapa blok pada beberapa DataNodes.

Ringkasan

Dalam kesimpulan tutorial HDFS, kita dapat mengatakan bahwa Hadoop HDFS menyimpan data secara terdistribusi di seluruh cluster perangkat keras komoditas.

Hadoop HDFS adalah sistem penyimpanan yang sangat andal, toleran terhadap kesalahan, dan sangat tersedia hingga saat ini. Ini mengikuti arsitektur master-slave di mana NameNode adalah node master, dan DataNodes adalah node slave.

Selain itu, HDFS membagi file input klien menjadi blok berukuran 128 MB, yang dapat kami konfigurasikan sesuai kebutuhan kami. Ini juga menyimpan replika blok untuk memberikan toleransi kesalahan.

NameNode mengikuti kebijakan kesadaran rak untuk menempatkan replika di DataNode untuk memastikan bahwa tidak ada data yang hilang selama kegagalan mesin atau kegagalan perangkat keras. Selain itu, DataNodes mengirimkan pesan detak jantung ke NameNode untuk memastikan bahwa mereka hidup.

Selama membaca atau menulis file, klien pertama kali berinteraksi dengan NameNode.

Hadoop HDFS adalah sistem penyimpanan yang skalabel, andal, terdistribusi, toleran terhadap kesalahan, dan sangat tersedia untuk menyimpan data besar.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hadoop Partitioner – Pelajari Dasar-dasar MapReduce Partitioner

  2. 6 Fitur Teratas HDFS – Tutorial Hadoop HDFS

  3. Menggunakan COD dan CML untuk membangun aplikasi yang memprediksi data stok

  4. Blok Data HDFS – Pelajari Internal Hadoop Data Besar

  5. Di dalam Dukungan Baru Apache HBase untuk MOB