Hadoop的源码编译
目录
正文
1、准备阶段
使用root登录Centos,并且要求能够正常连接网络。配置清单如下:
(1)hadoop-2.7.2-src.tar.gz
(2)jdk-8u144-linux-x64.tar.gz
(3)apache-ant-1.9.9-bin.tar.gz(build工具,打包用的)
(4)apache-maven-3.0.5-bin.tar.gz
(5)protobuf-2.5.0.tar.gz(序列化的框架)
1.1、下载Hadoop源码包
https://hadoop.apache.org/releases.html
1.2、安装、配置maven
tar -zxvf apache-maven-3.0.-bin.tar.gz -C /opt/module/
配置maven镜像源
vi conf/settings.xml
添加以下内容
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
配置maven环境变量
vi /etc/profile
添加一下内容
#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.0.
export PATH=$PATH:$MAVEN_HOME/bi
使得配置信息生效
source /etc/profile
验证maven是否安装成功:
[root@hadoop- software]# mvn -version
Apache Maven 3.0. (r01de14724cdef164cd33c7c8c2fe155faf9602da; -- ::-)
Maven home: /opt/module/apache-maven-3.0.
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /opt/module/jdk1..0_144/jre
Default locale: en_US, platform encoding: UTF-
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
You have new mail in /var/spool/mail/root
[root@hadoop- software]#
1.3 、安装、配置Ant
[root@hadoop- software]# tar -zxvf apache-ant-1.9.-bin.tar.gz -C /opt/module/
[root@hadoop-102 software]# vi /etc/profile
#ANT_HOME
export ANT_HOME=/opt/module/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin
[root@hadoop-102 software]# source /etc/profile
[root@hadoop-102 software]#
[root@hadoop-102 software]# ant -version
Apache Ant(TM) version 1.9.9 compiled on February 2 2017
[root@hadoop-102 software]#
1.4、安装glibc-headers 和 gcc-c++
[root@hadoop- software]# yum -y install glibc-headers
[root@hadoop- software]# yum install gcc-c++
1.5、安装make和cmake
[root@hadoop- software]# yum install make
[root@hadoop- software]# yum install cmake
1.6、编译安装protobuf
[root@hadoop- software]# tar -zxvf protobuf-2.5..tar.gz -C /opt/module/
[root@hadoop- software]# cd /opt/module/protobuf-2.5./
[root@hadoop- protobuf-2.5.]#
[root@hadoop- protobuf-2.5.]#./configure
[root@hadoop- protobuf-2.5.]# make
[root@hadoop- protobuf-2.5.]# make check
[root@hadoop- protobuf-2.5.]# make install
[root@hadoop- protobuf-2.5.]# ldconfig
配置环境变量:
[root@hadoop- protobuf-2.5.]# vi /etc/profile
#LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.
export PATH=$PATH:$LD_LIBRARY_PATH
[root@hadoop- protobuf-2.5.]# source /etc/profile
[root@hadoop- protobuf-2.5.]# protoc --version
libprotoc 2.5.
1.7、安装openssl和 ncurses-devel库
[root@hadoop- ~]# yum -y install openssl-devel
[root@hadoop- ~]# yum -y install ncurses-devel
jdk的安装时,解压后配置环境变量,这里就不在赘述。
2、编译Hadoop
2.1、解压源码包
[root@hadoop- hadoop-2.7.-src]# tar -zxvf hadoop-2.7.-src.tar.gz -C /opt/
[root@hadoop- software]# cd /opt/hadoop-2.7.-src/
[root@hadoop- hadoop-2.7.-src]#
2.2、编译
切入到解压后的目录中,执行:
mvn package -Pdist,native -DskipTests -Dtar
2.3、查看编译结果
编译完成后,hadoop包在/opt/hadoop-2.7.2-src/hadoop-dist/target目录下。
3、编译源码过程中常见的问题及解决方案
(1)MAVEN install时候JVM内存溢出
处理方式:在环境配置文件和maven的执行文件均可调整MAVEN_OPT的heap大小。
(详情查阅MAVEN 编译 JVM调优问题,如:http://outofmemory.cn/code-snippet/12652/maven-outofmemoryerror-method)
(2)编译期间maven报错。可能网络阻塞问题导致依赖库下载不完整导致,多次执行命令(一次通过比较难):
mvn package -Pdist,nativeN -DskipTests -Dtar
(3)报ant、protobuf等错误,插件下载未完整或者插件版本问题,最开始链接有较多特殊情况,同时推荐
2.7.0版本的问题汇总帖子 http://www.tuicool.com/articles/IBn63qf
Hadoop的源码编译的更多相关文章
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- Hadoop,HBase,Zookeeper源码编译并导入eclipse
基本理念:尽可能的参考官方英文文档 Hadoop: http://wiki.apache.org/hadoop/FrontPage HBase: http://hbase.apache.org/b ...
- 基于cdh5.10.x hadoop版本的apache源码编译安装spark
参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进 ...
- hadoop 源码编译
hadoop 源码编译 1.准备jar 1) hadoop-2.7.2-src.tar.gz 2) jdk-8u144-linux-x64.tar.gz 3) apach-ant-1.9.9-bin. ...
- 获取hadoop的源码和通过eclipse关联hadoop的源码
一.获取hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...
- Spark源码编译
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3822995.html spark源码编译步骤如下: cd /home/hdpusr/workspace ...
- hadoop-1.2.0源码编译
以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...
- hadoop-2.0.0-mr1-cdh4.2.0源码编译总结
准备编译hadoop-2.0.0-mr1-cdh4.2.0的同学们要谨慎了.首先看一下这篇文章: Hadoop作业提交多种方案 http://www.blogjava.net/dragonHadoop ...
- wso2esb源码编译总结
最近花了两周的空闲时间帮朋友把wso2esb的4.0.3.4.6.0.4.7.0三个版本从源码编译出来了.以下是大概的一些体会. wso2esb是基于carbon的.carbon是个基于eclipse ...
随机推荐
- scrapyd 部署
步骤 1 pip install scrapyd pip install scrapy-client 步骤 2 修改 scrapy.cfg [deploy:targetName]url = http: ...
- 机器学习笔记簿 降维篇 PCA 01
降维是机器学习中十分重要的部分,降维就是通过一个特定的映射(可以是线性的或非线性的)将高维数据转换为低维数据,从而达到一些特定的效果,所以降维算法最重要的就是找到这一个映射.主成分分析(Princip ...
- MySQL数据库常见命令
数据库的操作 MySQL服务器的常见命令 开启:sudo service mysql start关闭:sudo service mysql stop重启:sudo service mysql rest ...
- PHP lstat() 函数
定义和用法 lstat() 函数返回关于文件或符号连接的信息. 该函数将返回一个包含下列元素的数组: [0] 或 [dev] - 设备编号 [1] 或 [ino] - inode 编号 [2] 或 [ ...
- #define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#include <iostream> #define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) usi ...
- 有关WebSocket必须了解的知识
一.前言 最近之前时间正好在学习java知识,所以自个想找个小项目练练手,由于之前的ssm系统已经跑了也有大半年了,虽然稀烂,但是功能还是勉强做到了,所以这次准备重构ssm系统,改名为postCode ...
- Raft协议理解
raft协议最关键的部分是领导选举和日志复制 日志复制 日志匹配原则:如果两个日志在相同索引位置的entry的任期号相同,那么这两个日志从头到这个索引位置之前完全相同. 日志匹配原则可以解释为如下两条 ...
- 微信小程序订阅消息调研
相关资料 背景:微信模板消息已正式下架,改为订阅消息,详情如下: 服务变更通知 订阅消息:订阅消息相关内容如下: 订阅消息 接口设计 获取接口访问凭证 :根据appId和secret获取接口访问凭证a ...
- 【从零开始撸一个App】Dagger2
Dagger2是一个IOC框架,一般用于Android平台,第一次接触的朋友,一定会被搞得晕头转向.它延续了Java平台Spring框架代码碎片化,注解满天飞的传统.尝试将各处代码片段串联起来,理清思 ...
- 006_go语言中的if else条件语句
代码演示 package main import "fmt" func main() { if 7%2 == 0 { fmt.Println("7 is even&quo ...