设为首页 收藏本站
查看: 1520|回复: 0

[经验分享] 在Ubuntu X64上编译Hadoop

[复制链接]

尚未签到

发表于 2017-12-17 10:56:57 | 显示全部楼层 |阅读模式
  在之前的文章中介绍了如何直接在Ubuntu中安装Hadoop。但是对于64位的Ubuntu来说,官方给出的Hadoop包是32位的,运行时会得到警告:

  WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java>  所以我们最好是自己在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源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://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源:http://maven.aliyun.com/ 。  

具体做法是:  

cd ~/.m2 (如果没有这个文件夹,那么就在~目录mkdir .m2创建这个文件夹)  

  

vi settings.xml  

  

然后输入以下的内容:  

  

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
<mirrors>
  
<mirror>
  
<id>nexus-aliyun</id>
  
<mirrorOf>*</mirrorOf>
  
<name>Nexus aliyun</name>
  
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
  
</mirror>
  
</mirrors>
  
</settings>
  

  3.编译Hadoop
  首先我们下载最新的Hadoop源代码,访问官网http://hadoop.apache.org/releases.html,可以看到最新的是2.7.3,所以我们点击2.7.3的source,会给我们一个比较快的下载地址。
  wget http://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来分钟。如果一切正常,那么运行完毕后,我们会看到成功编译的通知:
DSC0000.png

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424966-1-1.html 上篇帖子: hadoop节点之间通信问题 下篇帖子: C# Hadoop学习笔记(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表