在Windows 10 環境下安裝 Hadoop-3.1.2


分布式系統本來是一組計算機,系統里有多個節點,我們如果裝在本機,則代表只有一台服務器,所以這次安裝的其實只是單節點集群Hadoop,所有的節點和功能都配在同一台機器上,包括NameNode、 Secondary NameNode、 DataNode, 以及MapReduce(YARN)的Resource Manager、Node Managder。

這里分五個步驟來記錄Hadoop安裝步驟,以及啟動和運行Hadoop。

一是安裝Java運行環境,二是安裝Hadoop,三是修改Hadoop安裝目錄下的配置文件,四是啟動Hadoop,五是運行一個Hadoop自帶的mapreduce的實例。

Windows 10

JDK 1.8.0_73

Hadoop 3.1.2

 

【第一步】

Hadoop是一個分布式處理大數據的軟件框架,是基於java編寫的;在下載使用前,需要有Java的編譯環境(JRE)或Java的開發工具(JDK)。

因為JDK已經包含了JRE,所以這里我裝的是jdk1.8.0_73;安裝之后配置環境變量。 

點擊 我的電腦 → 屬性 → 高級系統設置 → 環境變量, 添加

變量名:JAVA_HOME

變量值:C:\Program Files\Java\jdk1.8.0_73 (這里寫的是你自己電腦上JDK的安裝路徑)

如果查看本機是否已經有Java運行環境了呢?在windows自帶的Command Prompt (CMD)里輸入:java -version

顯示如下,則證明已經裝好。
  java version "1.8.0_73"
  Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
  Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

 

如果沒有的話,則點擊 我的電腦 → 屬性 → 高級系統設置 → 環境變量, 添加

變量名:JAVA_HOME

變量值:C:\Program Files\Java\jdk1.8.0_73 (這里寫的是你自己電腦上JDK的安裝路徑)

 

【第二步】

從Apache官網下載Hadoop,地址是 https://hadoop.apache.org/releases.html ,選擇binary 版本,下載下來的文件名是 hadoop-3.1.2.tar.gz 。

(備注:binary表示已編譯好的二進制包文件包,即解壓縮后可直接使用;source表示源代碼版本,需要通過計算機編譯才能執行安裝)

在本地解壓安裝包到自定義的地址,比如我的安裝路徑是 D:\MyFolder\Hadoop\hadoop-3.1.2 。

然后為Hadoop配置windows環境變量。點擊 我的電腦 → 屬性 → 高級系統設置 → 環境變量:

新添加一個變量名 HADOOP_HOME, 變量值 D:\MyFolder\Hadoop\hadoop-3.1.2 (這里使用你自己的安裝路徑);

在已有變量名Path(如果沒有就新添加一個變量名Path)下,加上兩個變量值 %HADOOP_HOME%\bin 和 %HADOOP_HOME%\sbin。

在windows自帶的Command Prompt (CMD)里輸入: hadoop version

顯示如下,則證明Hadoop環境變量已經配好。

  Hadoop 3.1.2
  Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a
  Compiled by sunilg on 2019-01-29T01:39Z
  Compiled with protoc 2.5.0
  From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9
  This command was run using /D:/MyFolder/Hadoop/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar

 

【第三步】

這一步需要對Hadoop安裝目錄下的配置文件進行一些修改,這些修改決定了我們能否啟動Hadoop。

配置hadoop,主要是配置以下三個配置文件(在%HADOOP_HOME%\etc\hadoop\下面):
core-site.xml, -- 是全局配置
hdfs-site.xml, --hdfs的局部配置。
mapred-site.xml -- mapred的局部配置。

 

剛解壓后,這些配置文件都是空的,沒有任何configuration,類似這樣:
<configuration>
</configuration>

其實他們這些文件的默認配置分別在這三個文件中:
core-default.xml,
hdfs-default.xml,
mapred-default.xml

在前面給出的官網文章鏈接中,可以找到這三個default文件的配置詳情;要注意官網上標識的Hadoop版本,比如現在我看到的是Version: 2.9.2,也就是說是屬於這個版本的默認配置。

 

現在說如何配置。

coresite.xml下的配置:

添加

<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>

如果了解HDFS的話,就會知道,如果文件進入到這個系統里,會有屬於自己的一個目錄,和我們理解的操作系統磁盤的絕對路徑是不一樣的。比如一個文件a被放到HDFS的根目錄下的test目錄下,那么它的HDFS路徑就是 /test/a,這就是Hadoop服務器本地的絕對路徑(它在我們電腦的操作系統里肯定不是相同的絕對路徑,具體是哪個路徑,我們沒必要知道,只需HDFS知道就好了)。除了用/test/a訪問這個文件,我們如果還想也想通過hdfs://localhost:9000/test/a 的方式訪問 ,就需要加上這個配置內容。

 

啟動服務后(一會兒的步驟會講到如何啟動服務),
輸入 hdfs dfs -ls /
輸入 hdfs dfs -ls hdfs://localhost:9000/
輸入 hdfs dfs -ls hdfs://10.118.145.33:9000/ (用IP地址是我沒試過的,我猜測應該可以成功)
得到的是同樣的結果,即Hadoop文件系統(注意:這里指的不是操作系統的文件系統)的根目錄下的內容。

 

或者輸入hdfs dfs -df -h

查看磁盤空間,如下是我的空間:

Filesystem Size Used Available Use%
hdfs://localhost:9000 159.7 G 1.1 M 138.7 G 0%

 

hdfs-site.xml下的配置:

添加

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

然后在Hadoop3.1.2的安裝目錄下建個目錄/data,再在這個目錄下建兩個目錄,一個叫namenode,一個叫datanode,把兩個目錄的路徑添加到這個配置文件里:

<property>
<name>dfs.namenode.name.dir</name>
<value>/D:/MyFolder/Hadoop/hadoop-3.1.2/data/namenode</value> 
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/D:/MyFolder/Hadoop/hadoop-3.1.2/data/datanode</value> 
</property>

 

yarn-site.xml下的配置:

添加

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

 

 

【第四步】

在windows下找到Hadoop的安裝目錄,進入sbin目錄,找到一個文件start-all.cmd

用管理員模式運行它,等待ResourceManager,NameNode和DataNode的啟動。

檢查Hadoop是否已經啟動成功,只需cmd窗口輸入:jps

如顯示以下五個進程名稱,則證明成功。

  109824 Jps
  29780 ResourceManager
  107300 DataNode
  107112 NameNode
  40316 NodeManager

 如果想停止這幾個進程,就在同目錄下找這個文件stop-all.cmd,然后運行。

其實對於start all 和stop all是不推薦的。更好的做法是先啟動start-dfs.cmd,再啟動start-yarn.cmd。

剛剛說到的幾個命令,如 hdfs dfs -ls hdfs://localhost:9000/,也可以在這個時候查看了。

訪問管理GUI

 記得先不要關閉那幾個cmd窗口,如果啟動成功,還可以在瀏覽器輸入

http://localhost:8088 ——查看應用管理界面ResourceManager

http://localhost:9870 ——NameNode界面

這兩個端口都是Hadoop支持的默認服務端口。要注意的是,3.0以上和2.0的默認端口有部分是不一樣的。

 

【第五步】

Hadoop是一個分布式文件系統,是用來處理文件/數據的。它自帶了用mapreduce處理數據的jar包,如hadoop-mapreduce-examples-3.1.2.jar,所以我們就在此運行一個例子,觀察Hadoop如何處理????

 

【結語】

其實,Apache官網也有介紹GNU/Linux環境安裝的文章,想看的請直接戳這里。

Single Node Setup for first-time users. (這篇里面還有個鏈接,專門介紹在Windows下的安裝,但是打不開)
Cluster Setup for large, distributed clusters.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM