IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Windows下开发Hadoop2.2.0程序

    book_mmicky发表于 2014-05-13 15:22:43
    love 0
    在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> 


沪ICP备19023445号-2号
友情链接