说明:

hadoop版本:hadoop-2.5.0-cdh5.3.6

环境:centos6.4

必须可联网

hadoop 下载网址: http://archive.cloudera.com/cdh5/cdh/5/

其实编译还真就是体力活,按照官方的说明,一步步往下做就可以了,不过总会遇到坑。。

编译步骤:

1、下载源码,解压,本例中解压到 /opt/softwares下:

命令: tar -zxvf hadoop-2.5.0-cdh5.3.6-src.tar.gz -C /opt/softwares

2、进入到解压后的目录,有BUILDING.txt,查看:

命令: cd /opt/softwares/hadoop-2.5.0-cdh5.3.6

cat BUILDING.txt

文档里对编译事项进行了说明,如下图:

要编译hadoop,系统上必须要装这些软件。

(1)系统为linux,已符合条件

(2)JDK版本1.6以上:

本机装JDK1.7.0_67,配置好环境变量。在装JDK之前,建议大家首先看一下系统上有没有装,如果有装,低于1.6版本,最好先把之前的卸载掉再装。

装完之后,配置好环境变量,一定要用 java -version 查看一下是不是对应的版本号。

这里有个坑,如果你之前的版本没有卸载掉,低于1.6版本,那么编译的时候会默认之前的版本,然后就~~~你懂得。。。

(3)安装maven,本机安装maven3.0.5,,官网下载地址:https://archive.apache.org/dist/maven/maven-3/

装完之后,配置环境变量(参考官方说明)

(4)findbugs 这个我没有装,主要是查找bug用的。非必须的。

(5)protocolBuffer ,protoc buffer是hadoop的通信工具。

建议大家环境准备的差不多了,最后再装这个,后面会给出具体说明步骤

(6)安装cmake:

命令:yum install autoconf automake libtool cmake

显示complete即安装完成(下同,不再贴图)

(7)安装 zlib devel :很多系统都已经自带了。

命令:yum install zlib devel

(8)安装ncurses-devel

命令:yum install ncurses-devel

(9)安装openssl-devel

命令:yum install openssl-devel

(10)最后,一定要安装gcc相关组件

命令:yum install gcc*

(11)现在回头来看protobuf的安装:

下载protobuf-2.5.0.tar.gz: http://pan.baidu.com/s/1pJlZubT (这不是我的,参考网址:http://www.tuicool.com/articles/jM7Nn2/)

解压 tar -zxvf protobuf-2.5.0.tar.gz

进入到解压目录 protobuf-2.5.0:

(1)执行 ./configure

(2)执行 make

(3)执行 make check

(4)执行make install

完毕后,输入protoc –version,若返回如下结果,则安装成功:

到此,环境就准备的差不多了。

现在开始编译源码:

回头看BUILDING.txt,编译的命令:

既然编译了,那肯定是需要native本地库的。文档的话,没必要用(坑:最初几次编译,我都用了这个命令,mvn package -Pdist,native,docs -DskipTests -Dtar

一直不成功,都出错在同一个问题上,至今不知怎么解决。docs不用生成,没什么作用。改成mvn package -Pdist,native -DskipTests -Dtar,果然编译成功。

进入hadoop-2.5.0-cdh5.3.6目录,执行命令:

mvn package -Pdist,native -DskipTests -Dtar

等待编译成功。

这里说下编译的过程中出现的问题,主要就是下面图中所展示的问题:

一般出现这个问题,可能是由于网络原因,第一次没有下载成功,第二次继续下载,引起冲突。解决方法是,到maven

本地库中删掉这个jar包,重新运行命令编译。编译过程中,由于网络不佳,我这里出现了三次类似的问题,都是同样的方法解决的。

编译成功之后(差不多就是下面的图示O(∩_∩)O),

进入到hadoop-2.5.0-cdh5.3.6/hadoop-dist/target,可以看到编译好的hadoop.如果你之前就装了此版本的hadoop,只不过没有编译,会出现加载不了本地库的警告,那么可以进入到target/hadoop-2.5.0-cdh5.3.6/lib中,拷贝native放在你原来的hadoop对应的lib下,就不会再出现警告。

 

hadoop编译的更多相关文章

  1. Hadoop编译源码

    Hadoop编译源码 克隆一个虚拟机 然后一步一步安装就行 安装所需:链接: https://pan.baidu.com/s/1jIZlQmi 密码: gggv 5.1 前期准备工作 1)CentOS ...

  2. Hadoop编译打包记录

    Hadoop编译打包,基于2.7.2版本的源码. # 打包过程中需要使用到的工具 java -version mvn -version ant -version type protoc type cm ...

  3. Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .编译Hadooop 1.1 搭建环境 1.1.1 安装并设置maven 1. 下载mave ...

  4. hadoop2.2.0 单机伪分布式(含64位hadoop编译) 及 eclipse hadoop开发环境搭建

    hadoop中文镜像地址:http://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.2.0/ 第一步,下载 wget 'http://archive ...

  5. Hadoop编译方法

    伪分布式: hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml 1.在hadoop官网下载hadoop的源码(同步跟踪最新源代码) mv ...

  6. CentOS中用Nexus搭建maven私服,为Hadoop编译提供本地镜像

    系统: CentOS release 6.6 (Final) Nexus:nexus-2.8.1-bundle.tar.gz,下载地址:https://sonatype-download.global ...

  7. Hadoop编译安装

    本文转载自:http://www.cnblogs.com/shishanyuan/p/4701646.html 1.编译Hadooop 1.1 搭建环境 1.1.1 安装并设置maven 1. 下载m ...

  8. hadoop 编译代码及运行

    搞定了hadoop配置之后,可以写代码运行了,首先要配一下CLASS_PATH,修改/etc/profile export JAVA_HOME=/usr/lib/jvm/java--openjdk-i ...

  9. [raspberry pi3] hadoop 编译搭建和配置

    Causion: 只有一个raspberry pi3的就随便玩玩吧,瓶颈不在在cpu, 1 G的内存实在是太少了,跑个hadoop就很辛苦了 下面是瞎折腾的过程: oracle的arm jdk的安装过 ...

随机推荐

  1. 用于ARM上的FFT与IFFT源代码(C语言,不依赖特定平台)(转)

    源:用于ARM上的FFT与IFFT源代码(C语言,不依赖特定平台) 代码在2011年全国电子大赛结束后(2011年9月3日)发布,多个版本,注释详细. /*********************** ...

  2. iOS纯代码手动适配 分类: ios技术 2015-05-04 17:14 239人阅读 评论(0) 收藏

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  3. HTML 学习笔记 JQuery(表单,表格 操作)

    表单应用 一个表单有3个基本组成部分 (1)表单标签:包含处理表单数据所用的服务器端程序URL 以及数据提交到服务器的方法 (2)表单域:包含文本框 密码框 隐藏框 多行文本框 复选框 单选框 下拉选 ...

  4. C语言-表达式

    表达式是使用运算符连接起来的式子,C语言中的表达式有以下几种: 1.算数运算符 + - * / % 2.赋值运算符 +=  -=  *=  /=  %= 3.自增.自减 ++   --   a++为先 ...

  5. leetcode day7

    这道题弄的心好累..  [Reverse Linked List]206 描述: Reverse a singly linked list. click to show more hints. Hin ...

  6. HTML5学习笔记三:aside元素,time元素与微格式

    一.aside元素 表示当前页面或文章的附属信息部分,相关的引用,侧边栏,广告等有别于主要内容的部分:主要有一下两种用法: 1. 被包含在article元素中作为主要内容的附属信息部分,可以是与当前文 ...

  7. GWAS

    GWAS的数据形式:SNP数据,即各个SNP位点的aa,Aa,AA基因型与疾病状态(0正常,1患病)的样例-对照数据. 在遗传流行病学上,全基因组关联研究(Genome Wide Associatio ...

  8. HTTP协议缓存策略深入详解之ETAG妙用

    Etag是什么: Etag 是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等.具体内部含义是使服务器控制的,就像Cookie那样. HTTP协议规格说明定义 ...

  9. spring 里面的StringUtils,先放这儿,有时间研究吧

    /* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Vers ...

  10. 关于oracle导出时的query用法

    QUERY参数后面跟的是where条件,值得注意的是,整个where子句需要使用""括起来,where子句的写法和SELECT中相同: 如果是UNIX平台所有"和'都需 ...