转 Docker和hadoop

2017-06-21 朱洁

Docker很热,怎么形容?感觉开源除了spark技术,就是docker了,甚至把Go语言也带火了,把Go在TIOBE的排名从百名外带入主流语言的行列。

Docker快成救世主了,这么牛逼的技术,docker和hadoop碰撞出什么火花来呢,是不是得赶紧用上呢?

就不介绍具体什么是docker了,不是一门全新的技术,是基于LXC的高级容器引擎,从linux内核发展出来的轻量隔离技术。相比单纯的隔离,核心是标准化了镜像打包,部署和发布这个过程,相当于标准化了开发过程。就运行态来说,相比VM,核心优势就是轻量,劣势也明显,安全性不足,容易攻破。下图是一个VM和容器的对比:

关于LXC,google的大规模集群管理工具borg号称十年前就使用上了,使用场景就是大数据场景,而且批量/实时场景号称都支持的很好,集群资源利用率也非常高,所以照这个说起来,大数据和docker渊源很深。

但是现实的情况是,docker在hadoop领域用的并不是很好。目前主流两种用法:

第一种方法是用Docker来直接运行Hadoop。例如hortonworks,收购了一家叫SequenceIQ的公司,通过叫Cloudbreak的技术,将Hortonworks Data Platform(HDP)打包成Docker镜像,好处是可以在微软Azure、亚马逊AWS、谷歌云平台等任何主流云平台上启动HDP。这种解决的是在多云平台部署的问题。但是这个公司被收购之后也没有更多的消息了。Github上的最后一次更新也在5个月之前。

这个至多只是解决开发环境的问题,hadoop很难在不同的环境下,不调优而跑出一致的表现,天生的使用场景受限,价值有限。

第二种方法是通过YARN来使用Docker容器进行应用部署,yarn是支持docker的,具体可以看看:

http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/DockerContainerExecutor.html

yarn作为资源管理,由于其扩展能力,一直被压缩在了大数据领域,如果为了任务级别更高资源利用,通过FAIR调度算法足于,更强的隔离反而限制了资源的弹性使用。

当前资源调度更火是k8s(google主推,号称从borg发展而来)和mesos(伯克利大学主推)。瞄准的场景也更多的是应用级别,yarn支持docker处在一个很尴尬的地步。

综合来说,hadoop体系有自己的一套资源管理系统,要解决的问题是多个服务器并行调度起来当一个服务器使用的问题。而docker技术本质上和VM一样,是将一个服务器拆成多份给更多的应用使用。Docker和hadoop体系在云下物理机的场景非常有限,未来在云上替代VM解决弹性伸缩问题应该有发展。

时间: 2024-08-29 03:16:32

转 Docker和hadoop的相关文章

Windows 7中的VirtualBox中的Ubuntu 14.04中基于Docker安装Hadoop

1. 在VirtualBox中安装Ubuntu 14.04 2. 在Ubuntu 14.04中安装Docker 3. 安装基于Docker的Hadoop 下载image docker pull sequenceiq/hadoop-docker:2.6.0   运行container docker run -i -t sequenceiq/hadoop-docker:2.6.0 /etc/bootstrap.sh –bash   测试Hadoop(将ubuntu的内存调到2G,即2048MB,否则

Docker安装Hadoop

一.概述 形成了安装有vim.jdk.ssh的centos镜像,现在我们在这个的基础上继续搭建haoop. 在正式开始前,了解一些docker容器的操作命令 docker  ps:查看活动的容器 docker ps -a:查看所有的容器(包括终止状态的) docker images:查看镜像 docker run:基于镜像新建一个容器 docker container start 容器id:启动已经终止的容器,但不会进入容器,容器在后台执行 docker container stop 容器id:

Docker搭建Hadoop环境

文章目录 Docker搭建Hadoop环境 Docker的安装与使用 拉取镜像 克隆配置脚本 创建网桥 执行脚本 Docker命令补充 更换镜像源 安装vim 启动Hadoop 测试Word Count 查看Web管理页面 Docker搭建Hadoop环境 Hadoop集群环境配置起来相当繁琐,并且在学习Hadoop过程中没有一般不会去使用多台设备进行分布式集群配置.因此在一台机器上配置Hadoop分布式集群时通常采用虚拟机来模拟多台设备,但虚拟机较为占用系统资源,开多个虚拟机(模拟Hadoop

docker搭建Hadoop集群

一个分布式系统基础架构,由Apache基金会所开发. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储. 首先搭建Docker环境,Docker版本大于1.3.2 安装主机监控程序和加速器(curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s 7a029f60d36056fe1b85fabca6a133887245abe6) docker pull daocloud.io/library

docker 安装hadoop

上一篇文章介绍了一些docker的基本命令,这篇文章来安装一个HADOOP 一.下载hadoop镜像 @~/git/github/docker-ambari (master)$ docker pull sequenceiq/hadoop-docker:2.6.0 Pulling repository sequenceiq/hadoop-docker 7b738796aaab: Pulling dependent layers 89b52f216c6c: Download complete ...

Docker部署Hadoop集群

一.主机规划 3台主机:1个master.2个slaver/worker ip地址使用docker默认的分配地址: master: 主机名: hadoop2.ip地址: 172.17.0.2 slaver1: 主机名: hadoop3.ip地址: 172.17.0.3 主机名: hadoop4.ip地址: 172.17.0.4 二.软件安装 1.在docker中安装centos镜像,并启动centos容器,安装ssh.--详见"docker上安装centos镜像"一文. 2.通过ssh

Docker中Hadoop集群搭建

使用腾讯云主机,docker构建集群测试环境. 环境 1.操作系统: CentOS 7.2 64位 网路设置 hostname IP cluster-master 172.18.0.2 cluster-slave1 172.18.0.3 cluster-slave2 172.18.0.4 cluster-slave3 172.18.0.5 Docker 安装 curl -sSL https://get.daocloud.io/docker | sh ##换源 ###这里可以参考这篇文章http:

docker搭建hadoop分布式系统

本来我一直想搭建一个hadoop分布式平台,没有高性能机器,也没有那么多机器,搞很很久,都没有能搞定.但基于docker,5-10min轻易搞定. 感谢大神KiwenLau的分享,网址是https://kiwenlau.com/2016/06/12/160612-hadoop-cluster-docker-update/ 一. 项目介绍 将Hadoop打包到Docker镜像中,就可以快速地在单个机器上搭建Hadoop集群,这样可以方便新手测试和学习. 如下图所示,Hadoop的master和sl

HADOOP docker(八):hadoop本地库

前言2. Native Hadoop Library3. 使用本地库4. 本地库组件5. 支持的平台6. 下载7. 编译8. 运行时观察9. 检查本地库10. 如果共享本地库 小伙伴还记得每次启动hdfs就会报can't find native libriaries吗?今天我们就来聊聊这个~ 文档:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html