[导入]Eclipse 导入/编译 Hadoop 源码

http://www.cnblogs.com/errorx/p/3779578.html

1.准备工作

  • jdk:
  • eclipse:
  • Maven:
  • libprotoc :https://developers.google.com/protocol-buffers/
  • hadoop:http://www.apache.org/dyn/closer.cgi/hadoop/common/


添加开源中国maven库:http://maven.oschina.net/home.html

maven\conf\settings.xml

<localRepository>path</localRepository>

<localRepository>path</localRepository><mirrors>
    <mirror>
        <id>nexus-osc</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus osc</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
    </mirror>
</mirrors>

2.导入

  1. 将hadoop源码解压到一个目录,注意目录层次不要太深,否则可能无法解压。
  2. 进入hadoop-maven-plugins文件夹,执行 mvn install
  3. 返回源码根目录,执行 mvn eclipse:eclipse –DskipTests
  4. eclipse在任意目录创建新的WorkSpace
  5. eclipse设置Maven:window->preference->maven->{Installations...;user Settings:maven\conf\settings.xml}
  6. eclipse:File->inport->Existing Projects into WorkSpace->Hadoop源码根目录

3.错误处理

    1. maven下载pom失败->重新操作
    2. hadoop-streaming中build path错误->Java Build Path->Source:
      1. 删除...hadoop-yarn-server-resourcemanager/conf
      2. Link Source:源码根目录/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf,再随便起个名字;inclusion patterns:capacity-scheduler.xml;exclusion patters:**/*.java
    3. org.apache.hadoop.io.serializer.avro.TestAvroSerialization
      1. 下载avro-tools-1.7.4.jar:http://archive.apache.org/dist/avro/avro-1.7.4/java/
      2. 进入目录:源码根目录\hadoop-common-project\hadoop-common\src\test\avro
      3. java -jar path/to/avro-tools-1.7.4.jar compile schema avroRecord.avsc ..\java
      4. eclipse 刷新
    4. org.apache.hadoop.ipc.protobuf.TestProtos
      1. 进入目录:源码根目录\hadoop-common-project\hadoop-common\src\test\proto
      2. protoc --java_out=../java *.proto
      3. eclipse 刷新
    5. project->clean..->clean all projects & Build the entire workspace
时间: 2024-10-12 22:48:45

[导入]Eclipse 导入/编译 Hadoop 源码的相关文章

编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到. 解决办法就是先对hadoop源码进行编译,再导入eclipse工程. 一.基础软件: 软件 下载地址 推荐版本 JDK http://www.oracle.com/technetwork/java/javas

Eclipse下查看Hadoop源码

1.新建一个java project 2.把hadoop源码解压出来,再到src目录下把,src下的core.hdfs.mapred文件夹复制出来 3.把复制出来的三个文件夹,粘贴到  java project 的src下 4.把src去掉,右键Properties 找到 5.添加资源文件夹 6.加入依赖的jar 包.去 7.找到hadoop源码所在的磁盘,把lib下的全部jar包导入到项目中来,包括jsp-2.1的文件夹下的 8.添加ant.jar的jar包 完成导入可以查看hadoop的源码

64位Ubuntu 编译 hadoop源码

本人下载了最新版的ubuntu64(14.04)位桌面版系统,在安装hadoop2.6.0时,由于官方的hadoop是在32位机子上编译的,故需下载hadoop源码进行编译. 准备:hadoop-2.6.0-src jdk1.7.0_75(由于最新版的jdk是1.8.0_31版本的,而我在用这个版本编译hadoop时出现了问题,后来发现1.8.0是在hadoop出来之后出来的,所以可能有些不支持,故建议用1.7.0版本的) 1.安装JDK 安装jdk的方式大家可以网上搜一下,或者通过这个链接ht

如何重新编译hadoop源码

1. 下载hadoop源码(以2.7.2为例子) https://github.com/apache/hadoop/tree/branch-2.7.2/hadoop-yarn-project/hadoop-yarn 2. 安装protobuf 下载release的repo: https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz 执行以下命令 $ cd /usr/local/src/ $

Centos7编译Hadoop源码

jar包安装 注意:所有操作必须在root用户下完成 1 JDK解压.配置环境变量 JAVA_HOME和PATH,验证java-version(如下都需要验证是否配置成功) [[email protected] opt]# mkdir /opt/module/ [[email protected] opt]# tar -zxf jdk-8u144-linux-x64.tar.gz -C /opt/module/ [[email protected] opt]# ll 总用量 211912 -rw

利用Eclipse+maven编译Jedis源码成jar包和源码jar包

在GitHub上面,有很多源码都是maven项目,但是很多都没有jar包.去网上找到话第一个是比较难找,第二个是怕不够原汁原味.我们通过maven+Eclipse可以可视化将maven项目生成jar库包还有源码jar包. 1.下载maven 下载地址:http://maven.apache.org/download.html 2,解压 到本地: 3,配置环境变量 3-1,要先配置java-home变量. 新建系统变量,写入java-home值. 在系统变量的path里面添加  %JAVA_HOM

Linux编译Hadoop源码优先使用

1.配置yum  2.安装JDK 2.1上传 2.2解压jdk #创建文件夹 mkdir /usr/java #解压 tar -zxvf   jdk-7u79-linux-i586.tar.gz  -C /usr/java/ 2.3将java添加到环境变量中 vim /etc/profile #在文件最后添加 JAVA_HOME=/usr/java/jdk1.7.0_79 export PATH=$JAVA_HOME/bin:$PATH #刷新配置 source /etc/profile 3.源

eclipse远程调试hadoop源码

1.调试环境 1.1 远程linux运行的hadoop 1.2 本地windows的eclipse中导入hadoop源代码 1.3 本地windows的eclipse中有hadoop的自己写的代码 2.步骤 2.1修改远程linux运行的hadoop程序的hadoop-env.sh, 把第21行注释掉,增加一行代码 export HADOOP_NAMENODE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9090,server=y,su

Hadoop源码编译与调试汇总

虽然在运行Hadoop的时候可以打印出大量的运行日志,但是很多时候只通过打印这些日志是不能很好地跟踪Hadoop各个模块的运行状况.这时候编译与调试Hadoop源码就得派上场了.这也就是今天本文需要讨论的. 先说说怎么编译Hadoop源码,本文主要介绍在Linux环境下用Maven来编译Hadoop.在编译Hadoop之前,我们需要准备好编译环境: 1.安装好1.6或以上的JDK;2.安装Maven,被做好相应的配置;3.安装ProtocolBuffer 2.5.0,MapReduce和HDFS