Node nama dalam mode aman. Tidak bisa pergi

122
root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.

tidak dapat membuat apa pun di hdfs

aku melakukannya

root# bin/hadoop fs -safemode leave

Tapi menunjukkan

safemode: Unknown command

Apa masalahnya?

Larutan

Unmesha SreeVeni
sumber
2
Dalam kasus saya, itu di node yang aman karena sumber daya rendah (berjalan pada buruh pelabuhan)
pomber
@BrendenBrown, berikut ini tautan yang saat ini berfungsi untuk Hadoop 3.2.0: hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/…
Eugene Gr. Philippov
Dan inilah tautan yang saat ini berfungsi untuk Hadoop «stable» (saat ini 2.9.x): hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/…
Eugene Gr. Philippov

Jawaban:

211

Untuk membiarkan namenode meninggalkan safemode secara paksa, perintah berikut harus dijalankan:

 bin/hadoop dfsadmin -safemode leave

Anda mendapatkan Unknown commandkesalahan untuk perintah Anda karena -safemodebukan sub-perintah untuk hadoop fs, tetapi dari hadoop dfsadmin.

Juga setelah perintah di atas, saya akan menyarankan Anda untuk menjalankan sekali hadoop fscksehingga setiap inkonsistensi yang merayap di hdfs dapat diselesaikan.

Memperbarui:

Gunakan hdfsperintah alih-alih hadoopperintah untuk distribusi yang lebih baru. The hadoopPerintah sedang ditinggalkan:

hdfs dfsadmin -safemode leave

hadoop dfsadminsudah tidak digunakan lagi dan begitu juga hadoop fsperintahnya, semua tugas yang berhubungan dengan hdf sedang dipindahkan ke perintah terpisah hdfs.

Amar
sumber
2
sebenarnya mengapa ini menampilkan 'namenode ada di safemode'
Unmesha SreeVeni
1
Pada dasarnya namenode masuk dalam mode aman dalam situasi yang tidak biasa, misalnya saat disk penuh, juga dalam fase start-up. Baca lebih lanjut di sini; hadoop.apache.org/docs/stable/hdfs_user_guide.html#Safemode
Amar
2
Saya menggunakan Hadoop 2.0.0-cdh4.1.1 Ketika saya menjalankan hadoop dfsadminperintah, itu memberi saya ini: ______ DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Safe mode is OFF ______ ... tapi masih berjalan. Sepertinya saran oleh @ user3316017 di bawah ini adalah sintaks yang direkomendasikan.
CJBS
Memperbarui jawaban saya sesuai dengan distribusi baru, jika ada yang dapat membantu kami dalam menetapkan versi apache hadoop yang tepat karena ketika penghentian ini muncul, itu akan sangat bagus.
Amar
1
Untuk kasus di mana HDFS masuk ke mode aman lagi segera setelah hdfs dfsadmin -safemode leaveperintah dijalankan karena cluster penuh, terkadang dimungkinkan untuk keluar dari situasi dengan segera merangkai perintah untuk membersihkan barang, misalnyahdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
Shadocko
27

coba ini, itu akan berhasil

sudo -u hdfs hdfs dfsadmin -safemode leave
Wesam Na
sumber
perintah ini berfungsi untuk saya karena dapat memerlukan hak pengguna super .. terima kasih @wesam
NikhilP
7

Jika Anda menggunakan Hadoop versi 2.6.1 di atas, sementara perintah berfungsi, ia mengeluh bahwa itu disusutkan. Saya sebenarnya tidak dapat menggunakan hadoop dfsadmin -safemode leavekarena saya menjalankan Hadoop di wadah Docker dan perintah itu secara ajaib gagal saat dijalankan di wadah, jadi yang saya lakukan adalah ini. Saya memeriksa doc dan menemukan dfs.safemode.threshold.pctdi dokumentasi yang mengatakan

Menentukan persentase blok yang harus memenuhi persyaratan replikasi minimal yang ditentukan oleh dfs.replication.min. Nilai kurang dari atau sama dengan 0 berarti tidak menunggu persentase blok tertentu sebelum keluar dari mode aman. Nilai lebih dari 1 akan membuat mode aman permanen.

jadi saya mengubahnya hdfs-site.xmlmenjadi berikut (Dalam versi Hadoop yang lebih lama, tampaknya Anda perlu melakukannya di hdfs-default.xml:

<configuration>
    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0</value>
    </property>
</configuration>
ambodi
sumber
5

Namenode masuk ke dalam safemode jika ada kekurangan memori. Akibatnya HDFS menjadi hanya bisa dibaca. Itu berarti seseorang tidak dapat membuat direktori atau file tambahan di HDFS. Untuk keluar dari safemode, perintah berikut digunakan:

hadoop dfsadmin -safemode leave

Jika Anda menggunakan manajer cloudera:

go to >>Actions>>Leave Safemode

Tapi itu tidak selalu menyelesaikan masalah. Solusi lengkapnya terletak pada membuat beberapa ruang di memori. Gunakan perintah berikut untuk memeriksa penggunaan memori Anda.

free -m

Jika Anda menggunakan cloudera, Anda juga dapat memeriksa apakah HDFS menunjukkan beberapa tanda kesehatan yang buruk. Mungkin pasti menunjukkan beberapa masalah memori yang terkait dengan namenode. Alokasikan lebih banyak memori dengan mengikuti opsi yang tersedia. Saya tidak yakin perintah apa yang digunakan untuk hal yang sama jika Anda tidak menggunakan manajer cloudera tetapi harus ada cara. Semoga membantu! :)

Amitesh Ranjan
sumber
5

Coba ini

sudo -u hdfs hdfs dfsadmin -safemode leave

periksa status safemode

sudo -u hdfs hdfs dfsadmin -safemode get

Jika masih dalam safemode, maka salah satu alasannya adalah tidak cukup ruang di node Anda, Anda dapat memeriksa penggunaan disk node Anda menggunakan:

df -h

jika partisi root penuh, hapus file atau tambahkan ruang di partisi root Anda dan coba lagi langkah pertama.

Tarun Reddy
sumber
4

safe mode on means (HDFS dalam mode READ only)
safe mode off artinya (HDFS dalam mode Writeable dan readable)

Di Hadoop 2.6.0, kita dapat memeriksa status node nama dengan bantuan perintah di bawah ini:

UNTUK MEMERIKSA status node nama

$ hdfs dfsadmin -safemode get

UNTUK MASUK DALAM MODE AMAN:

$ hdfs dfsadmin -safemode enter

UNTUK MENINGGALKAN mode AMAN

~$ hdfs dfsadmin -safemode leave
Vishwajeet Singh
sumber
1
UNTUK MEMAKSA MENINGGALKAN MODE AMAN: ~ $ hdfs dfsadmin -safemode forceExit
ammills01
1

Jalankan perintah di bawah ini menggunakan pengguna OS HDFS untuk menonaktifkan mode aman:

sudo -u hdfs hadoop dfsadmin -safemode leave
Mayank Gupta
sumber
0

gunakan perintah di bawah ini untuk mematikan mode aman

$> hdfs dfsadmin -safemode pergi

Azam Khan
sumber