1. 程式人生 > >centos安裝hadoop超級詳細沒有之一

centos安裝hadoop超級詳細沒有之一

1、準備工作

不知道怎麼回事圖片顯示不了:所以我把東西放在了我

1.1 建立hadoop使用者

如果你安裝 CentOS 的時候不是用的 “hadoop” 使用者,那麼需要增加一個名為 hadoop 的使用者。

首先點選左上角的 “應用程式” -> “系統工具” -> “終端”,首先在終端中輸入 su ,按回車,輸入 root 密碼以 root 使用者登入,接著執行命令建立新使用者 hadoop:

  1. su              # 上述提到的以 root 使用者登入
  2. useradd -m hadoop -s /bin/bash   # 建立新使用者hadoop

Shell 命令

如下圖所示,這條命令建立了可以登陸的 hadoop 使用者,並使用 /bin/bash 作為shell。

CentOS建立hadoop使用者

接著使用如下命令修改密碼,按提示輸入兩次密碼,可簡單的設為 “hadoop”(密碼隨意指定,若提示“無效的密碼,過於簡單”則再次輸入確認就行):

  1. passwd hadoop

Shell 命令

可為 hadoop 使用者增加管理員許可權,方便部署,避免一些對新手來說比較棘手的許可權問題,執行:

  1. visudo

Shell 命令

如下圖,找到 root ALL=(ALL) ALL 這行(應該在第98行,可以先按一下鍵盤上的 ESC 鍵,然後輸入 :98 (按一下冒號,接著輸入98,再按回車鍵),可以直接跳到第98行 ),然後在這行下面增加一行內容:hadoop ALL=(ALL) ALL (當中的間隔為tab),如下圖所示:

為hadoop增加sudo許可權

sudo是linux系統管理指令,是允許系統管理員讓普通使用者執行一些或者全部的root命令的一個工具

新增上一行內容後,先按一下鍵盤上的 ESC 鍵,然後輸入 :wq (輸入冒號還有wq,這是vi/vim編輯器的儲存方法),再按回車鍵儲存退出就可以了。

最後登出當前使用者(點選螢幕右上角的使用者名稱,選擇退出->登出),在登陸介面使用剛建立的 hadoop 使用者進行登陸。(如果已經是 hadoop 使用者,且在終端中使用 su 登入了 root 使用者,那麼需要執行 exit 退出 root 使用者狀態)

使用 hadoop 使用者登入後,還需要安裝幾個軟體才能安裝 Hadoop。

CentOS 使用 yum 來安裝軟體,需要聯網環境,首先應檢查一下是否連上了網路。如下圖所示,桌面右上角的網路圖示若顯示紅叉,則表明還未聯網,應點選選擇可用網路。

檢查是否聯網

連線網路後,需要安裝 SSH 和 Java。

1.2 安裝SSH、配置SSH無密碼登陸

叢集、單節點模式都需要用到 SSH 登陸(類似於遠端登陸,你可以登入某臺 Linux 主機,並且在上面執行命令),一般情況下,CentOS 預設已安裝了 SSH client、SSH server,開啟終端執行如下命令進行檢驗:

  1. rpm -qa | grep ssh

Shell 命令

如果返回的結果如下圖所示,包含了 SSH client 跟 SSH server,則不需要再安裝。

檢查是否安裝了SSH

若需要安裝,則可以通過 yum 進行安裝(安裝過程中會讓你輸入 [y/N],輸入 y 即可):

  1. sudo yum install openssh-clients
  2. sudo yum install openssh-server

Shell 命令

接著執行如下命令測試一下 SSH 是否可用:

  1. ssh localhost

Shell 命令

此時會有如下提示(SSH首次登陸提示),輸入 yes 。然後按提示輸入密碼 hadoop,這樣就登陸到本機了。

測試SSH是否可用

但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。

首先輸入 exit 退出剛才的 ssh,就回到了我們原先的終端視窗,然後利用 ssh-keygen 生成金鑰,並將金鑰加入到授權中:

  1. exit                           # 退出剛才的 ssh localhost
  2. cd ~/.ssh/                     # 若沒有該目錄,請先執行一次ssh localhost
  3. ssh-keygen -t rsa              # 會有提示,都按回車就可以
  4. cat id_rsa.pub >> authorized_keys  # 加入授權
  5. chmod 600 ./authorized_keys    # 修改檔案許可權

Shell 命令

~的含義

在 Linux 系統中,~ 代表的是使用者的主資料夾,即 “/home/使用者名稱” 這個目錄,如你的使用者名稱為 hadoop,則 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 後面的文字是註釋。

此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了,如下圖所示。

SSH無密碼登入

1.3 安裝Java環境

Java 環境可選擇 Oracle 的 JDK,或是 OpenJDK,現在一般 Linux 系統預設安裝的基本是 OpenJDK,如 CentOS 6.4 就預設安裝了 OpenJDK 1.7。按  中說的,Hadoop 在 OpenJDK 1.7 下執行是沒問題的。需要注意的是,CentOS 6.4 中預設安裝的只是 Java JRE,而不是 JDK,為了開發方便,我們還是需要通過 yum 進行安裝 JDK,安裝過程中會讓輸入 [y/N],輸入 y 即可:

  1. sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

Shell 命令

通過上述命令安裝 OpenJDK,預設安裝位置為 /usr/lib/jvm/java-1.7.0-openjdk(該路徑可以通過執行 rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac' 命令確定,執行後會輸出一個路徑,除去路徑末尾的 “/bin/javac”,剩下的就是正確的路徑了)。OpenJDK 安裝後就可以直接使用 java、javac 等命令了。

接著需要配置一下 JAVA_HOME 環境變數,為方便,我們在 ~/.bashrc 中進行設定(擴充套件閱讀: ):

  1. vim ~/.bashrc

Shell 命令

在檔案最後面新增如下單獨一行(指向 JDK 的安裝位置),並儲存:

  1. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk

Shell

如下圖所示:

設定JAVA_HOME環境變數

接著還需要讓該環境變數生效,執行如下程式碼:

  1. source ~/.bashrc    # 使變數設定生效

Shell 命令

設定好後我們來檢驗一下是否設定正確:

  1. echo $JAVA_HOME     # 檢驗變數值
  2. java -version
  3. $JAVA_HOME/bin/java -version  # 與直接執行 java -version 一樣

Shell 命令

如果設定正確的話,$JAVA_HOME/bin/java -version 會輸出 java 的版本資訊,且和 java -version 的輸出結果一樣,如下圖所示:

成功設定JAVA_HOME環境變數

這樣,Hadoop 所需的 Java 執行環境就安裝好了。

3、安裝 Hadoop 2

3.1下載安裝檔案

下載時強烈建議也下載 hadoop-2.x.y.tar.gz.mds 這個檔案,該檔案包含了檢驗值可用於檢查 hadoop-2.x.y.tar.gz 的完整性,否則若檔案發生了損壞或下載不完整,Hadoop 將無法正常執行。

本文涉及的檔案均通過瀏覽器下載,預設儲存在 “下載” 目錄中(若不是請自行更改 tar 命令的相應目錄)。另外,如果你用的不是 2.6.0 版本,則將所有命令中出現的 2.6.0 更改為你所使用的版本。

  1. cat ~/下載/hadoop-2.6.0.tar.gz.mds | grep 'MD5' # 列出md5檢驗值
  2. # head -n 6 ~/下載/hadoop-2.7.1.tar.gz.mds # 2.7.1版本格式變了,可以用這種方式輸出
  3. md5sum ~/下載/hadoop-2.6.0.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化為大寫,方便比較

Shell 命令

若檔案不完整則這兩個值一般差別很大,可以簡單對比下前幾個字元跟後幾個字元是否相等即可,如下圖所示,如果兩個值不一樣,請務必重新下載。

檢驗檔案完整性

我們選擇將 Hadoop 安裝至 /usr/local/ 中:

  1. sudo tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local    # 解壓到/usr/local
  2. cd /usr/local/
  3. sudo mv ./hadoop-2.6.0/ ./hadoop            # 將資料夾名改為hadoop
  4. sudo chown -R hadoop:hadoop ./hadoop        # 修改檔案許可權

Shell 命令

Hadoop 解壓後即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本資訊:

  1. cd /usr/local/hadoop
  2. ./bin/hadoop version

Shell 命令

相對路徑與絕對路徑

請務必注意命令中的相對路徑與絕對路徑,本文後續出現的 ./bin/...,./etc/... 等包含 ./ 的路徑,均為相對路徑,以 /usr/local/hadoop 為當前目錄。例如在 /usr/local/hadoop 目錄中執行 ./bin/hadoop version 等同於執行 /usr/local/hadoop/bin/hadoop version。可以將相對路徑改成絕對路徑來執行,但如果你是在主資料夾 ~ 中執行 ./bin/hadoop version,執行的會是 /home/hadoop/bin/hadoop version,就不是我們所想要的了。

3.2 Hadoop單機配置(非分散式)

Hadoop 預設模式為非分散式模式,無需進行其他配置即可執行。非分散式即單 Java 程序,方便進行除錯。

現在我們可以執行例子來感受下 Hadoop 的執行。Hadoop 附帶了豐富的例子(執行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

在此我們選擇執行 grep 例子,我們將 input 資料夾中的所有檔案作為輸入,篩選當中符合正則表示式 dfs[a-z.]+ 的單詞並統計出現的次數,最後輸出結果到 output 資料夾中。

  1. cd /usr/local/hadoop
  2. mkdir ./input
  3. cp ./etc/hadoop/*.xml ./input   # 將配置檔案作為輸入檔案
  4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
  5. cat ./output/*          # 檢視執行結果

Shell 命令

若執行出錯,如出現如下圖提示:

執行Hadoop例項時可能會報錯

若出現提示 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”,該 WARN 提示可以忽略,不會影響 Hadoop 正常執行(可通過編譯 Hadoop 原始碼解決,解決方法請自行搜尋)。

若出現提示 “INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException”,這需要執行如下命令修改 hosts 檔案,為你的主機名增加IP對映:

  1. sudo vim /etc/hosts

Shell 命令

主機名在終端視窗標題裡可以看到,或執行命令 hostname 檢視,如下圖所示,在最後面增加一行 “127.0.0.1 dblab”:

設定主機名的IP對映

儲存檔案後,重新執行 hadoop 例項,若執行成功的話會輸出很多作業的相關資訊,最後的輸出資訊如下圖所示。作業的結果會輸出在指定的 output 資料夾中,通過命令 cat ./output/* 檢視結果,符合正則的單詞 dfsadmin 出現了1次:

Hadoop例子輸出結果

注意,Hadoop 預設不會覆蓋結果檔案,因此再次執行上面例項會提示出錯,需要先將 ./output 刪除。

  1. rm -r ./output

Shell 命令

3.3 Hadoop偽分散式配置

Hadoop 可以在單節點上以偽分散式的方式執行,Hadoop 程序以分離的 Java 程序來執行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的檔案。

在設定 Hadoop 偽分散式配置前,我們還需要設定 HADOOP 環境變數,執行如下命令在 ~/.bashrc 中設定:

  1. gedit ~/.bashrc

Shell 命令

這次我們選擇用 gedit 而不是 vim 來編輯。gedit 是文字編輯器,類似於 Windows 中的記事本,會比較方便。儲存後記得關掉整個 gedit 程式,否則會佔用終端。在檔案最後面增加如下內容:

  1. # Hadoop Environment Variables
  2. export HADOOP_HOME=/usr/local/hadoop
  3. export HADOOP_INSTALL=$HADOOP_HOME
  4. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  5. export HADOOP_COMMON_HOME=$HADOOP_HOME
  6. export HADOOP_HDFS_HOME=$HADOOP_HOME
  7. export YARN_HOME=$HADOOP_HOME
  8. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  9. export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

Shell

儲存後,不要忘記執行如下命令使配置生效:

  1. source ~/.bashrc

Shell 命令

這些變數在啟動 Hadoop 程序時需要用到,不設定的話可能會報錯(這些變數也可以通過修改 ./etc/hadoop/hadoop-env.sh 實現)。

Hadoop 的配置檔案位於 /usr/local/hadoop/etc/hadoop/ 中,偽分散式需要修改2個配置檔案 core-site.xml 和 hdfs-site.xml 。Hadoop的配置檔案是 xml 格式,每個配置以宣告 property 的 name 和 value 的方式來實現。

修改配置檔案 core-site.xml (通過 gedit 編輯會比較方便: gedit ./etc/hadoop/core-site.xml),將當中的

  1. <configuration>
  2. </configuration>

XML

修改為下面配置:

  1. <configuration>
  2.     <property>
  3.         <name>hadoop.tmp.dir</name>
  4.         <value>file:/usr/local/hadoop/tmp</value>
  5.         <description>Abase for other temporary directories.</description>
  6.     </property>
  7.     <property>
  8.         <name>fs.defaultFS</name>
  9.         <value>hdfs://localhost:9000</value>
  10.     </property>
  11. </configuration>

XML

同樣的,修改配置檔案 hdfs-site.xml

  1. <configuration>
  2.     <property>
  3.         <name>dfs.replication</name>
  4.         <value>1</value>
  5.     </property>
  6.     <property>
  7.         <name>dfs.namenode.name.dir</name>
  8.         <value>file:/usr/local/hadoop/tmp/dfs/name</value>
  9.     </property>
  10.     <property>
  11.         <name>dfs.datanode.data.dir</name>
  12.         <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  13.     </property>
  14. </configuration>

XML

配置完成後,執行 NameNode 的格式化:

  1. ./bin/hdfs namenode -format

Shell 命令

成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯。

執行NameNode格式化

接著開啟 NaneNode 和 DataNode 守護程序:

  1. ./sbin/start-dfs.sh

Shell 命令

若出現如下 SSH 的提示 “Are you sure you want to continue connecting”,輸入 yes 即可。

首次啟動Hadoop時的SSH提示

啟動時可能會有 WARN 提示 “WARN util.NativeCodeLoader…” 如前面提到的,這個提示不會影響正常使用。

啟動完成後,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下程序: “NameNode”、”DataNode”和SecondaryNameNode(如果 SecondaryNameNode 沒有啟動,請執行 sbin/stop-dfs.sh 關閉程序,然後再次嘗試啟動嘗試)。如果沒有 NameNode 或 DataNode ,那就是配置不成功,請仔細檢查之前步驟,或通過檢視啟動日誌排查原因。

通過jps檢視啟動的Hadoop程序

通過檢視啟動日誌分析啟動失敗原因

有時 Hadoop 無法正確啟動,如 NameNode 程序沒有順利啟動,這時可以檢視啟動日誌來排查原因,注意幾點:

  • 啟動時會提示形如 “dblab: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-dblab.out”,其中 dblab 對應你的主機名,但啟動的日誌資訊是記錄在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-dblab.log 中,所以應該檢視這個字尾為 .log 的檔案;
  • 每一次的啟動日誌都是追加在日誌檔案之後,所以得拉到最後面看,看下記錄的時間就知道了。
  • 一般出錯的提示在最後面,也就是寫著 Fatal、Error 或者 Java Exception 的地方。
  • 可以在網上搜索一下出錯資訊,看能否找到一些相關的解決方法。

成功啟動後,可以訪問 Web 介面  檢視 NameNode 和 Datanode 資訊,還可以線上檢視 HDFS 中的檔案。

Hadopp的Web介面

3.3 執行Hadoop偽分散式例項

上面的單機模式,grep 例子讀取的是本地資料,偽分散式讀取的則是 HDFS 上的資料。要使用 HDFS,首先需要在 HDFS 中建立使用者目錄:

  1. ./bin/hdfs dfs -mkdir -p /user/hadoop

Shell 命令

接著將 ./etc/hadoop 中的 xml 檔案作為輸入檔案複製到分散式檔案系統中,即將 /usr/local/hadoop/etc/hadoop 複製到分散式檔案系統中的 /user/hadoop/input 中。我們使用的是 hadoop 使用者,並且已建立相應的使用者目錄 /user/hadoop ,因此在命令中就可以使用相對路徑如 input,其對應的絕對路徑就是 /user/hadoop/input:

  1. ./bin/hdfs dfs -mkdir input
  2. ./bin/hdfs dfs -put ./etc/hadoop/*.xml input

Shell 命令

複製完成後,可以通過如下命令檢視 HDFS 中的檔案列表:

  1. ./bin/hdfs dfs -ls input

Shell 命令

偽分散式執行 MapReduce 作業的方式跟單機模式相同,區別在於偽分散式讀取的是HDFS中的檔案(可以將單機步驟中建立的本地 input 資料夾,輸出結果 output 資料夾都刪掉來驗證這一點)。

  1. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

Shell 命令

檢視執行結果的命令(檢視的是位於 HDFS 中的輸出結果):

  1. ./bin/hdfs dfs -cat output/*

Shell 命令

結果如下,注意到剛才我們已經更改了配置檔案,所以執行結果不同。

Hadoop偽分散式執行grep的結果

我們也可以將執行結果取回到本地:

  1. rm -r ./output    # 先刪除本地的 output 資料夾(如果存在)
  2. ./bin/hdfs dfs -get output ./output     # HDFS 上的 output 資料夾拷貝到本機
  3. cat ./output/*

Shell 命令

Hadoop 執行程式時,輸出目錄不能存在,否則會提示錯誤 “org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists” ,因此若要再次執行,需要執行如下命令刪除 output 資料夾:

  1. ./bin/hdfs dfs -rm -r output    # 刪除 output 資料夾

Shell 命令

執行程式時,輸出目錄不能存在

執行 Hadoop 程式時,為了防止覆蓋結果,程式指定的輸出目錄(如 output)不能存在,否則會提示錯誤,因此執行前需要先刪除輸出目錄。在實際開發應用程式時,可考慮在程式中加上如下程式碼,能在每次執行時自動刪除輸出目錄,避免繁瑣的命令列操作:

  1. Configuration conf = new Configuration();
  2. Job job = new Job(conf);
  3. /* 刪除輸出目錄 */
  4. Path outputPath = new Path(args[1]);
  5. outputPath.getFileSystem(conf).delete(outputPath, true);

Java

若要關閉 Hadoop,則執行

  1. ./sbin/stop-dfs.sh

Shell 命令

注意

下次啟動 hadoop 時,無需進行 NameNode 的初始化,只需要執行 ./sbin/start-dfs.sh 就可以!

3.4啟動YARN

(偽分散式不啟動 YARN 也可以,一般不會影響程式執行)

有的讀者可能會疑惑,怎麼啟動 Hadoop 後,見不到書上所說的 JobTracker 和 TaskTracker,這是因為新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也稱為 YARN,Yet Another Resource Negotiator)。

YARN 是從 MapReduce 中分離出來的,負責資源管理與任務排程。YARN 運行於 MapReduce 之上,提供了高可用性、高擴充套件性,YARN 的更多介紹在此不展開,有興趣的可查閱相關資料。

上述通過 ./sbin/start-dfs.sh 啟動 Hadoop,僅僅是啟動了 MapReduce 環境,我們可以啟動 YARN ,讓 YARN 來負責資源管理與任務排程。

首先修改配置檔案 mapred-site.xml,這邊需要先進行重新命名:

  1. mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml

Shell 命令

然後再進行編輯,同樣使用 gedit 編輯會比較方便些 gedit ./etc/hadoop/mapred-site.xml :

  1. <configuration>
  2.     <property>
  3.         <name>mapreduce.framework.name</name>
  4.         <value>yarn</value>
  5.     </property>
  6. </configuration>

XML

接著修改配置檔案 yarn-site.xml

  1. <configuration>
  2.     <property>
  3.         <name>yarn.nodemanager.aux-services</name>
  4.         <value>mapreduce_shuffle</value>
  5.         </property>
  6. </configuration>

XML

然後就可以啟動 YARN 了(需要先執行過 ./sbin/start-dfs.sh):

  1. ./sbin/start-yarn.sh      $ 啟動YARN
  2. ./sbin/mr-jobhistory-daemon.sh start historyserver  # 開啟歷史伺服器,才能在Web中檢視任務執行情況

Shell 命令

開啟後通過 jps 檢視,可以看到多了 NodeManager 和 ResourceManager 兩個後臺程序,如下圖所示。

開啟YARN

啟動 YARN 之後,執行例項的方法還是一樣的,僅僅是資源管理方式、任務排程不同。觀察日誌資訊可以發現,不啟用 YARN 時,是 “mapred.LocalJobRunner” 在跑任務,啟用 YARN 之後,是 “mapred.YARNRunner” 在跑任務。啟動 YARN 有個好處是可以通過 Web 介面檢視任務的執行情況:,如下圖所示。

開啟YARN後可以檢視任務執行資訊

但 YARN 主要是為叢集提供更好的資源管理與任務排程,然而這在單機上體現不出價值,反而會使程式跑得稍慢些。因此在單機上是否開啟 YARN 就看實際情況了。

不啟動 YARN 需重新命名 mapred-site.xml

如果不想啟動 YARN,務必把配置檔案 mapred-site.xml 重新命名,改成 mapred-site.xml.template,需要用時改回來就行。否則在該配置檔案存在,而未開啟 YARN 的情況下,執行程式會提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的錯誤,這也是為何該配置檔案初始檔名為 mapred-site.xml.template。

同樣的,關閉 YARN 的指令碼如下:

  1. ./sbin/stop-yarn.sh
  2. ./sbin/mr-jobhistory-daemon.sh stop historyserver

Shell 命令

自此,你已經掌握 Hadoop 的配置和基本使用了。

附加教程: 配置PATH環境變數

在這裡額外講一下 PATH 這個環境變數(可執行 echo $PATH 檢視,當中包含了多個目錄)。例如我們在主資料夾 ~ 中執行 ls 這個命令時,實際執行的是 /bin/ls 這個程式,而不是 ~/ls 這個程式。系統是根據 PATH 這個環境變數中包含的目錄位置,逐一進行查詢,直至在這些目錄位置下找到匹配的程式(若沒有匹配的則提示該命令不存在)。

上面的教程中,我們都是先進入到 /usr/local/hadoop 目錄中,再執行 ./sbin/hadoop,實際上等同於執行 /usr/local/hadoop/sbin/hadoop。我們可以將 Hadoop 命令的相關目錄加入到 PATH 環境變數中,這樣就可以直接通過 start-dfs.sh 開啟 Hadoop,也可以直接通過 hdfs 訪問 HDFS 的內容,方便平時的操作。

在前面我們設定 HADOOP 環境變數時,我們已經順便設定了 PATH 變數(即 “export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin”),那麼以後我們在任意目錄中都可以直接通過執行 start-dfs.sh 來啟動 Hadoop 或者執行 hdfs dfs -ls input 檢視 HDFS 檔案了,讀者不妨現在就執行 hdfs dfs -ls input 試試看。