windows7搭建本地hadoop環境
一、安裝JDK,因為hadoop主要由java語言編寫的,所以需要安裝java程式的執行環境。JDK可以編譯java語言程式,和一些java類庫。
Eclipse 是一個開放原始碼的、基於 Java 的可擴充套件開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過外掛元件構建開發環境。幸運的是,Eclipse 附帶了一個標準的外掛集,包括 Java 開發工具(Java Development Tools,JDT)。Eclipse 本身不帶有jdk。Eclipse是免安裝的,只需要在電腦上解壓後,雙擊Eclipse.exe就可以直接執行。不過在此之前必須要在電腦上安裝好jdk,並且在電腦上配置好路徑。檢視路徑配置好的辦法是:在dos環境下,打上java看有反應沒,然後再打上javac,如果都有反應(不報錯)那就是配置好了。Eclipse 用通俗的話來說就是一個寫java程式碼的工具,但卻不能夠進行java編譯。必須要藉助jdk。jdk中包含有java所有的封裝的類和方法,我們只需要呼叫即可。jdk是編寫Java的必須條件,沒有jdk那就不能執行java程式。但是沒有Eclipse可以照樣編寫java。例如可以用記事本寫一個Java程式,然後在安裝有jdk的環境下執行程式。主要的關係就是使用Eclipse更加的方便更加的又效率而且編寫的程式碼不容易出錯。初學者用Eclipse挺好的,不過現在的myEclipse的功能已經超過Eclipse了,Eclipse中功能MMyEclipse中全部都有。建議以後用MyEclipse!Eclipse的最大一個好處就是免安裝,非常方便。
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;D:\develop\hadoop-2.7.6\hadoop-2.7.6\bin;C:\Program Files\Microsoft VS Code\bin;D:\develop\hadoop-2.7.6\hadoop-2.7.6\sbin;%HADOOP_HOME%/bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY\;D:\soft\ffmpeg\bin
再就是配置相應的hadoop-eclipse-plugin。hadoop本地執行java程式,將結果返回到hdfs。因為只有一個節點,所以無法提交到叢集環境下執行。
Eclipse外掛jar檔案複製到plugins資料夾下,不能自動安裝
把platform.xml刪了,可到Eclipse根目錄下按CTRL+F進行查詢該檔案,
找到後刪除,Eclipse就會重新讀取Plugins目錄下的外掛並後進行安裝。
下載地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
電腦系統是64位win7,下載了jdk-windows-x64.exe版本。
安裝到D盤即可:D:\JDK1.8
環境變數配置:
在環境變數新增系統變數:JAVA_HOME:D:\JDK1.8
在path中新增:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
在CMD端執行命令:path,注意路徑中是否有空格,在環境變數中修改。然後關閉CMD,重新開啟即可。
在cmd終端執行命令:java
如果沒有報錯,且打印出相關資訊,說明安裝成功。
二、安裝Hadoop
2.1 下載Hadoop
下載地址:http://hadoop.apache.org/releases.html
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
選擇適當的穩定版本2.7.6,點選“binary” 即可開始下載。
Hadoop的Linux版本和Windows版本共用:hadoop-2.7.6.tar.gz
2.2 安裝Hadoop
將Hadoop安裝檔案解壓到指定目錄:D:\develop\hadoop-2.7.6
2.3 配置Hadoop的環境變數
在path中新增: D:\develop\hadoop-2.7.6\bin
2.4 配置Hadoop檔案
1.編輯“D:\develop\hadoop-2.7.6\etc\hadoop”下的core-site.xml檔案,內容如下,切記要一樣,並儲存。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--指定namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8010</value>
<description>HDFS的URI,檔案系統://namenode標識:埠號</description>
</property>
<!--用來指定使用hadoop時產生檔案的存放目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/D:/SDE/Hadoop2.7.6/workplace/tmp</value>
<description>namenode上本地的hadoop臨時資料夾</description>
</property>
</configuration>
2.編輯“D:\develop\hadoop-2.7.6\etc\hadoop”目錄下的hdfs-site.xml。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--指定hdfs儲存資料的副本數量-->
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本個數</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/D:/SDE/Hadoop2.7.6/workplace/name</value>
<description>namenode上儲存hdfs名字空間元資料 </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/D:/SDE/Hadoop2.7.6/workplace/data</value>
<description>datanode上資料塊的物理儲存位置</description>
</property>
</configuration>
3.編輯“D:\develop\hadoop-2.7.6\etc\hadoop”目錄下的mapred-site.xml(如果不存在將mapred-site.xml.template重新命名為mapred-site.xml)檔案。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--告訴hadoop以後MR執行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.編輯“D:\develop\hadoop-2.7.6\etc\hadoop”目錄下的yarn-site.xml檔案。
<?xml version="1.0"?>
<configuration>
<!--nomenodeManager獲取資料的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn的老大(ResourceManager)的地址-->
<!--****************-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
</configuration>
2.5 替換檔案
下載地址:
https://download.csdn.net/download/goodmentc/10528799
解壓,將全部bin目錄檔案替換hadoop目錄下的bin目錄。
2.6 執行hadoop
1.執行cmd視窗,執行:hdfs namenode -format。
2.執行cmd視窗,切換到hadoop的sbin目錄,執行start-all.cmd,它將會啟動以下4個程序視窗。
2.7 驗證
Resourcemanager GUI 地址 – http://localhost:8088
Namenode GUI 地址 – http://localhost:50070
如果這兩個地址都能夠開啟,說明執行成功。
接著我們可以啟動瀏覽器檢視datanode控制檯和mapreduce控制檯
http://localhost:50070為datanode
http://localhost:8088/cluster為mapreduce
Windows環境下采用eclipse連線Hadoop偽分散式叢集
遇到問題如下:1.下載eclipse,然後將hadoop-eclipse-kepler-plugin-2.7.3外掛拷貝到plugins下,發現用location那個方法始終連線不上,顯示兩種錯誤,一個是空指標異常,一個是map/reducelocation錯誤。嘗試多種方法,始終無法解決,左邊無法出現DFS目錄。解決辦法,是
a、File->New Project->Map/Reduce Project
b、匯入執行MapReduce所需的外部jar包
分別匯入以下資料夾下的包:
hadoop-2.6.0/share/hadoop/mapreduce下的所有jar包(子資料夾下的jar包不用)
hadoop-2.6.0/share/hadoop/common下的hadoop-common-2.6.0.jar
hadoop-2.6.0/share/hadoop/common/lib下的所有包
hadoop-2.6.0/share/hadoop/yarn下的所有包(子資料夾下的jar包不用)
hadoop-2.6.0/share/hadoop/hdfs下的hadoop-hdfs-2.6.0.jar
c、匯入兩個外部檔案到專案src資料夾中。
假設org資料夾以及log4j.properties檔案存在於一個“附加檔案”中。
右鍵單擊src->import->File system->附加檔案。
即可出現DFS目錄,也就是HDFS檔案目錄。
2.問題安裝eclipse後,並且加入hadoop-eclipse-kepler-plugin外掛卻看不到hadoop-map/reduce目錄。那是eclipse版本的問題。eclipse-standard-luna-SR2-win32-x86_64該版本親測可用,在官網下載。
3.要啟動hadoop,才可在DFS目錄下看到檔案,啟動後可右鍵點選選擇重新連線。
4.在新建的專案下,可看到wordcount檔案,執行時,有時會出現找不到hadoop_home錯誤。這時可在系統中新增HADOOP_HOME的環境變數,重新啟動計算機。
5.右鍵點選wordcount,run as run configurations,配置輸入檔案目錄,以及輸出檔案目錄,即可。注意輸入檔案目錄必須為hdfs系統檔案,不帶檔案屬性.txt。而不是主機系統檔案。