1.Windows 7 32 Bit OS(你懂的)html
2.Apache Hadoop 2.2.0-bin(hadoop-2.2.0.tar.gz)java
3.Apache Hadoop 2.2.0-src(hadoop-2.2.0-src.tar.gz)node
3.JDK 1.7web
4.Maven 3.2.1(apache-maven-3.2.1-bin.zip)apache
5.Protocol Buffers 2.5.0windows
6.Unix command-line tool Cygwin(Setup-x86.exe)瀏覽器
7.Microsoft Windows SDK v7.1服務器
Apache Hadoop 2.X推薦運行環境是64Bit機器,由於實際運行過程當中要超過4GB內存嘛!32Bit適合我的開發調試學習使用。oracle
前言:因爲Apache Hadoop 2.2.0發行版使用的動態連接庫(bin\hadoop.dll、libwinutils.lib、winutils.exe)是Windows 64bit的,因此須要使用源代碼從新編譯成32bit的(有可能你下載回來的hadoop-2.2.0.tar.gz發行包裏沒有這些Windows動態庫的)。若是你的系統盤是SSD的話,建議將安裝在C盤根目錄。maven
(工具軟件: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 DebugC:\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環境下的程序。。。
你還能夠用我編譯好的32Bit程序先擼一把:http://yunpan.cn/Qir4aFYb96jkL 訪問密碼 a873