Hadoop:Windows 7 32 Bit 編譯與運行


所需工具

1.Windows 7 32 Bit OS(你懂的)

2.Apache Hadoop 2.2.0-bin(hadoop-2.2.0.tar.gz)

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

3.JDK 1.7

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

5.Protocol Buffers 2.5.0

6.Unix command-line tool Cygwin(Setup-x86.exe)

7.Microsoft Windows SDK v7.1

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-2.2.0-src.tar.gz源代碼解壓到D盤根目錄,看上去路徑如下:D:\hadoop-2.2.0\

Apache Hadoop svn 代碼庫地址:http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0

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

第一處:

修改文件:\hadoop-common-project\hadoop-auth\pom.xml

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

<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-util</artifactId>
  <scope>test</scope>
</dependency>

修改示例:

第二處:

修改文件:hadoop-common-project\hadoop-common\src\main\native\native.sln

修改內容:用記事本打開文件。

替換內容:

GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Mixed Platforms.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Mixed Platforms.Build.0 = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.Build.0 = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.Build.0 = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Mixed Platforms.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Mixed Platforms.Build.0 = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.Build.0 = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.Build.0 = Release|x64
EndGlobalSection

新內容:

GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.ActiveCfg = Release|Win32
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|Win32.Build.0 = Release|Win32
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Debug|x64.Build.0 = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.ActiveCfg = Release|Win32
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|Win32.Build.0 = Release|Win32
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.ActiveCfg = Release|x64
{4C0C12D2-3CB0-47F8-BCD0-55BD5732DFA7}.Release|x64.Build.0 = Release|x64
EndGlobalSection

修改示例:

第三處:

修改文件:hadoop-common-project\hadoop-common\src\main\native\native.vcxproj

修改內容:

查找替換”Release|x64“為”Release|Win32“

查找替換”<Platform>x64</Platform>“為”<Platform>Win32</Platform>“

修改示例:

第四處:

右鍵單擊”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分鍾左右

................................2.4.0版本編譯完成大約需要22分鍾左右(覺得編譯過程慢的話:自己動手配置鏡像服務器)

 

 

配置運行

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

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://localhost:9000</value>
	</property>
</configuration>

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/hadoop-bin/data/namenode</value>
    </property>	
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/hadoop-bin/data/datanode</value>
    </property>	
	<property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>	
	<property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

其他配置文件保持默認即可。

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

不出意外,用瀏覽器打開:http://localhost:8042 或者 http://localhost:50070 會有驚喜哦!記得別把本地的端口占用了。

7.上傳文件到HDFS

如果你對命令行熟悉的話,可以采用命令行的方式推送的HDFS。如果你的hdfs-site.xml配置文件時Copy我以上的示例的話,那么WEBHDFS默認是開啟的,什么意思?就是通過Http RestFull風格API管理文件哦!另外還要記得把dfs.permissions設置為false,要不你沒有權限上傳文件的哦!

推薦個HDFS文件管理工具:Red Gate Software Ltd(大名鼎鼎的Red Gate)

上傳文件到HDFS

8.停止Hadoop HDFS服務器

同樣管理員身份命令行,切換到:D:\hadoop-common-2.2.0\sbin目錄下,執行命令:

stop-all.cmd

編后語

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

參考鏈接

 http://www.srccodes.com/p/article/38/build-install-configure-run-apache-hadoop-2.2.0-microsoft-windows-os

 

你還可以用我編譯好的32Bit程序先擼一把:http://yunpan.cn/Qir4aFYb96jkL  訪問密碼 a873

 


免責聲明!

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



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