Editor PHP Apple mungkin menghadapi masalah biasa apabila menggunakan Hadoop: "start-all.sh, start-dfs.sh commands not found". Masalah ini biasanya berlaku apabila memulakan kluster Hadoop dan mungkin disebabkan oleh konfigurasi laluan yang salah atau fail skrip yang tidak wujud. Untuk menyelesaikan masalah ini, kita perlu menyemak laluan pemasangan Hadoop dan konfigurasi pembolehubah persekitaran untuk memastikan ia ditetapkan dengan betul dan memastikan fail skrip yang berkaitan wujud dalam laluan yang sepadan. Berikut akan memperkenalkan secara terperinci bagaimana untuk menyelesaikan masalah ini, mari kita lihat bersama!
Saya menggunakan ubuntu 16.04 lts dan memasang hadoop 2.7.2. Keluaran
hadoop version
Ya
hadoop 2.7.2 subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41 compiled by jenkins on 2016-01-26t00:08z compiled with protoc 2.5.0 from source with checksum d0fda26633fa762bff87ec759ebe689c this command was run using /usr/local/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar
Apabila saya berlari
whereis hadoop
Output yang diberikan ialah
hadoop: /usr/local/hadoop /usr/local/hadoop-2.7.2/bin/hadoop.cmd /usr/local/hadoop-2.7.2/bin/hadoop
Tetapi apabila saya menjalankan arahan
start-all.sh
Ia mengatakan arahan tidak dijumpai. Perkara yang sama apabila saya berlari
start-dfs.sh
Output yang diberikan adalah arahan tidak ditemui.
Saya boleh menjalankan arahan ini apabila saya menavigasi ke direktori hadoop, tetapi saya mahu menjalankan arahan ini tanpa menavigasi ke direktori hadoop.
Masalah anda ialah bash tidak tahu di mana hendak mencari ./start-all.sh
.
Anda boleh membetulkannya dengan membuka $home/.bashrc
dan menambah baris seperti ini:
path=$path:/usr/local/hadoop/sbin
Ini memberitahu bash bahawa ia sepatutnya kelihatan start-all.sh
dalam "/usr/local/hadoop/sbin".
Perhatian:
Perubahan kepada $home/.bashrc
tidak akan berkuat kuasa di mana-mana terminal yang sedang dibuka.
Jika anda memerlukan perubahan untuk berkuat kuasa pada terminal yang sedang dibuka, jalankan
source $home/.bashrc
Saya perlu menggunakan find untuk mencarinya.
find / -iname start-all.sh 2> /dev/null
Temui:
/usr/local/sbin/start-all.sh /usr/local/cellar/hadoop/3.3.4/libexec/sbin/start-all.sh /usr/local/cellar/hadoop/3.3.4/sbin/start-all.sh
Jadi sebagai tambahan kepada jawapan sebelumnya, pembolehubah dalam $home/.bashrc
kelihatan seperti ini:
PATH=$PATH:/usr/local/sbin/
Nota: Saya tidak pasti yang mana satu harus ditetapkan path
Atas ialah kandungan terperinci perintah start-all.sh, start-dfs.sh tidak ditemui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!