Windows下开发Hadoop2.2.0程序

来源:互联网 发布:程序员纹身代码图案 编辑:程序博客网 时间:2024/05/23 12:25
在windows使用eclipse开发 hadoop2.2.0程序的时候,会提示没有winutils.exe的错误,需要在windows端编译源代码才能解决。
Windows下开发Hadoop2.2.0程序 - mmicky - mmicky 的博客
 
一:准备工作
1:相关软件包下载并安装
Apache Hadoop 2.2.0 Source codes
Microsoft Windows SDK for Windows 7 and .NET Framework 4
Maven
Protocol Buffers 2.5.0
Cygwin
JDK
findbugs

2:系统环境变量设置
JAVA_HOME=C:\Java\jdk631
M2_HOME=E:\App\maven305
Platform=x64
Path增加;C:\cygwin64\bin;%M2_HOME%\bin

二:编译和安装
参考文档:Build, Install, Configure and Run Apache Hadoop 2.2.0 in Microsoft Windows OS
1:编译
将hadoop2.2.0的源代码解压缩到d:\hadoop220_src。
开始-->所有程序--> Microsoft Windows SDK v7.1-->Windows SDK 7.1 Command Prompt 
在命令符中切换到d:\hadoop220_src,然后运行:
mvn package -Pdist,native-win -DskipTests -Dtar
Windows下开发Hadoop2.2.0程序 - mmicky - mmicky 的博客
 
编译的时候可能会出现下面的错误:
A:Apache Hadoop Auth模块
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:
[ERROR] D:\hadoop220_src\hadoop-common-project\hadoop-auth\src\test\java\org\apache\hadoop\security\authentication\client\AuthenticatorTestCase.java:[86,13] 无法访问 org.mortbay.component.AbstractLifeCycle
解决方法:
===================================================================
修改:D:\hadoop220_src\hadoop-common-project\hadoop-auth\pom.xml
     <dependency>
       <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
       <artifactId>jetty</artifactId>
       <scope>test</scope>
     </dependency>
===================================================================
参考文档:hadoop-auth has a build break due to missing dependency  

B:Apache Hadoop Common模块
出现了protoc找不到的错误
解决方法:
===================================================================
上http://code.google.com/p/protobuf/downloads/list下载一个已经编译的protoc.exe(或者在VS里面用源码编译一下),然后将该文件的目录加入PATH环境变量
===================================================================
Windows下开发Hadoop2.2.0程序 - mmicky - mmicky 的博客
 编译成功,生成的安装包在D:\hadoop220_src\hadoop-dist\target下

2:安装
A:将D:\hadoop220_src\hadoop-dist\target解压缩到e:\app\hadoop220_win目录下,并将hadoop集群的配置文件复制到e:\app\hadoop220_win\etc\hadoop下,主要有以下几个配置文件:
hdfs-site.xml
core-site.xml
mapred-site.xml
yar-site.xml
masters
slaves

B:增加环境变量
将HADOOP_HOME=e:\app\hadoop220_src加入环境变量;将%HADOOP_HOME%\bin加入PATH环境变量。

3:测试
使用eclipse对WordCount程序进行测试,除了中间出了点权限的问题,顺利通过。
Windows下开发Hadoop2.2.0程序 - mmicky - mmicky 的博客
  
同时可以使用命令提示符来查看运行结果:
Windows下开发Hadoop2.2.0程序 - mmicky - mmicky 的博客
 
4:Tips
A:由于windows是使用用户的登录名连接hadoop集群的,所以需要将hdfs-site.xml中访问权限参数为false:
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property> 
0 0
原创粉丝点击