@sasaki
2016-05-12T07:56:12.000000Z
字数 11056
阅读 3918
BigData Hadoop
@Title MAC环境编译Hadoop 2.6@Version v1.0@Timestamp 2016-05-12 19:44@Author Nicholas@Mail redskirt@outlook.com
硬件环境:MacBook Pro Retina
软件环境:
解压hadoop-2.6.0-src.tar.gz至需要的路径,执行mvn编译
Nicholas-MacBook-Pro:hadoop-2.6.0-src sasaki$ mvn install -DskipTests
在进行到hadoop-common子项目时遇到如下异常:
[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 19.192 s[INFO] Finished at: 2016-05-12T09:51:44+08:00[INFO] Final Memory: 58M/284M[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.6.0:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException[ERROR][ERROR] After correcting the problems, you can resume the build with the command[ERROR] mvn <goals> -rf :hadoop-common
异常信息说描述得很清楚,当前环境缺少protocbuf组件,protobuf是GitHub一个很火的开源项目。
解决
下载protocol buffer工具:
https://developers.google.com/protocol-buffers/docs/downloads#latest-version
(链接地址需要梯子,你懂的)
Nicholas-MacBook-Pro:Downloads sasaki$ tar -zxvf protobuf-2.5.0.tar.gz# 解压并进入protobuf目录Nicholas-MacBook-Pro:Downloads sasaki$ cd protobuf-2.5.0Nicholas-MacBook-Pro:~ sasaki$ ls /opt/protobuf-2.5.0/CHANGES.txt config.log ltmain.shCONTRIBUTORS.txt config.status m4COPYING.txt config.sub missingINSTALL.txt configure protobuf-lite.pcMakefile configure.ac protobuf-lite.pc.inMakefile.am depcomp protobuf.pcMakefile.in editors protobuf.pc.inREADME.txt examples pythonaclocal.m4 generate_descriptor_proto.sh srcautogen.sh gtest stamp-h1config.guess install-sh vsprojectsconfig.h javaconfig.h.in libtool# 终端切换管理员Nicholas-MacBook-Pro:protobuf-2.6.1 sasaki$ sudo suPassword:sh-3.2# ./configure --prefix=/usr/local/protobuf...sh-3.2# make check...过程比较漫长...make[6]: Nothing to be done for `all-am`.============================================================================Testsuite summary for Protocol Buffers 2.6.1============================================================================# TOTAL: 5# PASS: 5# SKIP: 0# XFAIL: 0# FAIL: 0# XPASS: 0# ERROR: 0============================================================================# 执行编译sh-3.2# make install# 检票是否安装成功sh-3.2# protoc --versionlibprotoc 2.5.0# 添加到路径sh-3.2# ./configure --prefix=/usr
安装完protoc后再次执行编译,遇到如下异常
Exception in thread "main" java.lang.AssertionError: Missing tools.jar at: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/Classes/classes.jar. Expression: file.exists()at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:395)at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:683)at org.codehaus.mojo.jspc.CompilationMojoSupport.findToolsJar(CompilationMojoSupport.groovy:371)at org.codehaus.mojo.jspc.CompilationMojoSupport.this$4$findToolsJar(CompilationMojoSupport.groovy)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:606)at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912)at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:78)at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrent0(ScriptBytecodeAdapter.java:112)at org.codehaus.mojo.jspc.CompilationMojoSupport.execute(CompilationMojoSupport.groovy:318)at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)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:116)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)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:606)at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
报错说在/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/Classes目录下没有classes.jar文件,但是我尝试进入该目录发现并没有../Classes/目录,结合上下文说缺失tools.jar文件,tools.jar本身是jdk安装目录自带的一个jar,但这里却说该目录没有,无奈Google之,发现解决方式很简单。
解决
找到$JAVA_HOME$/lib目录下的tools.jar,复制到报错的目录并重命名为classes.jar文件即可。
Nicholas-MacBook-Pro:Classes sasaki$ pwd/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/ClassesNicholas-MacBook-Pro:Classes sasaki$ sudo ln -s ../lib/tools.jar classes.jarNicholas-MacBook-Pro:Classes sasaki$ lsclasses.jar
再次执行编译,一路顺畅,编译完成。
[INFO] ------------------------------------------------------------------------[INFO] Reactor Summary:[INFO][INFO] Apache Hadoop Main ................................. SUCCESS [ 2.021 s][INFO] Apache Hadoop Project POM .......................... SUCCESS [ 0.984 s][INFO] Apache Hadoop Annotations .......................... SUCCESS [ 1.269 s][INFO] Apache Hadoop Project Dist POM ..................... SUCCESS [ 0.898 s][INFO] Apache Hadoop Assemblies ........................... SUCCESS [ 0.352 s][INFO] Apache Hadoop Maven Plugins ........................ SUCCESS [ 3.099 s][INFO] Apache Hadoop MiniKDC .............................. SUCCESS [ 0.976 s][INFO] Apache Hadoop Auth ................................. SUCCESS [ 1.403 s][INFO] Apache Hadoop Auth Examples ........................ SUCCESS [ 1.706 s][INFO] Apache Hadoop Common ............................... SUCCESS [ 17.642 s][INFO] Apache Hadoop NFS .................................. SUCCESS [ 0.344 s][INFO] Apache Hadoop KMS .................................. SUCCESS [ 2.618 s][INFO] Apache Hadoop Common Project ....................... SUCCESS [ 0.041 s][INFO] Apache Hadoop HDFS ................................. SUCCESS [ 40.273 s][INFO] Apache Hadoop HttpFS ............................... SUCCESS [ 3.332 s][INFO] Apache Hadoop HDFS BookKeeper Journal .............. SUCCESS [ 1.027 s][INFO] Apache Hadoop HDFS-NFS ............................. SUCCESS [ 0.803 s][INFO] Apache Hadoop HDFS Project ......................... SUCCESS [ 0.056 s][INFO] hadoop-yarn ........................................ SUCCESS [ 0.082 s][INFO] hadoop-yarn-api .................................... SUCCESS [ 3.896 s][INFO] hadoop-yarn-common ................................. SUCCESS [ 4.698 s][INFO] hadoop-yarn-server ................................. SUCCESS [ 0.038 s][INFO] hadoop-yarn-server-common .......................... SUCCESS [ 1.289 s][INFO] hadoop-yarn-server-nodemanager ..................... SUCCESS [ 2.358 s][INFO] hadoop-yarn-server-web-proxy ....................... SUCCESS [ 0.730 s][INFO] hadoop-yarn-server-applicationhistoryservice ....... SUCCESS [ 1.390 s][INFO] hadoop-yarn-server-resourcemanager ................. SUCCESS [ 3.952 s][INFO] hadoop-yarn-server-tests ........................... SUCCESS [ 0.893 s][INFO] hadoop-yarn-client ................................. SUCCESS [ 1.084 s][INFO] hadoop-yarn-applications ........................... SUCCESS [ 0.055 s][INFO] hadoop-yarn-applications-distributedshell .......... SUCCESS [ 0.749 s][INFO] hadoop-yarn-applications-unmanaged-am-launcher ..... SUCCESS [ 0.494 s][INFO] hadoop-yarn-site ................................... SUCCESS [ 0.054 s][INFO] hadoop-yarn-registry ............................... SUCCESS [ 1.142 s][INFO] hadoop-yarn-project ................................ SUCCESS [ 0.230 s][INFO] hadoop-mapreduce-client ............................ SUCCESS [ 0.151 s][INFO] hadoop-mapreduce-client-core ....................... SUCCESS [ 3.719 s][INFO] hadoop-mapreduce-client-common ..................... SUCCESS [ 1.926 s][INFO] hadoop-mapreduce-client-shuffle .................... SUCCESS [ 0.686 s][INFO] hadoop-mapreduce-client-app ........................ SUCCESS [ 2.048 s][INFO] hadoop-mapreduce-client-hs ......................... SUCCESS [ 1.281 s][INFO] hadoop-mapreduce-client-jobclient .................. SUCCESS [ 2.564 s][INFO] hadoop-mapreduce-client-hs-plugins ................. SUCCESS [ 0.440 s][INFO] Apache Hadoop MapReduce Examples ................... SUCCESS [ 0.902 s][INFO] hadoop-mapreduce ................................... SUCCESS [ 0.144 s][INFO] Apache Hadoop MapReduce Streaming .................. SUCCESS [ 0.916 s][INFO] Apache Hadoop Distributed Copy ..................... SUCCESS [ 23.791 s][INFO] Apache Hadoop Archives ............................. SUCCESS [ 0.668 s][INFO] Apache Hadoop Rumen ................................ SUCCESS [ 1.217 s][INFO] Apache Hadoop Gridmix .............................. SUCCESS [ 1.033 s][INFO] Apache Hadoop Data Join ............................ SUCCESS [ 0.565 s][INFO] Apache Hadoop Ant Tasks ............................ SUCCESS [ 0.334 s][INFO] Apache Hadoop Extras ............................... SUCCESS [ 0.714 s][INFO] Apache Hadoop Pipes ................................ SUCCESS [ 0.055 s][INFO] Apache Hadoop OpenStack support .................... SUCCESS [ 0.869 s][INFO] Apache Hadoop Amazon Web Services support .......... SUCCESS [ 3.328 s][INFO] Apache Hadoop Client ............................... SUCCESS [ 0.629 s][INFO] Apache Hadoop Mini-Cluster ......................... SUCCESS [ 0.235 s][INFO] Apache Hadoop Scheduler Load Simulator ............. SUCCESS [ 0.883 s][INFO] Apache Hadoop Tools Dist ........................... SUCCESS [ 0.621 s][INFO] Apache Hadoop Tools ................................ SUCCESS [ 0.058 s][INFO] Apache Hadoop Distribution ......................... SUCCESS [ 0.209 s][INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 02:36 min[INFO] Finished at: 2016-05-12T14:54:57+08:00[INFO] Final Memory: 182M/546M[INFO] ------------------------------------------------------------------------