Hadoop源码编译

Linux环境:CentOS 6.5
版本:Hadoop 2.7.4
下载地址:http://mirrors.shuosc.org/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4-src.tar.gz
参考文档:https://github.com/apache/hadoop/blob/trunk/BUILDING.txt

##写在前面的话
以root用户为主,配置全局环境变量
BUILDING.txt中的话

	Requirements:(编译的环境要求)
	* Unix System
	* JDK 1.8+
	* Maven 3.3 or later(伴随后面的工作)
	maven相关介绍:
	Apache Maven: 软件  pom.xml
	Maven  repository:
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.37</version>
		</dependency>	
	
	* ProtocolBuffer 2.5.0
	* CMake 3.1 or newer (if compiling native code)
	* Zlib devel (if compiling native code)
	* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
	* (暂时不需要)Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)
	* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
	* (暂时不需要)python (for releasedocs)
	* (暂时不需要)bats (for shell code testing)
	* (暂时不需要)Node.js / bower / Ember-cli (for YARN UI v2 building)

##编译前的准备

	切换到root用户
		$>su -
	查看是否有相关进程运行
		$>ps -ef | grep hadoop
	查看是否有安装的残留
		$>find / -name hadoop
	进入到opt目录
		$>cd /opt
	创建两个相关文件夹(sourcecode:源码 software:软件)
		$>mkdir sourcecode software
	将事先下载完的源代码包上传到sourcecode
	安装命令
		$>yum -y install lrzsz(必须要有网络)
	查看是否安装完毕(rz用于上传软件,也可以使用WinSCP)
		$>which rz
	解压
		$>tar -xzvf hadoop-2.8.1-src.tar.gz

##部署JAVA环境

	创建目录
		$>mkdir /usr/java
	进入目录
		$>cd /usr/java
	使用rz命令上传
		$>rz
	解压
		$>tar -xzvf jdk-8u45-linux-x64.gz
	修改用户和用户组(针对出现目录权限变更的情况)
		$>chown -R root:root jdk1.8.0_45
	配置全局环境变量
		$>vi /etc/profile
		  export JAVA_HOME=/usr/java/jdk1.8.0_45
		  export PATH=$JAVA_HOME/bin:$PATH
	生效环境变量
		$>source /etc/profile
	验证
		$>java -version

##安装maven

	进入到相关目录
		$>cd /opt/software
	使用rz命令上传
		$>rz
	解压
		$>unzip apache-maven-3.3.9-bin.zip
	配置全局环境变量
		$>vi/etc/profile
		  export MAVEN_HOME=/opt/software/apache-maven-3.3.9
		  export MAVEN_OPTS="-Xms256m -Xmx512m"
		  export PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
	生效环境变量
		$>source /etc/profile
	验证
		$>mvn -version
	修改conf/settings.xml(将mirror换成阿里云的,后面编译的时候速度会快些)
	  <mirrors>
		<mirror>
		  <id>alimaven</id>
		  <name>aliyun maven</name>
		  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		  <mirrorOf>central</mirrorOf>        
		</mirror>
	  </mirrors>

##安装ProtocolBuffer 2.5.0
下载下来的为源码,需要自己手动使用命令进行编译安装,然后进行环境变量的配置

	进入到相关目录
		$>cd /opt/software
	使用rz命令上传
		$>rz
	解压
		$>tar -xzvf protobuf-2.5.0.tar.gz
	进行安装
		$>yum install -y gcc gcc-c++ make cmake		   (安装cmake  -y表示回车之后不需要输入yes了)
		$>cd protobuf-2.5.0
		$>./configure --prefix=/opt/software/protobuf  (指定编译之后的安装路径,目录不需要自己去创建,编译过程中会自动创建)
		$>make && make install						   (开始安装)
	配置全局环境变量
		$>vi /etc/profile
		  export PROTOC_HOME=/opt/software/protobuf
		  export PATH=$PROTOC_HOME/bin:$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
	生效环境变量
		$>source /etc/profile
	验证
		$>protoc --version

##Findbugs安装(可选,可以不安装)

    进入到相关目录
		$>$>cd /opt/software
	使用rz命令上传
		$>rz
	解压
		$>unzip findbugs-1.3.9.zip
	配置全局环境变量
		$>vi /etc/profile
		  export FINDBUGS_HOME=/opt/software/findbugs-1.3.9
		  export PATH=$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH	
	生效环境变量
		$>source /etc/profile
	验证
		$>findbugs -version

##安装其它依赖
根据Github上的文档中Requirements的要求,安装剩下的依赖,以及编译过程中可能会缺失的东西,以免编译失败

		$>yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool
		$>yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake

##开始编译

		$>cd /opt/sourcecode/hadoop-2.7.4-src
		$>mvn clean package -Pdist,native -DskipTests -Dtar
		-DskipTests	:跳过测试
		-Dtar		:打成tar包
		BUILDING.txt上的说明:
		Building distributions:
		Create binary distribution without native code and without documentation:
		  $ mvn package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true
		Create binary distribution with native code and with documentation:
		  $ mvn package -Pdist,native,docs -DskipTests -Dtar
		Create source distribution:
		  $ mvn package -Psrc -DskipTests
		Create source and binary distributions with native code and documentation:
		  $ mvn package -Pdist,native,docs,src -DskipTests -Dtar
		Create a local staging version of the website (in /tmp/hadoop-site)
		  $ mvn clean site -Preleasedocs; mvn site:stage -DstagingDirectory=/tmp/hadoop-site

##编译成功
编译成功的截图
这里写图片描述

编译之后
路径:/opt/sourcecode/hadoop-2.8.1-src/hadoop-dist/target/hadoop-2.7.4.tar.gz
这里写图片描述

##补充说明

a.有时候编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,此时按ctrl+c,重新运行编译命令。
b.如果出现缺少了某个文件的情况,则要先清理maven(使用命令 mvn clean) 再重新编译。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值