1. 程式人生 > >windows7搭建本地hadoop環境

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。而不是主機系統檔案。