编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议,

   而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到。

   解决办法就是先对hadoop源码进行编译,再导入eclipse工程。

一、基础软件:

软件 下载地址 推荐版本
JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.7以上
Maven https://maven.apache.org/download.cgi 3.0.2以上
Eclipse https://eclipse.org/downloads/  
Protocol Buffers https://github.com/google/protobuf/releases 2.5.0

 

注: Protocol Buffers在全文中简写成PB

二、编译Hadoop源码

  在Linux环境下编译源码之前,需要进行以下准备:

  • 确保安装的Maven版本在3.0.2以上
  • 确保Protocol Buffers安装版本为2.5.0 

  1、安装PB

    参照site: https://github.com/google/protobuf/blob/master/src/README.md

    从源代码编译的protobuf,需要以下工具:

    > autoconf

    > automake

    > libtool

    > curl (used to download gmock)

    > make

    > g++

    > unzip

    (1). 在ubuntu下可通过以下命令安装:

      $ sudo apt-get install autoconf automake libtool curl make g++ unzip

    (2). 生成配置脚本

      进入PB解压目录  cd {PB_HOME}

      执行:  ./autogen.sh

      此命令将下载gmock源(这是用于C协议缓冲单元测试)到当前目录并且运行automake,autoconf等来生成配置脚本和各种模板的makefile

    (3). 编译

      $ ./configure

      $ make

      $ make check

      $ sudo make install

      $ sudo ldconfig # refresh shared library cache.    2、编译所有源码

     在Hadoop安装根目录下执行以下命令

      mvn install -DskipTests

       注: 如果一次不成功,请多试几次。

      

    

时间: 2024-08-02 15:13:13

编译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 导入/编译 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\

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.源

Hadoop源码编译与调试汇总

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

Hadoop源码编译过程

一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作. native目录是本地库,位于hadoop-2.x.x/lib/native目录下,仅支持linux和unix操作系统. hadoop中的zlib和gzip模块会加载本地库,如果加载失败,会提示: 16/07/06 12:18:24 WARN u

Mac搭建Hadoop源码阅读环境

1.本次Hadoop源码阅读环境使用的阅读工具是idea,Hadoop版本是2.7.3.需要安装的工具包括idea.jdk.maven.protobuf等 2.jdk,使用的版本是1.8版,在jdk官网下载jdk-8u111-macosx-x64.dmg,点击安装,一路next. 3.idea安装,略 4.maven,使用的版本是3.3.9,下载apache-maven-3.3.9-bin.tar,解压: tar -zxvf  apache-maven-3.3.9-bin.tar 进入 Mave

[hadoop]Windows下eclipse导入hadoop源码,编译WordCount

hadoop版本为hadoop1.2.1 eclipse版本为eclipse-standard-kepler-SR2-win32-x86_64 WordCount.java为hadoop-1.2.1\src\examples\org\apache\hadoop\examples\WordCount.java 1 /** 2 * Licensed under the Apache License, Version 2.0 (the "License"); 3 * you may not