hadoop源码编译

    进度好慢!

    最近在学习hadoop,上次安装环境到这次已经经历了好长时间了,以下介绍使用maven编译hadoop源码时遇到的问题。

    环境:eclipse+maven

    根据官网教程下载源码(http://wiki.apache.org/hadoop/EclipseEnvironment),

git clone git://git.apache.org/hadoop-common.git
    下载完成源码之后根据教程编译,于是,噩梦出现:

    1.编译时报“是sun的专用api,可能在未来版本删除”,此问题原因是maven编译插件没有配置版本号或者配置的版本号过低,需修改maven配置,如下;

<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.5.1</version> 
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
          </configuration>
        </plugin>
    2.编译时需使用protoc2.4,此包最新的(目前最新2.5)不好用;

    3.解决完以上两个问题之后,还是报错:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (compile-ms-winutils) on project hadoop-common: Command execution failed. Cannot run program "msbuild" (in directory "D:\otherworkspace\hadoop-common\hadoop-common-project\hadoop-common"): CreateProcess error=2, ?????????????????? -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (compile-ms-winutils) on project hadoop-common: Command execution failed.
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Command execution failed.
	at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:350)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
	... 19 more
Caused by: java.io.IOException: Cannot run program "msbuild" (in directory "D:\otherworkspace\hadoop-common\hadoop-common-project\hadoop-common"): CreateProcess error=2, ??????????????????
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	at java.lang.Runtime.exec(Runtime.java:615)
	at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
	at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:246)
	at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:302)
	at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:149)
	at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:589)
	at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:335)
	... 21 more
Caused by: java.io.IOException: CreateProcess error=2, ??????????????????
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(ProcessImpl.java:189)
	at java.lang.ProcessImpl.start(ProcessImpl.java:133)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
	... 28 more
[ERROR] 
    这次,没有解决,就用了个粗暴的方法,将$HADOOP/hadoop-common-project/hadoop-common/pom.xml中第636--667(msbuild)注释掉,最终提示编译通过。

    这么做虽然编译通过了,但是在导入项目的时候还是有问题,有些项目缺少依赖的类,这部分只有等下次再解决了。- -

    新手学这个确实感觉很吃力,哪位高人能不能给指点下~~    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值