1. 程式人生 > >編譯Windows版本的hadoop

編譯Windows版本的hadoop

在Windows上構建和安裝Hadoop 2.x及以上的版本。hadoop建議在linux上執行,但是作為開發人員,一般大家使用的開發環境都是windows,因此構建windows版本的hadoop可以大大的方便MR的開發和測試。一、介紹Hadoop沒有官方的Windows二進位制版本,然而,從原始碼構建windows版本是相當的容易。二、構建Hadoop Core2.1 選擇OS版本。Windows Server 2008 和 Windows Server 2008 R2 處於開發和測試中。Vista 和windows 7應該也是可以的。不要使用Cygwin來執行。Cygwin不需要,也是不支援的。2.2 選擇JAVA版本,設定JAVA_HOMEjdk 1.7和1.6已經通過測試。測試:java -version2.3 獲取Hadoop 原始碼本文下的是2.9.0版本。2.4 安裝依賴並設定構建環境仔細閱讀原始碼包中的BUILDI
NG.txtWindows上依賴的軟體。* Windows System* JDK 1.8+* Maven 3.3 or later測試:mvn -version* Findbugs 1.3.9 (if running findbugs)這個可以不需要。* ProtocolBuffer 2.5.0備註:直接下載protoc-2.5.0-win32.zip,使用編譯好的protoc.exe,並加入到path裡面。* CMake 2.6 or newer* Windows SDK 7.1 or Visual Studio 2010 Professional安裝如下軟體:Visual Studio 2010Visual Studio 2010 SP1備註
: 如果64位版本不能編譯的話,還需要安裝VC-Compiler-KB2519277.exe* Windows SDK 8.1 (if building CPU rate control for the container executor)這個可以不需要。* zlib headers (if building native code bindings for zlib)編譯windows的版本進入zlib原始碼目錄mkdir installcd installcmake -G "Visual Studio 15 2017" -A x64 ../cmake --build .備註:上面的是編譯出了Debug版本。編譯Release版本: MSBuild zlib.sln /t:Rebuild /p:Configuration=Release需要拷貝出來的標頭檔案(.h)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)* Unix command-line tools from GnuWin32: sh, mkdir, rm, cp, tar, gzip. These tools must be present on your PATH.建議安裝git, 將git/bin目錄加入到path環境變數中。* Python ( for generation of docs using 'mvn site')* patch for windows.解壓到:C:\Java\patch-2.5.92.5 修改vs專案的預處理項。WSCE_CONFIG_DIR=$(WsceConfigDir)WSCE_CONFIG_FILE=$(WsceConfigFile)備註: 參考附錄部分。2.6 開始編譯。在Linux上,Hadoop的Native API支援是可選的,但是在Windows平臺上卻是必須的。確保根據building.txt正確構建本地IO的支援。a 進入命令提示介面(以管理員身份執行)b 依次執行如下命令set Platform=x64set ZLIB_HOME=C:\Java\zlib-1.2.7set path=%path%;C:\Program Files\Git\bin;C:\Java\patch-2.5.9\binmvn package -Pdist,native-win -Pdocs -Dtar -DskipTests// -Psrc 的選項不能要,會出錯誤。附錄A: libwinutils編譯錯誤原因是取不到值。:WSCE_CONFIG_DIR=$(WsceConfigDir)WSCE_CONFIG_FILE=$(WsceConfigFile)專案的配置
根據hadoop-common\pom.xml裡面的東西來修改。 <properties> <hadoop.component>common</hadoop.component> <is.hadoop.component>true</is.hadoop.component> <is.hadoop.common.component>true</is.hadoop.common.component> <wsce.config.dir>../etc/hadoop</wsce.config.dir> <wsce.config.file>wsce-site.xml</wsce.config.file> </properties>然後再編譯vs的專案就可以成功了。附錄B winutils連線錯誤:LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt備註:安裝VS 2010 SP1即解決問題。附錄C hadoop-aws編譯不通過的問題。Could not find artifact com.amazonaws:DynamoDBLocal放到本地倉庫如下地址:mavenrepo\com\amazonaws\DynamoDBLocal\1.11.86