window下hadoop的安裝搭建與Myeclipse配套使用教程
突然需要用到Hadoop環境,先是在linux環境下搭建了偽分佈模式。但是由於我是用Myeclipse工具進行MapReduce的程式編寫,顯然在window下除錯比打jar包部署到linux伺服器上執行要方便很多。故此,在本機win7環境下進行了hadoop的偽分佈環境的搭建。
一、進行Hadoop的安裝包的下載與解壓
注:搭建hadoop環境必須jdk支援,能搭建hadoop的不能夠沒有jdk吧,這裡就不講jdk的安裝與環境配置了,自行腦補去
1、可自行去hadoop官網https://hadoop.apache.org/releases.html去下載,我下載的是2.8.5版本的
注:一定要下載的是已編譯過的壓縮包,就是二進位制的包Binary 下的版本,字尾名為hadoop-2.8.5.tar.gz的檔案包
2、將下載下來的安裝包用管理員身份進行解壓,我本地解壓目的地為C:\hadoop-2.8.5資料夾
3、進行環境變數的配置
將hadoop的路徑進行配置環境變數,類似jdk的環境變數的配置
1)計算機-->屬性-->高階系統變數-->環境變數-->新建系統變數(也可以直接新建使用者變數,但是新增使用者變數後,命令視窗只能用管理員身份執行才能識別hadoop命令,所以建議直接新建系統變數)變數名:HADOOP_HOME 變數值:C:\hadoop-2.8.5 因為我的在這個位置,所以你根據自己位置自己靈活設定,總之是bin目錄的上一層。
2)配置好HADOOP_HOME後,需要在Path中開啟編輯,定位到末尾新增變數%HADOOP_HOME%\bin;
3)配置好環境變數後,執行cmd,輸入hadoop version 命令,進行檢驗環境變數是否配置成功,如果成功,則提示版本號。如果提示 'hadoop不是內部命令' 等錯誤資訊,則說明環境變數沒有配置正確,則仔細看上述操作步驟再試一遍。
二、由於window下搭建hadoop環境需要winutils.exe和hadoop.dll等的支援,所以需要下載對應版本的工具。
1、現提供百度網盤下載連結為:https://pan.baidu.com/s/1TS-NK48WaJ0wOT0keWJHUQ
2、將本地hadoop-2.8.5下的bin目錄刪除,然後拷貝工具類中的hadoop-2.8.3版本下的bin目錄,然後貼上到本地hadoop-2.8.5目錄下即可
三、對hadoop的配置進行修改,搭建偽分佈環境,配置檔案目錄為C:\hadoop-2.8.5\etc\hadoop
1、修改core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
2、修改hdfs-site.xml. 修改完以後需要手動在hadoop-2.8.5目錄下自動新建data資料夾及子資料夾namenode和datanode。
此位置對應下列引數中的namenode和datanode的位置。配置如下:
<configuration>
<!-- 這個引數設定為1,因為是單機版hadoop -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 這個引數設定為namenode,靈活修改value值,為你本地新建目錄路徑 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/hadoop-2.8.5/data/namenode</value>
</property>
<!-- 這個引數設定為datanode,靈活修改value值,為你本地新建目錄路徑 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/hadoop-2.8.5/data/datanode</value>
</property>
</configuration>
3、複製mapred-site.xml.template,並去掉字尾名.template,然後修改mapred-site.xml檔案
開啟mapred-site.xml,並修改配置如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4、修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
5、修改hadoop-env.cmd檔案,找到set JAVA_HOME=%JAVA_HOME%這一行進行修改
set JAVA_HOME=C:\jdk1.6.0_32_x64 (注:此處為你的jdk位置,需要你根據本機jdk位置靈活配置)
至此,所以hadoop的偽分佈環境配置結束,接下來進行namenode的格式化和hadoop環境的啟動
四、hadoop的namenode格式化及環境啟動
1、開啟cmd命令視窗,執行命令hdfs namenode -format
正常情況下會格式化成功,很不幸我的報錯了,是因為家裡的電腦裝的jdk1.6版本的,不支援hadoop-2.8.5的編譯檔案執行,所以需要我更換高版本的jdk,比如jdk1.7 jdk1.8等
所以我重新配置一個高版本的jdk以後(配置完新的jdk記得修改上一步中的第五條中的set JAVA_HOME=) ,繼續執行命令hdfs namenode -format ,出現下面截圖情況 Storage directory C:\hadoop-2.8.5\data\namenode has been successfully formatted.,代表格式化成功。
2、啟動hadoop環境
切換命令視窗到C:\hadoop-2.8.5\sbin目錄下 ,執行start-all.cmd命令,啟動環境
啟動完以後會瞬間啟動四個命令視窗(注:如果啟動不成功,報java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)錯誤,則有可能是jdk版本不夠的問題,需要更高版本的jdk'支援,修改完高版本的jdk環境變數後,同樣不要忘了上一步中的第五條中的set JAVA_HOME=),如下圖所示,這表示這環境正在啟動
啟動完成後,在最開始自己啟動的cmd視窗中,繼續輸入命令jps,檢查是否完全啟動。如下圖所示,代表成功啟動環境,至此hadoop在window下的偽分佈模式搭建完成。
五、HDFS應用
1、通過http://127.0.0.1:8088/即可檢視叢集所有節點狀態: