详情见原文地址:http://jeyzhang.com/154/
1. 前言
2. 操作系统及版本说明
Ubuntu14.04 64位。
如果你的操作系统是32位的,可以跳过这篇,因为只有64位的linux系统需要进行hadoop的编译。
> 如何查看linux系统的位数
1 2 3 4 5 6 7 |
方法1: #查看long的位数,返回32或64 getconf LONG_BIT
方法2: #查看文件信息,包含32-bit就是32位,包含64-bit就是64位 file /sbin/init |
3. Hadoop编译版本
Hadoop 2.5.0
4. 编译工作
4.1 编译准备
编译之前需要安装一些软件和工具,有些是linux自带的,但是有些是要自己去下载安装的。如果系统中已安装,请检查一下软件的版本是否匹配,如果不匹配则进行升级或者重新安装。
4.1.1 jdk安装配置
建议安装jdk1.7.X版本,笔者之前安装的是jdk1.8.0,编译时出现了问题。
去官网上下载适合自己系统的JDK版本(注意选择x64版本的,后缀名为tar.gz),这里建议安装jdk1.7.0版本。
选择
1 |
Linux x64 135.78 MB jdk-7u67-linux-x64.tar.gz |
下载后将压缩包复制到/usr/lib/jvm/下,解压
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 复制到/usr/lib/jvm下 # 如果没有jvm目录则cd到/usr/lib下新建 sudo mkdir /usr/lib/jvm sudo cp /home/jerry/downlods/jdk-7u67-linux-x64.tar.gz /usr/lib/jvm
# 解压 sudo tar zxvf jdk-7u67-linux-x64.tar.gz
# 重命名 sudo mv jdk1.7.0_67 jdk1.7.0
# 可以删除压缩包 sudo rm jdk-7u67-linux-x64.tar.gz |
添加环境变量
1 |
sudo vim ~/.bashrc |
环境变量生效
1 |
source ~/.bashrc |
加入下面内容
1 2 3 4 |
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH |
配置默认的JDK版本
1 2 3 4 5 |
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0/bin/jar 300 sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.7.0/bin/javah 300 sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.7.0/bin/javap 300 |
执行
1 |
sudo update-alternatives --config java |
如果是首次安装,将提示如下
1 2 |
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java/ bin/java |
无需其他配置。
如果非首次安装,需要选择对应的JDK版本,即输入对应的数字(*对应的是系统默认的JDK版本)
1 2 3 4 |
选择 路径 优先级 状态 ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 自动模式 * 1 /usr/lib/jvm/jdk1.7.0/bin/java 300 手动模式 |
检查JDK是否安装成功
1 |
java -version |
如果出现以下提示,安装成功
1 2 3 |
java version "1.7.0_67" Java(TM) SE Runtime Environment (build 1.7.0_67-b01) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) |
如果还是提示没有安装,可能是/usr/lib/jvm文件夹权限问题,可以尝试
1 |
sudo chmod -R 774 /usr/lib/jvm |
或者 添加用户访问文件夹的权限
1 |
sudo chown -R 用户名 /usr/lib/jvm |
4.1.2 Maven的安装
简介:Maven 一词的意思是“专家”或者“内行”,作为Apache组织中的一个十分成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目 信息管理。Maven是一个异常强大的构建(build)工具,能够帮助我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署,对于 Maven而言只需要输入简单的命令即可完成(更多介绍)。
安装
1 |
sudo apt-get install maven |
注意安装maven3.0以上的版本,否则之后会出现问题,笔者安装的是maven3.0.5版本。如果不能通过以上方式安装,则需要自己去maven官网上下载安装,具体可参考这篇教程。
检查
1 |
mvn -version |
如果出现以下提示,安装成功
1 2 3 4 5 6 |
Apache Maven 3.0.5 Maven home: /usr/share/maven Java version: 1.7.0_67, vendor: Oracle Corporation Java home: /usr/lib/jvm/jdk1.7.0/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.13.0-34-generic", arch: "amd64", family: "unix" |
4.1.3 Protobuf的安装
简介:Protobuf,即protocolbuffer,是google定义的一种数据交换格式,独立于语言和平台,目前google官方提供了三种语言(java, c++, python)的实现。相对于xml,protocol buffer 的解析速度快得多,这归功于它是一种二进制的格式(代价是牺牲可读性),适合于海量数据的交换、传输和存储(更多介绍)。
建议直接搜索“probuf-2.5.0.tar.gz”,然后下载,给出笔者的下载地址。
然后解压到自己的用户目录(如/home/jerry)下
1 |
tar zxvf protobuf-2.5.0.tar.gz -C /home/jerry |
进入protobuf2.5.0目录下
1 2 3 4 5 6 7 8 |
cd /usr/jerry/protobuf-2.5.0
# 执行以下命令 sudo ./configure sudo make sudo make check sudo make install sudo ldconfig |
执行上述命令很有可能会出错,错误原因基本都是缺乏依赖软件/编译环境(如g++),一键式解决方法如下:
1 2 |
# 安装基本的开发包 sudo apt-get install build-essential |
然后重新执行上述命令
验证
1 |
protoc --version |
如果出现以下提示,安装成功
1 |
libprotoc 2.5.0 |
4.1.4 Openssl库安装
1 |
sudo apt-get install libssl-dev |
4.1.5 CMake安装
1 |
sudo apt-get install cmake |
4.1.6 ant安装
给出笔者的下载地址,如果失效可自行搜索”apache-ant-1.9.4-bin.tar.gz”下载
解压
1 |
tar zxvf apache-ant-1.9.4-bin.tar.gz |
配置环境变量
1 |
sudo vim /etc/profile |
添加以下部分
1 2 |
export ANT_HOME = /home/jerry/apache-ant-1.9.4 export PATH = $PATH:$ANT_HOME/bin |
生效
1 |
source /etc/profile |
检验
1 |
ant -version |
如果出现以下提示,安装成功
1 |
Apache Ant(TM) version 1.9.4 compiled on April 29 2014 |
4.2 编译hadoop
如果完成了4.1部分的安装,那么就可以开始编译hadoop了。笔者的hadoop版本为最新的2.5.0,其他的2.X版本也可以参考。
4.2.1 下载hadoop2.5.0
进入hadoop官网的下载地址,注意选择下载的版本
1 |
hadoop-2.5.0-src.tar.gz 07-Aug-2014 01:51 15M |
解压
1 |
tar zxvf hadoop-2.5.0-src.tar.gz |
进入src文件夹
1 |
cd hadoop-2.5.0-src |
执行
1 2 |
# 编译 mvn package -Pdist,native -DskipTests -Dtar |
如果顺利的话,只需要坐等20分钟左右即可编译成功
如果有输出的最后以下提示,编译成功
1 2 3 4 5 6 |
------------------------------------------------------------------------------------------------ BUILD SUCCESS ------------------------------------------------------------------------------------------------ Total time: ****** Finished at: ****** Final Memory: **** |
而对应的在~/hadoop-2.5.0-src/hadoop-dist/target/目录下将生成编译好的文件和压缩包
1 2 |
hadoop-2.5.0 hadoop-2.5.0.tar.gz |
如果编译失败,找出输出信息中的第一条ERROR提示,搜索对应的解决方法。(笔者会在另外一篇文章中贴出自己所遇到的错误及解决方法)
下一篇将介绍hadoop2.5.0的单节点的安装及测试。
转载请注明本文的链接地址: http://jeyzhang.com/154/,谢谢: )