Dalam kluster E-MapReduce (EMR), Anda dapat menjalankan perintah hadoop fs untuk melakukan operasi pada file di Hadoop Distributed File System (HDFS). Topik ini menjelaskan perintah-perintah umum HDFS.
Prasyarat
Sebelum menjalankan perintah apa pun, pastikan kondisi berikut terpenuhi:
Akses kluster: Anda telah masuk ke node dalam kluster, biasanya node master, menggunakan metode seperti Secure Shell (SSH).
Izin pengguna: Akun yang Anda gunakan, seperti pengguna default
hadoop, harus memiliki izin baca dan tulis untuk jalur HDFS tujuan. Untuk kluster dengan otentikasi Kerberos yang diaktifkan, Anda harus terlebih dahulu melakukan otentikasi identitas.
Versi perintah
Hadoop menyediakan dua format perintah setara untuk operasi sistem file:
hdfs dfs <args>: Perintah ini khusus untuk HDFS.hadoop fs <args>: Ini adalah perintah sistem file generik yang dapat beroperasi pada berbagai sistem file yang kompatibel dengan Hadoop, seperti HDFS dan sistem file lokal (file:///).
Semua contoh dalam topik ini menggunakan hadoop fs.
Cheat sheet perintah
Tabel berikut memberikan referensi cepat untuk perintah HDFS yang paling umum.
Perintah | Deskripsi | Sintaks umum |
Membuat direktori baru di HDFS. |
| |
Membuat file kosong berukuran 0 byte di HDFS. |
| |
Menampilkan daftar file dan direktori di jalur tertentu beserta informasi dasarnya. |
| |
Menyalin satu atau beberapa file dari sistem file lokal (pada node EMR tempat perintah dijalankan) ke HDFS. |
| |
Menyalin file atau direktori dari HDFS ke sistem file lokal (pada node EMR tempat perintah dijalankan). |
| |
Menyalin file atau direktori di dalam HDFS. |
| |
Memindahkan atau mengganti nama file atau direktori di dalam HDFS. |
| |
Menghapus file atau direktori di HDFS. |
| |
Menampilkan isi file di HDFS. |
| |
Menampilkan ukuran file atau total ukuran semua file dalam direktori. |
|
Untuk informasi lebih lanjut tentang perintah HDFS, lihat situs web resmi Apache Hadoop.
Manajemen direktori dan file
mkdir: Membuat direktori
Membuat direktori baru di HDFS.
Sintaks
hadoop fs -mkdir [-p] <paths>Deskripsi parameter
-p: Membuat semua direktori induk dalam jalur jika belum ada. Ini mirip dengan perintahmkdir -pdi Linux. Parameter ini umum digunakan di lingkungan produksi untuk mencegah kesalahan yang terjadi jika direktori induk tidak ada.
Contoh: Buat direktori /dir di sistem file HDFS.
hadoop fs -mkdir /dir
touchz: Membuat file kosong
Membuat file kosong berukuran 0 byte di HDFS.
Sintaks
hadoop fs -touchz URI [URI ...]Skenario
Berfungsi sebagai file penanda yang menunjukkan tugas telah selesai.
Membuat file output kosong sebelum pemrosesan data.
Contoh: Buat file emptyfile.txt di direktori /dir/ sistem file HDFS.
hadoop fs -touchz /dir/emptyfile.txt
ls: Menampilkan daftar file dan direktori
Menampilkan daftar file dan direktori di jalur tertentu beserta informasi dasarnya.
Sintaks
hadoop fs -ls [-h] [-R] [-t] <args>Deskripsi parameter
-h: Menampilkan ukuran file dalam format yang mudah dibaca manusia, seperti 1K, 234M, atau 2G.-R: Menampilkan secara rekursif isi semua subdirektori.-t: Mengurutkan berdasarkan waktu modifikasi, dengan file atau direktori terbaru ditampilkan pertama.
Contoh: Lihat direktori
diryang telah dibuat.hadoop fs -ls /dir
Transfer file
put: Mengunggah file ke HDFS
Menyalin satu atau beberapa file dari sistem file lokal (pada node EMR tempat perintah dijalankan) ke HDFS.
Sintaks
hadoop fs -put [-f] [-p] <localsrc> <dst>Deskripsi parameter
-f: Memaksa menimpa file yang sudah ada di jalur tujuan.-p: Mempertahankan waktu akses dan modifikasi file, kepemilikan, serta izin.
Contoh: Unggah file lokal hello.txt ke jalur /dir/sub-dir di HDFS.
hadoop fs -put hello.txt /dir/sub-dir
get: Mengunduh file dari HDFS
Menyalin file atau direktori dari HDFS ke sistem file lokal (pada node EMR tempat perintah dijalankan).
Sintaks
hadoop fs -get [-f] [-p] <src> <localdst>Deskripsi parameter
-f: Memaksa menimpa file yang sudah ada di jalur tujuan.-p: Mempertahankan waktu akses dan modifikasi file, kepemilikan, serta izin.
Contoh: Salin file HDFS /dir/emptyfile.txt ke jalur lokal /.
hadoop fs -get /dir/emptyfile.txt /
Operasi file
cp: Menyalin file atau direktori
Menyalin file atau direktori di dalam HDFS.
Sintaks
hadoop fs -cp [-f] URI [URI ...] <dest>Deskripsi parameter
-f: Memaksa menimpa file yang sudah ada di jalur tujuan.
Contoh: Salin file hello_world.txt dari direktori /dir/sub-dir/ ke direktori /tmp.
hadoop fs -cp /dir/sub-dir/hello_world.txt /tmp
mv: Memindahkan atau mengganti nama file atau direktori
Memindahkan atau mengganti nama file atau direktori di dalam HDFS. Ini merupakan operasi atomik. Saat Anda memindahkan file dalam sistem file yang sama, blok data tidak dipindahkan. Hanya metadata yang diperbarui, sehingga operasi ini sangat cepat.
Sintaks
hadoop fs -mv URI [URI ...] <dest>Contoh
Pindahkan file hello_world2.txt dari direktori /tmp/ ke direktori /dir/sub-dir/.
hadoop fs -mv /tmp/hello_world2.txt /dir/sub-dir/Pindahkan direktori test dari jalur /tmp/ ke direktori /dir/sub-dir/.
hadoop fs -mv /tmp/test /dir/sub-dir/
rm: Menghapus file atau direktori
Menghapus file atau direktori di HDFS.
Sintaks
hadoop fs -rm [-f] [-r] [-skipTrash] URI [URI ...]Deskripsi parameter
-r: Menghapus direktori dan seluruh isinya secara rekursif. Parameter ini wajib digunakan untuk menghapus direktori.-f: Memaksa penghapusan. Perintah tidak melaporkan kesalahan jika file tidak ada.-skipTrash: Menghapus file atau direktori secara permanen dan melewati keranjang daur ulang. Gunakan opsi ini dengan sangat hati-hati. Secara default, item yang dihapus dipindahkan ke direktori keranjang daur ulang pengguna saat ini, yaitu/user/<username>/.Trash/.
Contoh: Hapus file hello_world2.txt dari direktori /dir/sub-dir/ di HDFS.
hadoop fs -rm /dir/sub-dir/hello_world2.txt
Perintah hadoop fs -rmr sudah tidak digunakan lagi. Gunakan hadoop fs -rm -r sebagai gantinya untuk menghapus direktori secara rekursif.
Penampilan file
cat: Melihat isi file
Menampilkan isi file di HDFS.
Sintaks
hadoop fs -cat URI [URI ...]Contoh
Lihat isi file hello.txt.
hadoop fs -cat /hello.txtLihat isi file hello_world.txt di direktori /dir/sub-dir/.
hadoop fs -cat /dir/sub-dir/hello_world.txt
du: Menampilkan ukuran file
Menampilkan ukuran file atau total ukuran semua file dalam direktori.
Sintaks
hadoop fs -du [-s] [-h] URI [URI ...]Deskripsi parameter
-s: Menampilkan ringkasan total ukuran alih-alih ukuran tiap file atau direktori.-h: Menampilkan ukuran dalam format yang mudah dibaca manusia.
Contoh
Lihat ukuran file.
hadoop fs -du /hello.txtLihat total ukuran semua file dalam direktori.
hadoop fs -du /dir
FAQ
Permission deniedPenyebab: Pengguna saat ini tidak memiliki izin baca, tulis, atau eksekusi yang diperlukan untuk file atau direktori tujuan.
Solusi:
Jalankan perintah
hdfs dfs -ls <parent_dir>untuk memeriksa izin file atau direktori induknya.Hubungi administrator untuk memberikan izin menggunakan perintah
chmodatauchown.Jika Kerberos diaktifkan di lingkungan tersebut, pastikan Anda telah mendapatkan tiket menggunakan perintah
kinit.
SafeModeException: NameNode is in safe modePenyebab: NameNode masuk ke safe mode saat startup dan tidak menerima operasi tulis selama periode ini.
Solusi: Tunggu beberapa menit hingga NameNode keluar dari safe mode secara otomatis. Anda dapat menjalankan perintah
hdfs dfsadmin -safemode getuntuk memeriksa statusnya. Jangan memaksa keluar dari safe mode secara manual kecuali dalam keadaan darurat.
No such file or directoryPenyebab: Jalur yang ditentukan tidak ada.
Solusi: Periksa ejaan jalur tersebut. Jika Anda menulis ke file, pastikan direktori induknya ada. Anda juga dapat menggunakan parameter
-pbersama perintahmkdiruntuk membuat direktori induk.
StandbyException: Operation category READ is not supported in state standbyPenyebab: Dalam konfigurasi ketersediaan tinggi (HA), permintaan baca atau tulis dikirim ke NameNode yang berada dalam status Standby.
Solusi: Periksa file konfigurasi Hadoop (
core-site.xml) untuk memastikan bahwafs.defaultFSmengarah ke nama HA NameService, sepertihdfs://mycluster, bukan hostname NameNode tertentu.
Referensi
Jika ketersediaan tinggi (HA) diaktifkan untuk kluster Anda, lihat Perintah Ketersediaan Tinggi (HA) HDFS (HaAdmin).
Untuk migrasi data antar kluster Hadoop, atau antara HDFS dan Object Storage Service (OSS), lihat Hadoop DistCp.