Win10環(huán)境下Hadoop(單節(jié)點偽分布式)的安裝與配置--bug(yarn的8088端口打不開+)
一、本文思路
- 【1】、配置java環(huán)境–JDK12(Hadoop的底層實現(xiàn)語言是java,hadoop運行需要JDK環(huán)境)
- 【2】、安裝Hadoop
- 1、解壓hadop
- 2、配置hadoop環(huán)境變量
- 3、配置Hadoop文件
二、所需下載文件
- 【1】JDK下載地址

選擇基礎(chǔ)版本下載

選擇binary下載
-
【3】hadoop在windows上運行需要winutils支持和hadoop.dll等文件
- 在github倉庫中找到對應(yīng)版本的二進制庫hadoop.dll和winutils.exe文件,然后把文件拷貝到hadoop解壓的bin目錄中去
- 【目前未找到對應(yīng)的2.9.2版本,這一步未操作】
三、基礎(chǔ)知識
- Apache Hadoop系統(tǒng)的兩個核心組件
- (1)用于存儲數(shù)據(jù)的Hadoop分布式文件系統(tǒng)(HDFS)
- (2)用于實現(xiàn)數(shù)據(jù)處理的應(yīng)用程序的Hadoop Yarn
四、JDK12安裝配置過程
【1】JDK與JRE比較
- JDK:java安裝工具包,包含JRE。因此只需下載JDK即可;
- JRE:java運行環(huán)境,用來運行JAVA程序的。
【2】JDK安裝—選擇默認(rèn)安裝目錄即可。
【3】JDK配置–系統(tǒng)變量
- (1)新建JAVA_HOME變量,變量值填寫JDK的安裝目錄(我的是默認(rèn)安裝環(huán)境 C:\Program Files\Java\jdk-12.0.1)。

新建javahome變量
- (2)新建CLASSPATH變量,變量值 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面有一個點)。
此處注意不要使用相對路徑JAVA_HOME,因為重啟電腦后cmd執(zhí)行javac會失敗

新建classpath變量
更改為:

新建classpath變量
- (3)在path變量值后加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
此處注意不要使用相對路徑JAVA_HOME,因為重啟電腦后cmd執(zhí)行javac會失敗

11.png
更改為:

path后新增jdk路徑
- (4)此處注意的是jdk安裝目錄下是沒有jre的,需要手動添加**
- 1、打開cmd
- 2、切換至jdk安裝目錄下 (我的是:C:\Program Files\Java\jdk-12.0.1)
- 3、執(zhí)行 bin\jlink.exe –module-path jmods –add-modules java.desktop –output jre
- 4、結(jié)果如下圖,在C:\Program Files\Java\jdk-12.0.1下出現(xiàn)jre即可。

path新增jdk路徑

path新增jdk路徑后的編輯文本樣式
- (5)檢查是否配置成功,運行cmd,分別輸入java, javac, java -version 三個都可執(zhí)行即為安裝配置成功。
五、Hadoop2.9.5安裝配置過程
【1】Hadoop安裝—下載的安裝包直接解壓即可(我的在 D:\Hadoop\hadoop-2.9.2 目錄)

hadoop安裝目錄
【2】Hadoop環(huán)境配置—系統(tǒng)變量
- (1)新建HADOOP_HOME變量,變量值D:\Hadoop\hadoop-2.9.2

新建HADOOP_HOME變量
- (2)在path變量值后添加 %HADOOP_HOME%\bin;

新建HADOOP_HOME變量
- (3)此時測試hadoop是否安裝成功會失敗:原因是jdk的JAVA_HOME環(huán)境變量的配置路徑不能有空格(C:\Program Files\Java\jdk-12.0.1),將其中的 Program Files 替換為 PROGRA~1即可。

java_home有空格
將其中的 Program Files 替換為 PROGRA~1即可

java_home無空格
cmd下執(zhí)行 hadoop version成功,說明hadoop環(huán)境配置成功。
【3】 Hadoop偽分布式文件配置
- (1)在hadoop根目錄下新建文件夾data,然后在其下創(chuàng)建另個子文件夾datanode和namenode

新建data文件夾

data下新建文件夾
- (2)確認(rèn) ../etc/hadoop/core-site.xml中有如下代碼
core-site.xml代碼:
<configuration>
<!--fs.defaultFS屬性,為NameNode(HDFS元數(shù)據(jù)的服務(wù)器)指定主機名和請求端口號 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
- (3)確認(rèn)../etc/hadoop/mapred-site.xml (如不存在該文件,則將mapred-site.xml.template文件更改為mapred-site.xml)中有如下代碼:
mapred-site.xml代碼:
<configuration>
<!-- 為MapReduce指定框架名,值為Yarn,告知Mapreduce它將作為Yarn的應(yīng)用程序運行 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- (4) 確認(rèn)../etc/hadoop/hdfs-site.xml中有如下代碼 (namenode和datanode是(1)中新建文件的地址)
hdfs-site.xml代碼:—cuowu
<configuration>
<!-- hdfs默認(rèn)為系統(tǒng)文件系統(tǒng)中的每個文件保存3份副本,以作冗余備份,單機版hadoop沒有備份需要,設(shè)置dfs.replication為1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 此處直接用window下的地址 D:\Hadoop\hadoop-2.9.2\data\namenode 會報錯,應(yīng)改為正斜杠,且磁盤名稱前也需要一個正斜杠 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/D:/Hadoop/hadoop-2.9.2/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/D:/Hadoop/hadoop-2.9.2/data/datanode</value>
</property>
</configuration>
- (5)確認(rèn)../etc/hadoop/yarn-site.xml中有如下代碼
yarn-site.xml代碼:
<configuration>
<!-- 屬性yarn.nodemanager.aux-services告訴NodeManager需要實現(xiàn)一個名為 mapreduce.shuffle的輔助服務(wù)-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
- (6) ../etc/hadoop/hadoop-env.cmd(修改JDK的安裝路徑)

javahome路徑完善
- (7)格式化HDFS文件系統(tǒng)(節(jié)點格式化),通過cmd進入文件夾 D:\Hadoop\hadoop-2.9.2\bin 后運行
hdfs namenode -format
執(zhí)行成功結(jié)果:

節(jié)點格式化成功
然后進入sbin文件輸入:start-all.cmd 之后會有四個窗口跳出來,分別是 * Hadoop Namenode * Hadoop datanode * YARN Resource Manager * YARN Node Manager
(8)hadoop自帶的web控制臺GUI
資源管理GUI(yarn的web界面) : http://localhost:8088

yarn的web界面打不開
- 節(jié)點管理GUI(hdfs的web界面): http://localhost:50070

hdfs的web界面
六、我的問題
五中步驟(7)中格式化hdfs、再輸入start-all命令后只出現(xiàn)兩個窗口,關(guān)于Yarn部分的窗口出現(xiàn)error,http://localhost:8088界面打不開

start-all yarn失敗