Linux下, Hadoop2.6.0源代码导入Eclipse
来源:互联网 发布:淘宝客好赚钱吗 编辑:程序博客网 时间:2024/05/22 13:37
环境:Linux: Ubuntu14.04
Java: JDK1.7
Eclipse: eclipse-standard-kepler-SR2-linux-gtk-x86_64.tar.gz
Hadoop:version-2.6.0
Maven: 3.0.5
1.安装JDK,Eclipse,Maven请自行百度,下载Hadoop2.6.0源代码的地址为
http://apache.osuosl.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0-src.tar.gz
下载完后是这样:
2.解压hadoop-2.6.0-src.tar.gz
解压命令:tar zvxf hadoop-2.6.0-src.tar.gz
解压完成:
3.解压完成后,进入根目录下的hadoop-maven-plugins目录: cd hadoop-2.6.0-src/hadoop-maven-plugins
运行命令: mvn install
……
……
4.退回到根目录:cd ../
运行命令生成Eclipse工程文件:mvn eclipse:eclipse -DskipTests (这里参数-DskipTests是指忽略工程里的测试test文件)
(因为之前运行过上述两个命令,所以时间很短,第一次的话会比较耗时)
5.此时工程文件就编译成功,开始导入Eclipse了
打开Eclipse,选择File—>>>import—>>>General—>>>Existing Projects into Workspace->选择源代码根目录
—>>>finish—>>>导入完成
6.导入完成后,最大的问题来了,出现了很多的错误。目前可以在网上找到5种错误的解决方法(会在最后贴出,本文也是借鉴这些方法),下面说说我遇到的问题和解决方法
我的一共有59个错误,分为三类
错误1:Hadoop-streaming错误(hadoop-streaming里面的build path有问题)
解决方法:(解决后剩下56个错误)
右键出错项目—>>>Properties
Java Build Path—>>>Source—>>>选定错误项—>>>点击Remove—>>>OK
错误2:缺少AvroRecord类
解决方法:(解决后剩下53个错误)
从网上下载AvroRecord.java文件:http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-common/2.6.0/org/apache/hadoop/io/serializer/avro/AvroRecord.java/
下载完后复制到包org.apache.hadoop.io.serializer.avro下面,复制后为:
错误3:org.apache.hadoop.ipc.protobuf包下缺少TestProtos.java 和 TestRpcServiceProtos.java 文件
解决方法:(解决后没有错误,导入成功)
从网上下载这两个文件:
TestProtos.java: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-common/2.6.0/org/apache/hadoop/ipc/protobuf/TestProtos.java/
TestRpcServiceProtos.java: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-common/2.6.0/org/apache/hadoop/ipc/protobuf/TestRpcServiceProtos.java/
下载完后复制到包org.apache.hadoop.ipc.protobuf包下面,复制后为:
可能错误4:如果还有错误(eg. 我之前遇到过Access restriction的错误),可能是由于Eclipse的强检查原则导致的错误
解决方法:打开Window—>>>Preference—>>>Java—>>> Compiler—>>>Errors/Warnings—>>>Deprecated and restricted API—>>>将Forbidden reference (access rules)的error级别调整为warning级别:
6.导入成功
~~~~~~~~~~~~~~~~~~~~~~~~~我是分界线~~~~~~~~~~~~~~~~~~~~~~~~~~~
网上找到了5中问题解决方法:http://www.bigdatas.cn/thread-62995-1-1.html
Error#1. hadoop-streaming里面的build path有问题,显示/root/workspace/hadoop-2.2.0-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf(missing)
解决办法,remove掉引用就好。
Error#2. hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSClientFailover.java中报sun.net.spi.nameservice.NameService错误,这是一个需要import的包,存在于openjdk中,在Oracle Jdk中没找到,需要下载一个。NameService是一个接口,在网上找一个NameService放到该包中就好。http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/sun/net/spi/nameservice/NameService.java#NameService
Error#3. /hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/XmlEditsVisitor.java里面显示
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
失败,这是由于Eclipse的强检查原则,打开Java -> Compiler -> Errors/Warnings and under “Deprecated and restricted API” change the setting of “Forbidden reference (access rules)” 将error级别调整到warning级别就好。
Error#4. /hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/TestAvroSerialization.java显示没有AvroRecord类,在网上搜索到AvroRecord类放入到同级包中就行了。 http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-common/2.2.0/org/apache/hadoop/io/serializer/avro/AvroRecord.java#AvroRecord
Error#5. org.apache.hadoop.ipc.protobuf包是空的,需要在/hadoop-common/target/generated-sources/java中找到profobuf拷贝到/hadoop-common/src/test/java中就好了. 同时包里面还缺少了以下三个引用,在GrepCode上找一下,把hadoop-common2.2.0的相应文件下下来导入。
org.apache.hadoop.ipc.protobuf.TestProtos.EchoRequestProto;
org.apache.hadoop.ipc.protobuf.TestProtos.EchoResponseProto;
org.apache.hadoop.ipc.protobuf.TestRpcServiceProtos.TestProtobufRpcProto;
Error#6. /hadoop-auth/org/apache/hadoop/security/authentication/client/AuthenricatorTestCase.java中显示server.start()和server.stop()错误,还没找到原因所在,待检查~~~
- Linux下, Hadoop2.6.0源代码导入Eclipse
- eclipse 导入hadoop2.2源代码
- 在mac中导入hadoop2.6.0源代码至eclipse
- 在mac中导入hadoop2.6.0源代码至eclipse
- 在windows下eclipse分析hadoop2.2.0的源代码
- Ubuntu12.04编译hadoop2.6.0源码与源码导入windows下的Eclipse查看方法
- eclipse导入源代码
- Eclipse导入Tomcat源代码
- 导入eclipse源代码工程
- eclipse导入nutch源代码
- Linux——eclipse下Hadoop2.2.0的安装配置
- 在Eclipse中编辑Hadoop2.2.0源代码
- Linux下源码编译hadoop2.6.0
- hadoop学习(7)----将Hadoop2.6源码导入到win7下的eclipse
- Linux下将Nutch1.3导入eclipse
- linux下eclipse导入sbt项目
- eclipse中导入hadoop2.7.0源码
- Eclipse+hadoop2.6.2源码编译导入
- 【Java】生成验证码(图片、汉字)
- 机器学习实战笔记——KNN算法
- _WIN32_WINNT
- 使用junitreport生成报告时,发生异常的情况
- JS 关于(function( window, undefined ) {})(window)写法的理解
- Linux下, Hadoop2.6.0源代码导入Eclipse
- 一个Linux Shell入门的例子
- 字符编码及转换
- Latex 公式颜色
- Android之史上最全最简单最有用的第三方开源库收集整理
- 利用Gson使json字符串与java bean/list/map之间的相互转换
- android 获取activity的根view
- 第四部分:spring security使用cas单点登录配置
- 真实文件被隐藏病毒的搞定方法