天天看點

Hadoop:Windows 7 32 Bit 編譯與運作

1.windows 7 32 bit os(你懂的)

2.(hadoop-2.2.0.tar.gz)

3.(hadoop-2.2.0-src.tar.gz)

3.

4.(apache-maven-3.2.1-bin.zip)

5.

6.

7.

apache hadoop

2.x推薦運作環境是64bit機器,因為實際運作過程中要超過4gb記憶體嘛!32bit适合個人開發調試學習使用。

 前言:由于apache hadoop

2.2.0發行版使用的動态連結庫(bin\hadoop.dll、libwinutils.lib、winutils.exe)是windows

64bit的,是以需要使用源代碼重新編譯成32bit的(有可能你下載下傳回來的hadoop-2.2.0.tar.gz發行包裡沒有這些windows動态庫的)。如果你的系統盤是ssd的話,建議将安裝在c盤根目錄。

(工具軟體:3,4,5,6,7)安裝過程不再詳述,一路next就行(javase推薦根目錄:c:\java)。重點在環境變量的配置部分,增加以下環境變量到“系統變量”中(java路徑不能有空格):

java_home=c:\java\jdk1.7.0_45

platform=win32

m2_home=c:\apache-maven-3.2.1

path=;c:\cygwin\bin;c:\apache-maven-3.2.1\bin;c:\protoc-2.5.0-win32;

配置示例(别忘了設定path哦):

Hadoop:Windows 7 32 Bit 編譯與運作
Hadoop:Windows 7 32 Bit 編譯與運作

将hadoop-2.2.0-src.tar.gz源代碼解壓到d盤根目錄,看上去路徑如下:d:\hadoop-2.2.0\

apache hadoop svn 代碼庫位址:

需要手工修正源代碼的幾處編譯錯誤:

修改檔案:\hadoop-common-project\hadoop-auth\pom.xml

修改内容:在大約56行的位置增加一個xml配置節點。

<dependency>

  <groupid>org.mortbay.jetty</groupid>

  <artifactid>jetty-util</artifactid>

  <scope>test</scope>

</dependency>

修改示例:

Hadoop:Windows 7 32 Bit 編譯與運作

修改檔案:hadoop-common-project\hadoop-common\src\main\native\native.sln

修改内容:用記事本打開檔案。

替換内容:

globalsection(projectconfigurationplatforms) =

postsolution

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|mixed

platforms.activecfg =

release|x64

platforms.build.0 =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|win32.activecfg =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|win32.build.0 =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|x64.activecfg =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.debug|x64.build.0 =

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|mixed

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|win32.activecfg

= release|x64

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|win32.build.0

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|x64.activecfg

{4c0c12d2-3cb0-47f8-bcd0-55bd5732dfa7}.release|x64.build.0 =

endglobalsection

新内容:

release|win32

=

Hadoop:Windows 7 32 Bit 編譯與運作

修改檔案:hadoop-common-project\hadoop-common\src\main\native\native.vcxproj

修改内容:

查找替換”release|x64“為”release|win32“

查找替換”<platform>x64</platform>“為”<platform>win32</platform>“

Hadoop:Windows 7 32 Bit 編譯與運作

右鍵單擊”d:\hadoop-2.2.0“檔案夾,選擇”管理者取得所有權“。否則編譯過程中可能會發生”拒絕通路“錯誤(右鍵沒有顯示該菜單的,自行網上查找系統資料庫修改方法)。

 打開“開始”--“所有程式”--“microsoft windows sdk v7.1”--“windows sdk 7.1 command

prompt”,進入vc++的指令行工具(一定要從此處進入方可順利編譯hadoop源代碼,記着是以管理者身份運作)。指令如下:

切換至源代碼根目錄,執行編譯指令:mvn package -pdist,native-win -dskiptests -dtar

示例運作結果

setting sdk environment relative to c:\program files\microsoft sdks\windows\v7.1 \. targeting windows 7 x86 debug c:\windows\system32>d: d:\>cd d:\hadoop-2.2.0 d:\hadoop-2.2.0>mvn package -pdist,native-win -dskiptests -dtar ................................2.2.1版本編譯完成大約需要16分鐘左右
Hadoop:Windows 7 32 Bit 編譯與運作
................................2.4.0版本編譯完成大約需要22分鐘左右(覺得編譯過程慢的話:)
Hadoop:Windows 7 32 Bit 編譯與運作

hadoop編譯成功後,程式集輸出在: hadoop-common-project\hadoop-common\target\hadoop-common-2.2.0目錄下。

1.解壓縮”hadoop-2.2.0.tar.gz“至d盤如下目錄:d:\hadoop-common-2.2.0

2.合并替換發行版本的64動态連結庫:主要是是以下幾個檔案(bin\hadoop.dll、bin\hadoop.exp、bin\hadoop.lib、bin\hadoop.pdb、bin\libwinutils.lib、bin\winutils.exe、bin\winutils.pdb),從編譯成功後的輸出目錄copy到apache發行版形同目錄下替換即可。

3.修改配置檔案

core-site.xml

hdfs-site.xml

其他配置檔案保持預設即可。

4.配置hadoop hdfs運作環境變量(重要)

hadoop_home=d:\hadoop-common-2.2.0

path=d:\hadoop-common-2.2.0\bin

5.格式化hdfs檔案系統

以管理者身份打開指令行,并切換到:d:\hadoop-common-2.2.0\bin目錄下,執行指令:

hadoop namenode -format

如果不出意外,hdfs檔案系統将格式化成功,你會在d:\hadoop-bin\data看到已經生成了namenode檔案夾。

6.啟動hadoop hdfs伺服器

同樣管理者身份指令行,切換到:d:\hadoop-common-2.2.0\sbin目錄下,執行指令:

start-all.cmd

Hadoop:Windows 7 32 Bit 編譯與運作

不出意外,用浏覽器打開:http://localhost:8042 或者 http://localhost:50070

會有驚喜哦!記得别把本地的端口占用了。

Hadoop:Windows 7 32 Bit 編譯與運作
Hadoop:Windows 7 32 Bit 編譯與運作

7.上傳檔案到hdfs

如果你對指令行熟悉的話,可以采用指令行的方式推送的hdfs。如果你的hdfs-site.xml配置檔案時copy我以上的示例的話,那麼webhdfs預設是開啟的,什麼意思?就是通過http

restfull風格api管理檔案哦!另外還要記得把dfs.permissions設定為false,要不你沒有權限上傳檔案的哦!

推薦個hdfs檔案管理工具:red gate software ltd(大名鼎鼎的red gate)

Hadoop:Windows 7 32 Bit 編譯與運作

上傳檔案到hdfs

Hadoop:Windows 7 32 Bit 編譯與運作

8.停止hadoop hdfs伺服器

stop-all.cmd

windows 64 bit是有它自己的道理的,雖然通過一些努力編譯出了32bit環境下的程式。。。

Hadoop:Windows 7 32 Bit 編譯與運作

你還可以用我編譯好的32bit程式先撸一把:http://yunpan.cn/qnbm3rzxf2l8x  通路密碼 e9b3