linux下hadoop2.6.1源码64位的编译
linux下hadoop2.6.1源码64位的编译
一、 前言
Apache官网上提供的hadoop本地库是32位的,如果我们的Linux服务器是64位的话,就会现问题。我们在64位服务器执行Hadoop命令时,则会报以下错误:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
为了解决上述问题,我们就需要自己编译一个64位的hadoop版本。
二、编译hadoop2.6.1需要的软件
jdk 1.7
gcc 4.4.5
maven 3.3.3
protobuf 2.5.0
cmake 2.8.12.2
ant 1.9.6
finbugs(可选择)
注意:
1)在百度中搜索各个软件的名称,最好到官网上下载,下载软件一定注意软件的版本。
2)finbugs不是编译所必须的软件,可以不下载。
三、编译软件的安装
1.jdk的安装
- 解压 tar -zxvf jdk-7u79-linux-x64.tar.gz
- 配置环境变量,编辑/etc/profile文件
- export JAVA_HOME=/opt/jdk1.7.0_25
- export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export PATH=$PATH:$JAVA_HOME/bin
- source /etc/profile 刷新修改的环境变量
- java -version 检查jdk是否安装成功。有以下版本号输出即为成功。
2.gcc的安装
一般linux上会自带了gcc的安装,所以在安装以前,先检查一下服务器上是否已经安装了gcc。
输入:gcc -v
如果有以下输出,则这说明已经安装了gcc
如机器上没有安装gcc,请自行安装
3.maven的安装
- 解压tar -zxvf apache-maven-3.3.3-bin.tar.gz
- 配置环境变量,编辑/etc/profile
- export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
- source /etc/profile 刷新修改的环境变量
- mvn -version 检查maven是否安装成功。有以下版本号输出即为成功。
4.protobuf的安装
- 解压tar -zxvf protobuf-2.5.0.tar.gz
- 进入protobuf的解压目录。如:cd /opt/protobuf-2.5.0/
- 在安装目录下,执行以下命令:
- ./ configure
- make
- make check
- make install
- protoc --version(注意命令中是两个-) 检查protoc是否安装成功。有版本号输出即为成功。

5.cmake的安装
- tar -zxvf cmake-2.8.12.2.tar.gz
- 进入cmake的解压目录。如:cd /opt/cmake-2.8.12.2/
- 在安装目录下,执行以下命令:
- ./ bootstrap
- make
- make install
- cmake -version 检查cmake是否安装成功。有版本号输出即为成功。

6.ant的安装
- 解压tar -zxvf apache-ant-1.9.6-bin.tar.gz
- 编辑环境变量,编辑/etc/profile
- export ANT_HOME=/opt/apache-ant-1.9.6
- export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin
- source /etc/profile 刷新修改的环境变量
- ant -version检查ant是否安装成功。有以下版本号输出即为成功。

7.安装必要的包
- 安装 autotool
- 执行命令:yum install autoconf automake libtool
- 安装 openssl-devel
- 执行命令:yum install openssl-devel
四、编译hadoop2.6.1
- 在Apache官网上,下载hadoop-2.6.1的源码包hadoop-2.6.1-src.tar.gz。
- 解压源码包tar -zxvf hadoop-2.6.1-src.tar.gz
- 进入hadoop-2.6.1-src解压目录。cd /opt/hadoop-2.6.1-src/
- 执行命令mvn clean package -Pdist,native -DskipTests -Dtar 进行编译。
- 编译过程中,需要下载很多包,等待时间比较长。当看到hadoop各个项目都编译成功,即出现一系列的SUCCESS之后,即为编译成功。
- 编译好的安装包hadoop-2.6.1.tar.gz,可以在文件目录hadoop-2.6.1-src/hadoop-dist/target/下找到。
五、注意事项
编译过程中需要下载安装包,有时候可能由于网络的原因,导致安装包下载不完整,而出现编译错误。
错误1:
Remote host closed connection during handshake: SSL peer shut down incorrectly.......
解决方案:需要重新新多编译几次即可通过。
错误2:
A required class was missing while executing XXXXXX,
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR]urls[0] =file:/root/.m2/repository/org/codehaus/mojo/jspc/jspc-maven-plugin/2.0-alpha-3/jspc-maven-plugin-2.0-alpha-3.jar
[ERROR]urls[1]=file:/root/.m2/repository/org/codehaus/mojo/jspc/jspc-compiler-tomcat5/2.0-alpha-3/jspc-compiler-tomcat5-2.0-alpha-3.jar [ERROR]urls[2]=file:/root/.m2/repository/tomcat/jasper-compiler/5.5.15/jasper-compiler-5.5.15.jar
[ERROR]urls[3]=file:/root/.m2/repository/javax/servlet/jsp-api/2.0/jsp-api-2.0.jar
[ERROR]urls[4]=file:/root/.m2/repository/ant/ant/1.6.5/ant-1.6.5.jar
[ERROR]urls[5]=file:/root/.m2/repository/tomcat/jasper-compiler-jdt/5.5.15/jasper-compiler-jdt-5.5.15.jar
........................
解决方案:则需要根据错误的提示,到相应目录下找到包,把包删除,然后再次重新编译。
linux下hadoop2.6.1源码64位的编译的更多相关文章
- linux下MySQL 5.6源码安装
linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件 ...
- Linux下USB suspend/resume源码分析【转】
转自:http://blog.csdn.net/aaronychen/article/details/3928479 Linux下USB suspend/resume源码分析 Author:aaron ...
- 如何找到Linux下常用命令的源码
Linux系统,常用命令的来源很多,有些命令是shell自带的,比如cd,通过执行help命令,可以查看当前系统所有的内置命令. 用type <cmd_name>来查看一个命令是否为内置命 ...
- linux下PostgreSQL数据库的源码安装
实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...
- 【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
转自 http://blog.csdn.net/zklth/article/details/6248558 文章 http://blog.csdn.net/zklth/archive/2010/09/ ...
- linux下cmake安装mysql 源码
1.假设已经有mysql-5.6.21.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...
- 自己动手编译hadoop-2.5.2源码
搭建环境:Centos x 6.5 64bit (后来:我才知道原来官网上发布的就是64位的,不过这个对我来说是个学习过程,对以后进行其他平台编译的时候有帮助!) 1.安装JDK 我这里用的是64位 ...
- 使用Maven将Hadoop2.2.0源码编译成Eclipse项目
编译环境: OS:RHEL 6.3 x64 Maven:3.2.1 Eclipse:Juno SR2 Linux x64 libprotoc:2.5.0 JDK:1.7.0_51 x64 步骤: 1. ...
- Android拓展系列(11)--打造Windows下便携的Android源码阅读环境
因为EXT和NTFS格式的差异,我一直对于windows下阅读Android源码感到不满. 前几天,想把最新的android5.0的源码下下来研究一下,而平时日常使用的又是windows环境,于是专门 ...
随机推荐
- 帆软报表(finereport)JS实现cpt中详细单元格刷新
1.刷新固定单元格 setInterval(function(){ //获取第二行第 5 列 E2 单元格对象 var _changeCell = $("tr[tridx=1]" ...
- Blob检测
一 Laplace 算子 使用一阶微分算子可以检测图像边缘.对于剧烈变化的图像边缘,一阶微分效果比较理想.但对于缓慢变化的图像边缘,通过对二阶微分并寻找过零点可以很精确的定位边缘中心.二阶微分即为 L ...
- Note -「单位根反演」学习笔记
\(\mathcal{Preface}\) 单位根反演,顾名思义就是用单位根变换一类式子的形式.有关单位根的基本概念可见我的这篇博客. \(\mathcal{Formula}\) 单位根反演的 ...
- Dubbo源码剖析三之服务注册过程分析
Dubbo源码剖析二之注册中心 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中对注册中心进行了简单的介绍,对Dubbo整合Zookeeper链接源码进行了详细分析.本文接着对服务注册过 ...
- mysql学习+再复习
mysql 函数 单行函数 exists 是否存在 字符函数 concat(a,b)拼接两个字符串 ifnull(a+b,0) 如果a+b等于null,则返回0 upper,lower 大小写 ...
- 施耐德NOE77101后门漏洞分析
固件下载地址: GitHub - ameng929/NOE77101_Firmware 文件目录结构,这里只列出了一些主要的文件信息: ├── bin ├── ftp ├── fw ├── rdt ├ ...
- go 互斥锁实现原理
目录 go 互斥锁的实现 1. mutex的数据结构 1.1 mutex结构体,抢锁解锁原理 1.2 mutex方法 2. 加解锁过程 2.1 简单加锁 2.2 加锁被阻塞 2.3 简单解锁 2.4 ...
- [Matlab]二维隐函数绘图
MATLAB提供了一个ezplot函数绘制隐函数图形,有三种调用方式: 对于函数f=f(x),ezplot函数的调用格式为: ezplot(f):在默认区间-2pi<=x<=2pi内绘制f ...
- 小甲鱼二十一讲 :lambda表达式!!!!
0: lambda x:x*3 lambad x,y=3:x*y 1:def findodd(x): if x%2 == 0 return None else: return x 2:几乎不用 ...
- 三大流行BI分析平台推荐,企业数据化选择工具
进入大数据时代以来,对于企业来说,海量的数据不仅是财富,也是负担.无论是大型企业还是小型企业,都面临着同样的挑战--如何利用大数据客户体验,有效达到优化生产力的效果.这也是近年来许多企业选择搭建现代大 ...


