资讯专栏INFORMATION COLUMN

基于Docker编译Hadoop

用户84 / 1791人阅读

摘要:摘要将编译所需要的依赖软件安装到镜像中,然后在容器中编译,可以提高编译效率,同时避免污染主机。这篇博客将介绍基于编译的方法。运行容器编译软件软件源码以数据卷的形式挂载的容器内,编译所得的可执行文件也将位于数据卷内。

摘要: 将编译Hadoop所需要的依赖软件安装到Docker镜像中,然后在Docker容器中编译Hadoop,可以提高编译效率,同时避免污染主机。编译其他软件时,也可以参考这篇博客的方法。

GitHub地址:

kiwenlau/compile-hadoop

在前一篇博客中,我介绍了64位Ubuntu中编译Hadoop的步骤。这篇博客将介绍基于Docker编译Hadoop的方法。

一. 编译步骤

1. 下载Docker镜像

sudo docker pull kiwenlau/compile-hadoop

或者自行构建Docker镜像

sudo docker build -t kiwenlau/compile-hadoop .

2. 下载并解压Hadoop源文件

export VERSION=2.7.2
wget http://archive.apache.org/dist/hadoop/core/hadoop-$VERSION/hadoop-$VERSION-src.tar.gz
tar -xzvf hadoop-$VERSION-src.tar.gz

3. 运行Docker容器,在容器中编译Hadoop

sudo docker run -v $(pwd)/hadoop-$VERSION-src:/hadoop-$VERSION-src kiwenlau/compile-hadoop /root/compile.sh $VERSION

这一步比较耗时,大概需要15~30分钟。

正确执行的结果如下:

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23:46.056s
[INFO] Finished at: Tue May 31 16:40:53 UTC 2016
[INFO] Final Memory: 210M/915M
[INFO] ------------------------------------------------------------------------


comile hadoop 2.7.2 success!

编译好的二进制文件包位于

hadoop-2.7.2-src/hadoop-dist/target/hadoop-2.7.2.tar.gz

编译其他版本的Hadoop的步骤一致,仅需改变VERSION的值。

可以使用wget命令直接下载GitHub上的Hadoop二进制包:

wget https://github.com/kiwenlau/compile-hadoop/releases/download/$VERSION/hadoop-VERSION.tar.gz
二. 方法总结

编译其他软件时,也可以参考本文介绍的方法,具体细节可以参考源码kiwenlau/compile-hadoop

1. 构建编译所需的Docker镜像

编译软件往往需要安装很多依赖,而编译不同的软件有时需要不同版本的依赖,如果直接在主机上安装这些依赖会污染主机,而且也不易重复。

2. 下载软件源码

源码不放在Docker镜像里面,可以方便编译不同版本的软件,也可以提高构建Docker镜像的效率。

3. 运行Docker容器编译软件

软件源码以数据卷(volume)的形式挂载的容器内,编译所得的可执行文件也将位于数据卷内。


版权声明
转载时请注明作者KiwenLau以及本文地址:
http://kiwenlau.com/2016/06/05/160605-compile-hadoop-docker/


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26620.html

相关文章

  • 基于Docker搭建Hadoop集群之升级版

    摘要:总之,项目还算很受欢迎吧,这篇博客将介绍项目的升级版。一项目介绍将打包到镜像中,就可以快速地在单个机器上搭建集群,这样可以方便新手测试和学习。之前的版本使用为集群提供服务,由于网络功能更新,现在并不需要了。运行参考第二部分启动,并运行。 摘要: kiwenlau/hadoop-cluster-docker是去年参加Docker巨好玩比赛开发的,得了二等奖并赢了一块苹果手表,目前这个项目...

    Zoom 评论0 收藏0
  • Hadoop on Docker

    摘要:是源码,要编译才能用。的是给位机器用的,想在位机器上用只能用编译的。解压配置环境变量在和中添加环境变量添加环境变量修改修改修改文件修改在文件中添加镜像启动集群进入到每个节点执行每个节点配置查看地址配置启动查看参考 docker安装 安装 yum install -y epel-releas yum install docker-io 加入开机启动 chkconfig docker on...

    fizz 评论0 收藏0
  • 基于docker1.7.03.1单机上部署hadoop2.7.3分布式集群

    摘要:和,容器中的这三个文件不存在于镜像,而是存在于,在启动容器的时候,通过的形式将这些文件挂载到容器内部。 基于docker1.7.03.1单机上部署hadoop2.7.3分布式集群 [TOC] 声明 文章均为本人技术笔记,转载请注明出处:[1] https://segmentfault.com/u/yzwall[2] blog.csdn.net/j_dark/ 0 docker版本与ha...

    jiekechoo 评论0 收藏0

发表评论

0条评论

用户84

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<