php小編蘋果在使用Hadoop時,可能會遇到一個常見問題:「找不到 start-all.sh、start-dfs.sh 指令」。這個問題通常出現在啟動Hadoop叢集時,可能是由於路徑配置不正確或腳本檔案不存在所致。要解決這個問題,我們需要檢查Hadoop的安裝路徑和環境變數配置,確保正確設置,並確保相關的腳本檔案存在於相應的路徑下。以下將詳細介紹如何解決這個問題,讓我們一起來看看吧!
我使用的是 ubuntu 16.04 lts 並安裝了 hadoop 2.7.2。
的輸出hadoop version
是
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
當我跑步時
whereis hadoop
它給出的輸出為
hadoop: /usr/local/hadoop /usr/local/hadoop-2.7.2/bin/hadoop.cmd /usr/local/hadoop-2.7.2/bin/hadoop
但是當我執行命令時
start-all.sh
它說找不到指令。 當我跑步時也是如此
start-dfs.sh
它給的輸出是未找到指令。
當我導航到 hadoop 目錄時,我能夠運行這些命令,但我想在不導航到 hadoop 目錄的情況下運行這些命令。
您的問題是 bash 不知道在哪裡查找 ./start-all.sh
。
您可以透過開啟 $home/.bashrc
並新增如下所示的行來解決此問題:
path=$path:/usr/local/hadoop/sbin
這告訴 bash 它應該在“/usr/local/hadoop/sbin”中查找 start-all.sh
。
注意:
對 $home/.bashrc
的變更不會在目前開啟的任何終端中生效。
如果您需要使變更在目前開啟的終端中生效,請執行
source $home/.bashrc
我必須使用 find 來搜尋它。
find / -iname start-all.sh 2> /dev/null
發現:
/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
所以除了前面的答案之外,$home/.bashrc
中的變數如下:
PATH=$PATH:/usr/local/sbin/
注意:我不確定應該將哪一個設定為 path
以上是未找到 start-all.sh、start-dfs.sh 指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!