在 Microsoft windows 上運行 Apache Hadoop 是比較繁瑣的任務,在安裝過程中會出現許多錯誤,最終,大多數用戶放棄了通過 Windows 使用 Hadoop,并轉而使用基于 linux 的操作系統。
本文講述了有關如何在Windows上無誤安裝和運行Apache Hadoop所有組件的各個方面。請先為以下先決條件準備好PC/筆記本電腦:
1. JAVA開發工具包
Apache Hadoop 與最新版本的JDK不兼容。建議下載Java SE Development Kit版本15.0.x(可能需要注冊Oracle帳戶)。
安裝鏈接:https://www.oracle.com/java/technologies/javase/jdk15-archive-downloads.html
2. 設置環境路徑
(僅在未安裝Java或從未設置Java路徑時才執行此步驟)。
進入設置 -> 搜索 "環境變量" -> 選擇 "編輯系統變量 "選項。出現以下對話框:
單擊“環境變量…”按鈕。出現以下窗口:
選擇新按鈕并在變量名稱中鍵入“JAVA_HOME”,將值設置為Java SDK的bin文件夾的路徑(通常為類型:C:Program FilesJavajdk-15.0.1bin)。對于用戶和系統變量都執行此步驟。
從用戶變量中選擇路徑選項(稍后同樣適用于系統變量)。單擊“編輯”并通過單擊“新建”按鈕(從右側)添加Java bin路徑。對于用戶和系統變量都執行此步驟。
現在,通過滿足先決條件,已準備好在Windows上安裝Apache Hadoop。
從以下鏈接中下載tar.gz文件(注意-最可能需要下載的是底部的第三個文件)。
安裝鏈接:https://downloads.apache.org/hadoop/common/hadoop-3.3.4/
確保將Hadoop文件夾提取到C:驅動器中(而不是任何文件夾或其他驅動器中)
提取后,請確保hadoop-3.3.4(文件夾名稱)對用戶具有寫入權限。
下面我們進入安裝步驟的關鍵部分,設置Hadoop的配置,請仔細遵循這些步驟。我們需要更改以下文件:
-
編輯文件C: Hadoop-3.3.4 etc hadoop core-site.xml,編輯xml代碼并保存:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
注意:如果端口正在使用,則可能需要更改端口(此處為9000)。
-
編輯文件C:Hadoop-3.3.4etchadoopmapred-site.xml,編輯xml代碼并保存:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3. 編輯文件
編輯C:Hadoop-3.3.4etchadoophdfs-site.xml,編輯xml代碼并保存:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop-3.3.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop-3.3.4/data/datanode</value>
</property>
</configuration>
4. 創建目錄
創建以下目錄
a. 在“C: hadoop-3.3.4 ”下創建文件夾“data”
b. 在“C: hadoop-3.3.4 data ”下創建文件夾“datanode”
c. 在“C: hadoopo-3.3.4 data ”下創建文件夾“namenode”
5. 編輯文件
編輯文件C: Hadoop-3.3.4 etc hadoop yarn-site.xml,編輯xml代碼并保存:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6. 編輯文件
編輯文件C:Hadoop-3.3.4etchadoophadoop-env.cmd,編輯以下行:
“JAVA_HOME=C:\Progra~1Javajdk-15.0.1bin” instead of set “JAVA_HOME=C:Java”
注意:可以使用JAVA_HOME變量,但由于路徑地址(Program Files)中存在空格,會引發錯誤。
到這一步已經完成了編輯配置的工作。現在,我們將在cmd中執行命令以運行Hadoop。
從下面鏈接中的bin文件夾中粘貼文件到Hadoop bin文件夾中,注意不要替換整個bin文件夾,復制文件并僅替換選定的文件。確保bin文件夾總共有22個項目。這一步很關鍵,因為現有的bin文件夾具有不完整的文件集,這些文件集是運行資源管理器所需的。
安裝鏈接:https://drive.google.com/drive/folders/1fDbblP61sUKmDqvQ8pfU98nMt_we4b5J?usp=share_link
7. 為Hadoop設置環境和路徑變量
進入設置->打開環境變量->在用戶變量中添加新變量:
變量名稱:HADOOP_HOME,值:C: hadoop-3.3.4 bin(到hadoop bin文件夾的路徑)。
進入用戶變量中的路徑,點擊編輯,添加新路徑:
路徑值與上面相同(到Hadoop bin文件夾的路徑)。
將以下路徑值添加到系統變量中:
C: hadoop-3.3.4 bin
C: hadoop-3.3.4 sbin
以“管理員身份運行”打開cmd(或powershell),并使用cd命令導航到Hadoop的bin目錄:
cd C:hadoop-3.3.4bin
8. 格式化目錄
使用相同的cmd(powershell)命令格式化“namenode”目錄;
hdfs namenode -format
9. 啟動組件
要啟動Hadoop組件,將當前目錄改為sbin文件夾:
cd C:hadoop-3.3.4sbin
并運行“start-all.cmd”可執行文件。可以通過在文件資源管理器中導航到sbin目錄中的start-all.cmd并選擇“以管理員身份運行”來執行此操作。
注意:如果通過執行第8步,無法查看yarn終端(cmd),請從同一目錄中以管理員身份打開“start-yarn.cmd”。
現在就能看到四個終端(cmd)同時運行。
確保所有四個組件都在運行,這些組件是:
a. hadoop namenode
b. hadoop datanode
c. yarn resourcemanager
d. yarn nodemanager
注意:可以使用終端中的“jps”命令進行驗證。如果任何一個(或多個)進程“關閉”,請檢查上一部分中的Hadoop配置步驟。
在成功運行組件后,可以通過在Web瀏覽器中打開http://localhost:8088來訪問Hadoop默認創建的群集。
上圖顯示了具有值1的活動節點的突出顯示字段,表示已創建一個節點并正在運行。
單擊左側欄上的“節點”以查看所創建節點的詳細信息。
要檢查namenode的狀態,請在Web瀏覽器中打開http://localhost:9870。可以通過頂部導航欄下的“實用程序”部分在GUI下訪問HDFS。
注意:圖中顯示 "localhost:9001",因為端口號9000已經被我的電腦使用了。我已經在Hadoop配置步驟中改變了它。(在core-site.xml文件中)。
恭喜,已成功在PC上安裝了Apache Hadoop。現在,可以從本地計算機執行map reduce任務,開始探索Hadoop Map Reduce的功能吧。