eclipse导入/编译hadoop源代码
来源:互联网 发布:邹市明被吹黑哨知乎 编辑:程序博客网 时间:2024/05/21 17:07
1. 确保安装好JDK和eclipse
详细教程见: http://blog.csdn.net/kangdakangdaa/article/details/11364985
2. 安装 Subclipse(Eclipse 的 SVN 插件)
用于从 Hadoop 获得源代码。我们使用 eclipse 自带的软件安装功能,通过 Subclipse 提供的地址自动下载安装该插件。
- 首先访问http://subclipse.tigris.org,在Download and Install页面找到与Eclipse版本合适的Subclipse版本,最新为1.6,将其Eclipse update site URL(即http://subclipse.tigris.org/update_1.6.x)复制下来;
- 然后打开 eclipse 的菜单 Help > Install New Software,单击 Add 按钮,填入刚才复制的安装地址(即 http://subclipse.tigris.org/update_1.6.x),可将该地址取名为subclipse;点击OK回到 Install 窗口,选择 Subclipse,而后按 Next 逐步安装。
- 此外,还需安装 SVN 所需的 JavaHL,执行如下命令行:
$ sudo apt-get install libsvn-java
但是实际上我发现在eclipse的选项中将SVN改成另外的一个库就可以了。。
Sudo apt-get install subversion subversion-tools
个人理解:
问题场景
一 .先将下载和编译源码的工具都装好:要注意版本
安装步骤:
1、安装Java和Eclipse(具体步骤略)
2、安装 Subclipse(Eclipse 的 SVN 插件)
用于从 Hadoop 获得源代码。我们使用 eclipse 自带的软件安装功能,通过 Subclipse 提供的地址自动下载安装该插件。
- 首先访问http://subclipse.tigris.org,在Download and Install页面找到与Eclipse版本合适的Subclipse版本,最新为1.6,将其Eclipse update site URL(即http://subclipse.tigris.org/update_1.6.x)复制下来;
- 然后打开 eclipse 的菜单 Help > Install New Software,单击 Add 按钮,填入刚才复制的安装地址(即 http://subclipse.tigris.org/update_1.6.x),可将该地址取名为subclipse;点击OK回到 Install 窗口,选择 Subclipse,而后按 Next 逐步安装。
- 此外,还需安装 SVN 所需的 JavaHL,执行如下命令行:
$ sudo apt-get install libsvn-java - 在eclipse.ini中加入 -Djava.library.path=/usr/lib/i386-linux-gnu/jni
4、输入命令sudo apt-get install git-core安装git
5、sudo apt-get install maven2安装的maven版本过低,如果已安装,则输入命令
6、输入命令sudo apt-get install g++安装编译环境,为下一步做准备
7、输入命令
二 . 按照官网http://wiki.apache.org/hadoop/EclipseEnvironment指导,要把Hadoop下载到本地,并构建Eclipse开发环境,只需要三条指令:
$ git clone git://git.apache.org/hadoop-common.git
$ mvn install -DskipTests
$ mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
在编译过程中遇到一些问题,在本文后面有相关解决办法。
两个插件都装好后就可以用maven工程导入hadoop源代码了。
打包命令:mvn install -Pdist -Dtar -DskipTests=true
生成:hadoop-dist/target/hadoop-0.24.0-SNAPSHOT.tar.gz
参考网址:
http://monton76.blog.163.com/blog/static/378380722012318882158/
http://wiki.apache.org/hadoop/EclipseEnvironment
http://stardust1900.blog.163.com/blog/static/141127703201182014421993
http://blog.csdn.net/basicthinker/article/details/6174442#comments
问题解决办法:
1. Eclipse并安装Subclipse1.6x插件后,使用svn过程中报如下错误:
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
/opt/local/lib/libsvnjavahl-1.0.0.0.dylib: no suitable image found. Did find: /opt/local/lib/libsvnjavahl-1.0.0.0.dylib: mach-o, but wrong architecture
原来是缺少一些关联文件,去subclipse的Wiki看了看,说需要安装libsvn-java,在Ubuntu 下安装很简单,命令如下:
sudo apt-get install libsvn-java
安装完后,这文件在/usr/lib/jni目录下,这个目录并不是eclipse的java.library.path路径之一,所以还需要修改eclipse.ini来告诉eclipse去哪找这个libsvn-java相关的文件.
打开eclipse.ini,在最后行加入如下内容(注意换行)
-Djava.library.path=/usr/lib/jni(如果是linux 32位系统,目录为/usr/lib/i386-linux-gnu/jni)-Djava.library.path=/usr/share/java/问题:Ubuntu Incompatible JavaHL library loaded. 1.7.x or later required参考链接:http://www.linuxidc.com/Linux/2013-01/78714.htm问题:eclipse-subclipse:unable to load default SVN Client 卸载svn1.8.x版本,装1.6的版本参考网址:http://wenku.baidu.com/view/306e6527482fb4daa58d4b3c.html
从hadoop svn co出来代码后 mvn clean install -Dmaven.test.skip碰到的问题及解决
svn checkout http://svn.apache.org/repos/asf/hadoop/common/trunk/ hadoop-trunk
5.org.apache.maven.plugin.MojoExecutionException: protoc failure
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (compile-proto) on project hadoop-common: An Ant BuildException has occured: exec returned: 127 -> [Help 1]org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (compile-proto) on project hadoop-common: An Ant BuildException has occured: exec returned: 127 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) at... Caused by: /Users/Shared/Workspace/hadoop/hadoop-common/hadoop-common-project/hadoop-common/target/antrun/build-main.xml:23: exec returned: 127
原因是缺少protocol buffer, 找不到protoc命令。[ERROR]Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:3.0.0-SNAPSHOT:protoc(compile-protoc) on project hadoop-c[Help1]org.apache.maven.lifecycle.LifecycleExecutionException:Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:3.0.0-SNAPplugin.MojoExecutionException: protoc failure at
<code style="border-bottom:0px; border-left:0px; padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px"><span class="pln" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">wget http</span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">:</span><span class="com" style="color:gray; border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">//protobuf.googlecode.com/files/protobuf-2.5.1.tar.gz</span><span class="pln" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">tar xzf protobuf</span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">-</span><span class="lit" style="color:#8000; border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">2.4</span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">.</span><span class="lit" style="color:#8000; border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">1.tar</span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">.</span><span class="pln" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">gzcd protobuf</span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">-</span><span class="lit" style="color:#8000; border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">2.4</span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">.</span><span class="lit" style="color:#8000; border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">1</span><span class="pln" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px"></span><span class="pun" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">./</span><span class="pln" style="border-bottom:0px; border-left:0px; padding-bottom:0px; background-color:transparent; margin:0px; padding-left:0px; padding-right:0px; vertical-align:baseline; border-top:0px; border-right:0px; padding-top:0px">configuremakesudo make installsudo ldconfig (一定要执行)</span></code><h3>导入Eclipse</h3><pre><code>mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true</code>
ldconfig几个需要注意的地方!
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比 如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就 需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程 序运行时被找到。
3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变 量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时 候使用。
4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。
5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事\
git clone出现错误:fatal:could not create work dir 'hadoop-common'
要确保所有的操作都是在用户hadoop下完成的:
- ~$ sudo chown -R hadoop:hadoop /usr/local/hadoop
- eclipse导入/编译hadoop源代码
- Hadoop-0.21源代码编译及导入eclipse
- eclipse编译hadoop源代码
- hadoop源代码下载导入eclipse
- Zookeeper 源代码编译导入Eclipse
- Hadoop源代码eclipse编译指南
- Spring源代码编译,并导入Eclipse
- eclipse下编译hadoop源代码(转)
- Hadoop 源码下载,编译,install,导入eclipse
- Hadoop 2.4源码编译和导入eclipse
- Hadoop 3.0.0 版本编译导入eclipse
- Hadoop学习笔记--3.Hadoop源代码eclipse编译教程
- 导入hadoop-2.3.0源代码到eclipse中
- 如何编译Mahout源代码并导入到eclipse中
- 配置 eclipse 编译、开发 Hadoop(MapReduce)源代码
- Ubuntu下配置 Eclipse 编译、开发 Hadoop(MapReduce)源代码
- 配置 eclipse 编译、开发 Hadoop(MapReduce)源代码
- Ubuntu下配置 Eclipse 编译、开发 Hadoop(MapReduce)源代码
- windows xp 磁盘安装 ubuntu 10.04 方法
- 【<meta name="description" content=">】作用讲解
- 主键和唯一索引的区别
- opencv 低通滤波总结
- 回顾第七周多行星星图
- eclipse导入/编译hadoop源代码
- iOS App Launch Option
- ZBarSDK API Documentation (一)—Installing the SDK
- libzbar.a for architecture armv7s的问题
- powerdesigner CDM转化成PDM外键约束与定时不一样
- 心情第一帖
- 后青春期
- 如何将MFC生成的exe转换为DLL
- AudioManager简述