编译ant compile-native遇到的一些问题

来源:互联网 发布:知乎 东邪西毒讲的什么 编辑:程序博客网 时间:2024/05/22 00:30

环境:

Ubuntu Server12.04

Hadoop1.2.1


问题1:缺少autoreconf

hadoop@grc:~/hadoop-1.2.1$ ant compile-native Buildfile: /home/hadoop/hadoop-1.2.1/build.xmlcompile-native:create-native-configure:BUILD FAILED/home/hadoop/hadoop-1.2.1/build.xml:627: The following error occurred while executing this line:/home/hadoop/hadoop-1.2.1/build.xml:634: Execute failed: java.io.IOException: Cannot run program "autoreconf" (in directory "/home/hadoop/hadoop-1.2.1/src/native"): error=2, No such file or directoryat java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)at java.lang.Runtime.exec(Runtime.java:617)at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:41)at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628)at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)at org.apache.tools.ant.Task.perform(Task.java:348)at org.apache.tools.ant.Target.execute(Target.java:435)at org.apache.tools.ant.Target.performTasks(Target.java:456)at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)at org.apache.tools.ant.Project.executeTargets(Project.java:1248)at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:440)at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)at org.apache.tools.ant.Task.perform(Task.java:348)at org.apache.tools.ant.Target.execute(Target.java:435)at org.apache.tools.ant.Target.performTasks(Target.java:456)at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)at org.apache.tools.ant.Project.executeTarget(Project.java:1364)at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)at org.apache.tools.ant.Project.executeTargets(Project.java:1248)at org.apache.tools.ant.Main.runBuild(Main.java:851)at org.apache.tools.ant.Main.startAnt(Main.java:235)at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)Caused by: java.io.IOException: error=2, No such file or directoryat java.lang.UNIXProcess.forkAndExec(Native Method)at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)at java.lang.ProcessImpl.start(ProcessImpl.java:130)at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)... 36 moreTotal time: 0 seconds

解决方法:安装下就解决了

hadoop@grc:~/hadoop-1.2.1$ sudo apt-get install autoconf libtool


问题2:编译过程中卡在ivy-retrieve-common这段代码上很长时间

愿意是因为主要是这个target 依赖的jar比较多,且在第一次编译的时候都需要联网下载。
build.xml 代码块:

<target name="ivy-resolve-common" depends="ivy-init">    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="common"  log="${loglevel}"/>  </target>
viy.xml 依赖列举部分代码块:
<!--Private configurations. -->    <conf name="common" visibility="private" extends="runtime,mandatory,httpclient,ftp,jetty"                      description="common artifacts"/> <conf name="mandatory" description="contains the critical  dependencies"      extends="commons-logging,log4j"/>    <!--Configuration: commons-logging -->    <!--it is essential that only the master JAR of commons logging    is pulled in, as its dependencies are usually a mess, including things    like out of date servlet APIs, bits of Avalon, etc.    -->    <dependency org="commons-logging"      name="commons-logging"      rev="${commons-logging.version}"      conf="commons-logging->master"/>
总共最终在~/.viy/cache 下 缓存了24M的文件。慢是正常的,不要出现连接超时就是不错的。

问题3:

[exec] configure: error: Zlib headers were not found... native-hadoop library needs zlib to build. Please install the requisite zlib development package.     [exec] checking zlib.h usability... no     [exec] checking zlib.h presence... no     [exec] checking for zlib.h... noBUILD FAILED/home/hadoop/hadoop-1.2.1/build.xml:627: The following error occurred while executing this line:/home/hadoop/hadoop-1.2.1/build.xml:694: exec returned: 1Total time: 20 minutes 23 seconds

解决方法:安装zlib
1、从官网下载zlib包。官方网站:http://www.zlib.net
2、解压 tar -zxvf zlib-1.2.8.tar.gz (目前最新的版本是1.2.8)
3、$cd zlib-1.2.8
4、$ ./configure 
5、$make
6、$sudo make install
安装完成

0 0
原创粉丝点击