大数据技术 在Ubuntu X64上编译Hadoop
沉沙 2018-10-12 来源 : 阅读 1362 评论 0

摘要:本篇教程探讨了大数据技术 在Ubuntu X64上编译Hadoop,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术 在Ubuntu X64上编译Hadoop,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

在之前的文章中介绍了如何直接在Ubuntu中安装Hadoop。但是对于64位的Ubuntu来说,官方给出的Hadoop包是32位的,运行时会得到警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
所以我们最好是自己在Ubuntu中编译Hadoop。先介绍一下我的环境是Ubuntu 16.1 X64 Server版,当前最新的Hadoop是2.7.3。我们可以先下载源代码,在其中有BUILDING.txt,指导我们如何在Ubuntu中编译Hadoop:
Installing required packages for clean install of Ubuntu 14.04 LTS Desktop:
* Oracle JDK 1.7 (preferred)  $ sudo apt-get purge openjdk*  $ sudo apt-get install software-properties-common  $ sudo add-apt-repository ppa:webupd8team/java  $ sudo apt-get update  $ sudo apt-get install oracle-java7-installer* Maven  $ sudo apt-get -y install maven* Native libraries  $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev* ProtocolBuffer 2.5.0 (required)  $ sudo apt-get -y install libprotobuf-dev protobuf-compiler
Optional packages:
* Snappy compression  $ sudo apt-get install snappy libsnappy-dev* Bzip2  $ sudo apt-get install bzip2 libbz2-dev* Jansson (C Library for JSON)  $ sudo apt-get install libjansson-dev* Linux FUSE  $ sudo apt-get install fuse libfuse-dev
 
我用的Linux16.1 X64 Server版本,也是大同小异,接下来是编译Hadoop的过程:
1.更新apt源
首先需要更新我们的apt源,因为如果是国外源的话,接下来安装会很慢。使用命令 

sudo vi /etc/apt/sources.list

打开这个apt源列表,如果其中看到是//us.xxxxxx之类的,那么就是外国的,如果看到是//cn.xxxxx之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入:
:%s/us./cn./g
就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。

sudo apt-get update

更新一下源。
2.安装必备软件
2.1安装SSH

sudo apt-get install ssh

安装完毕后我们就可以用putty或者SecureCRT连接到Ubuntu了。
2.2安装JDK

sudo apt-get install default-jdk

安装后可以运行java –version看安装的版本
2.3安装Maven

sudo apt-get install maven

这是编译Hadoop的工具,安装完成后,可以运行mvn -–version看安装的版本
2.4安装依赖库

sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev

2.5安装ProtocolBuffer 2.5.0
注意,我要编译的是Hadoop2.7.3,必须安装的ProtocolBuffer是2.5这个版本,如果不是的话,接下来会编译失败:
protoc version is 'libprotoc 3.0.0, expected version is '2.5.0'
如果我们运行文档中的:
sudo apt-get -y install libprotobuf-dev protobuf-compiler
protoc –version 会告诉我们安装的是3.0版本,这是不对的。我们需要的是2.5版。怎么办呢?只有去GitHub找到2.5版,然后重新编译安装。过程如下:

wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
tar -xzf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0/
./autogen.sh
./configure
make
make install

现在我们重新运行protoc –version 会看到版本是2.5了。
2.6更新Maven镜像
由于Maven默认连接的是国外的服务器,会很慢,所以我们需要更新Maven源为国内的服务器。推荐还有阿里云的Maven源://maven.aliyun.com/ 。
具体做法是:
cd ~/.m2 (如果没有这个文件夹,那么就在~目录mkdir .m2创建这个文件夹)

vi settings.xml

然后输入以下的内容:




nexus-aliyun
*
Nexus aliyun
//maven.aliyun.com/nexus/content/groups/public




3.编译Hadoop
首先我们下载最新的Hadoop源代码,访问官网//hadoop.apache.org/releases.html,可以看到最新的是2.7.3,所以我们点击2.7.3的source,会给我们一个比较快的下载地址。
wget //mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3-src.tar.gz
下载完毕后解压:

tar -zxvf hadoop-2.7.3-src.tar.gz

cd hadoop-2.7.3-src

最后,就是用Maven编译Hadoop:

mvn package -Pdist,native -DskipTests –Dtar

这是一个比较漫长的过程,可能要等10~20来分钟。如果一切正常,那么运行完毕后,我们会看到成功编译的通知:

我是在虚拟机中,花了23分钟,我们的Hadoop X64版本就编译出来了。
编译好的Hadoop是在:
hadoop-dist/target/ 目录下,hadoop-2.7.3.tar.gz文件便是。
我们可以把这个包下载到本地,或者传输到其他服务器,接下来就是用这个包安装Hadoop。    

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved