Belajar Hadoop: Perintah HDFS Untuk Mengelola File

belajar-hadoop-hdfs-untuk-mengelola-file

Perintah Hadoop HDFS digunakan untuk melakukan berbagai operasi dan mengelola file yang berada dalam HDFS  pada klaster Hadoop. Pada artikel sebelumnya kita telah Mengenal Perintah HDFS yang berkaitan dengan operasi file dalam HDFS. Kali ini kita akan membahas mengenai perintah HDFS yang sering digunakan dalam mengelola file yang berada dalam HDFS.

 

Merubah Kepemilikan File atau Direktori: chown

Perintah HDFS yang digunakan untuk merubah kepemilikan atau ownership file adalah menggunakan chown. Bentuk perintahnya adalah

hdfs dfs -chown [-R] <user>:<group> <path>

Opsi -R secara rekursif mengubah semua kepemilikan file yang berada dalam struktur direktori.

 

Misalkan kita ingin mengubah kepemilikan file data-20230524-1.dat

[yava@kmo01 ~]$ hdfs dfs -ls /dataset
Found 4 items
-rw-r--r--   3 yava hdfs   4.1 M 2024-03-20 16:31 /dataset/data-20230524-1.dat
-rw-r--r--   3 yava hdfs   1.3 M 2024-03-20 16:31 /dataset/data-20230524-2.dat
-rw-r--r--   3 yava hdfs   3.7 M 2024-03-20 16:31 /dataset/data-20230524-3.dat
-rw-r--r--   3 yava hdfs   3.4 M 2024-03-20 16:31 /dataset/data-20230524-4.dat

 

Dengan menggunakan perintah chown, kita akan mengubah kepemilikannya yang semula yava menjadi hdfs.

[yava@kmo01 ~]$ hdfs dfs -chown hdfs /dataset/data-20230524-1.dat
[yava@kmo01 ~]$ hdfs dfs -ls -h /dataset
Found 4 items
-rw-r--r--   3 hdfs hdfs  4.1 M 2024-03-20 16:31 /dataset/data-20230524-1.dat
-rw-r--r--   3 yava hdfs  1.3 M 2024-03-20 16:31 /dataset/data-20230524-2.dat
-rw-r--r--   3 yava hdfs  3.7 M 2024-03-20 16:31 /dataset/data-20230524-3.dat
-rw-r--r--   3 yava hdfs  3.4 M 2024-03-20 16:31 /dataset/data-20230524-4.dat

 

Merubah Group File atau Direktori: chgrp

Perintah hdfs dfs -chgrp digunakan untuk mengubah grup file atau direktori di Hadoop Distributed File System (HDFS).  Bentuk perintahnya adalah

hdfs dfs -chgrp [-R] <group> <path>

Opsi -R secara rekursif mengubah semua group file yang berada dalam struktur direktori.

 

Contoh dibawah ini, kita ingin mengubah group dari file data-20230524-1.dat

[yava@kmo01 ~]$  hdfs dfs -ls -h /dataset
Found 4 items
-rw-r--r--   3 hdfs hdfs  4.1 M 2024-03-20 16:31 /dataset/data-20230524-1.dat
-rw-r--r--   3 yava hdfs  1.3 M 2024-03-20 16:31 /dataset/data-20230524-2.dat
-rw-r--r--   3 yava hdfs  3.7 M 2024-03-20 16:31 /dataset/data-20230524-3.dat
-rw-r--r--   3 yava hdfs  3.4 M 2024-03-20 16:31 /dataset/data-20230524-4.dat

 

Kita akan mengubah group yang semula hdfs menjadi yava

[yava@kmo01 ~]$ hdfs dfs -chgrp yava /dataset/data-20230524-1.dat
[yava@kmo01 ~]$ hdfs dfs -ls -h /dataset
Found 4 items
-rw-r--r--   3 hdfs yava  4.1 M 2024-03-20 16:31 /dataset/data-20230524-1.dat
-rw-r--r--   3 yava hdfs  1.3 M 2024-03-20 16:31 /dataset/data-20230524-2.dat
-rw-r--r--   3 yava hdfs  3.7 M 2024-03-20 16:31 /dataset/data-20230524-3.dat
-rw-r--r--   3 yava hdfs  3.4 M 2024-03-20 16:31 /dataset/data-20230524-4.dat

 

Mengubah Izin (Permissions) File atau Direktori: chmod

Perintah hdfs dfs -chmod digunakan untuk mengubah izin (permissions) file atau direktori di Hadoop Distributed File System (HDFS). Perintah ini memungkinkan kita untuk mengubah izin baca, tulis, dan eksekusi untuk pemilik, group, dan orang lain (others) untuk file atau direktori.

hdfs dfs -chmod [opsi] <permission> <path>

Opsi -R untuk mengubah izin secara rekursif untuk semua file dan subdirektori di dalam direktori yang ditentukan.

 

Misalkan kita ingin mengubah izin untuk file data-20230524-1.dat

[yava@kmo01 ~]$ hdfs dfs -ls -h /dataset
Found 4 items
-rw-r--r--   3 hdfs yava  4.1 M 2024-03-20 16:31 /dataset/data-20230524-1.dat
-rw-r--r--   3 yava hdfs  1.3 M 2024-03-20 16:31 /dataset/data-20230524-2.dat
-rw-r--r--   3 yava hdfs  3.7 M 2024-03-20 16:31 /dataset/data-20230524-3.dat
-rw-r--r--   3 yava hdfs  3.4 M 2024-03-20 16:31 /dataset/data-20230524-4.dat

 

Terlihat bahwa saat ini file data-20230524-1.dat dapat dibaca oleh pemilik, group dan orang lain. Kita ingin mengubah sehingga tidak dapat dibaca oleh orang lain, maka dapat menggunakan permission 640.

[yava@kmo01 ~]$ hdfs dfs -chmod 640 /dataset/data-20230524-1.dat
[yava@kmo01 ~]$ hdfs dfs -ls -h /dataset
Found 4 items
-rw-r-----   3 hdfs yava  4.1 M 2024-03-20 16:31 /dataset/data-20230524-1.dat
-rw-r--r--   3 yava hdfs  1.3 M 2024-03-20 16:31 /dataset/data-20230524-2.dat
-rw-r--r--   3 yava hdfs  3.7 M 2024-03-20 16:31 /dataset/data-20230524-3.dat
-rw-r--r--   3 yava hdfs  3.4 M 2024-03-20 16:31 /dataset/data-20230524-4.dat

Bilangan permission mengacu pada umask yang berlaku pada linux file system.

 

Menampilkan Penggunaan Disk: du

Perintah hdfs dfs -du (disk usage) digunakan untuk menampilkan informasi penggunaan disk untuk file atau direktori di Hadoop Distributed File System (HDFS). Bentuk perintahnya adalah

hdfs dfs –du [–s] [-h] <path>

Opsi:

  • -s : Menampilkan summary penggunaan disk untuk file atau direktori.
  • -h : Menampilkan ukuran file dalam format yang mudah dibaca manusia (misalnya, 100GB, 1TB).

 

Contoh penggunaannya sebagai berikut:

[yava@kmo01 ~]$ hdfs dfs -du -s -h /dataset
12.5 M  37.6 M  /dataset

[yava@kom01 ~]$ hdfs dfs -du -s -h /dataset/data-20230524-1.dat
4.1 M  12.4 M  /dataset/data-20230524-1.dat

 

Menampilkan Free Space Pada Disk: df

Perintah hdfs dfs -df (disk free) digunakan untuk menampilkan informasi disk space yang tersedia di Hadoop Distributed File System (HDFS). Bentuk perintahnya adalah:

hdfs dfs -df [-h] <path>

Opsi -h untuk menampilkan ukuran file dalam format yang mudah dibaca manusia (misalnya, 100GB, 1TB).

Contoh penggunaannya sebagai berikut:

[yava@kmo01 ~]$ hdfs dfs -df -h /dataset
Filesystem                         Size   Used  Available  Use%
hdfs://dev01.solusi247.com:8020  33.6 G  2.5 G     14.2 G    7%

 

Menghitung Jumlah File dan Direktori: count

Perintah hdfs dfs -count digunakan untuk menghitung jumlah file, direktori, dan byte di bawah path yang ditentukan dalam Hadoop Distributed File System (HDFS)

hdfs dfs -count [opsi] <path>

Opsi yang sering digunakan:

  • -q : Menampilkan informasi tentang kuota (quota) dan penggunaan kuota (quota usage) untuk path yang ditentukan.
  • -h : Menampilkan ukuran file dalam format yang mudah dibaca manusia (misalnya, 100GB, 1TB).
  • -v : menampilkan header

 

Menampilkan jumlah file dan direktori di dalam direktori /dataset

[yava@dev01 ~]$ hdfs dfs -count -v -h /dataset
   DIR_COUNT   FILE_COUNT       CONTENT_SIZE PATHNAME
           1            4             12.5 M /dataset

 

Menampilkan quota, jumlah file dan direktori di dalam direktori /dataset

[yava@dev01 ~]$ hdfs dfs -count -v -q -h /dataset
       QUOTA       REM_QUOTA     SPACE_QUOTA REM_SPACE_QUOTA    DIR_COUNT   FILE_COUNT       CONTENT_SIZE PATHNAME
        none             inf            none             inf            1            4             12.5 M /dataset

 

Menampilkan quota direktori /dataset

[yava@dev01 ~]$ hdfs dfs -count -u -v /dataset
       QUOTA       REM_QUOTA     SPACE_QUOTA REM_SPACE_QUOTA PATHNAME
        none             inf            none             inf /dataset

 

Memeriksa dan Memperbaiki Inconsistencies File

Perintah hdfs dfsck (filesystem check) digunakan untuk memeriksa dan memperbaiki inconsistencies (ketidakkonsistenan) pada HDFS (Hadoop Distributed File System).  Bentuk perintahnya adalah:

hdfs -fsck [opsi] <path>

Opsi yang penting:

  • -list-corruptfileblocks: Menampilkan daftar blok yang rusak (corrupted blocks) pada HDFS.
  • -fix-corruptfileblocks: Memperbaiki blok yang rusak (corrupted blocks) dengan mereplikasi data dari blok lain.
  • -blocks: Menampilkan informasi detail tentang semua blok di HDFS.
  • -lost: Menampilkan daftar blok yang hilang (lost blocks) di HDFS.
  • -repair: Mencoba memperbaiki blok yang hilang (lost blocks) dengan mereplikasi data dari blok lain.

 

Contoh penggunaanya untuk memeriksa kesehatan dari direktori /dataset :

[yava@dev01 ~]$ hdfs fsck /dataset
Connecting to namenode via http://dev01.solusi247.com:50070/fsck?ugi=yava&path=%2Fdataset
FSCK started by yava (auth:SIMPLE) from /192.168.56.109 for path /dataset at Wed Mar 20 18:07:27 EDT 2024


/dataset/data-20230524-1.dat:  Under replicated BP-1973509025-192.168.56.109-1585210479149:blk_1073746915_6182. Target Replicas is 3 but found 1 live replica(s), 0 decommissioned replica(s), 0 decommissioning replica(s).


/dataset/data-20230524-2.dat:  Under replicated BP-1973509025-192.168.56.109-1585210479149:blk_1073746916_6183. Target Replicas is 3 but found 1 live replica(s), 0 decommissioned replica(s), 0 decommissioning replica(s).


/dataset/data-20230524-3.dat:  Under replicated BP-1973509025-192.168.56.109-1585210479149:blk_1073746917_6184. Target Replicas is 3 but found 1 live replica(s), 0 decommissioned replica(s), 0 decommissioning replica(s).


/dataset/data-20230524-4.dat:  Under replicated BP-1973509025-192.168.56.109-1585210479149:blk_1073746918_6185. Target Replicas is 3 but found 1 live replica(s), 0 decommissioned replica(s), 0 decommissioning replica(s).


Status: HEALTHY
 Number of data-nodes:  1
 Number of racks:               1
 Total dirs:                    1
 Total symlinks:                0


Replicated Blocks:
 Total size:    13159127 B
 Total files:   4
 Total blocks (validated):      4 (avg. block size 3289781 B)
 Minimally replicated blocks:   4 (100.0 %)
 Over-replicated blocks:        0 (0.0 %)
 Under-replicated blocks:       4 (100.0 %)
 Mis-replicated blocks:         0 (0.0 %)
 Default replication factor:    3
 Average block replication:     1.0
 Missing blocks:                0
 Corrupt blocks:                0
 Missing replicas:              8 (66.666664 %)


Erasure Coded Block Groups:
 Total size:    0 B
 Total files:   0
 Total block groups (validated):        0
 Minimally erasure-coded block groups:  0
 Over-erasure-coded block groups:       0
 Under-erasure-coded block groups:      0
 Unsatisfactory placement block groups: 0
 Average block group size:      0.0
 Missing block groups:          0
 Corrupt block groups:          0
 Missing internal blocks:       0
FSCK ended at Wed Mar 20 18:07:27 EDT 2024 in 72 milliseconds




The filesystem under path '/dataset' is HEALTHY

 

Wrapping Up

HDFS menyediakan berbagai perintah untuk mengelola file secara efektif. Dengan mempelajari dan menggunakan perintah-perintah ini, kita dapat mengoptimalkan penggunaan HDFS dan meningkatkan kontrol atas data yang kita miliki.