Docker和hadoop

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解决弹性伸缩问题应该有发展。

本文分享自微信公众号 - 大数据和云计算技术(jiezhu2007),作者:朱洁

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简单3步,docker跑起来

    docker使用起来真是简单,只需要简单的几步,一个程序就能跑起来。 第一步,从docker官网上下载DockerToolbox-1.8.1c.pkg到本地,然...

    大数据和云计算技术
  • Big data analytics beyond hadoop

    今天给大家推荐一本书《big data analytics beyond hadoop》。书的名字应该可以翻译为《hadoop下一代数据分析技术》。 这本书主要...

    大数据和云计算技术
  • 数据库存储模型简述

    数据库现在应该是无人不知,无人不晓,讲到数据库必然要提到两个人: 1、一个是E.F. Codd,这个是理论的开创者,来瞻仰下: ? 埃德加·弗兰克·科德(Ed...

    大数据和云计算技术
  • Docker安装及使用

    由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:

    剧终
  • SpringBoot非官方教程 | 第二十四篇: springboot整合docker

    这篇文篇介绍,怎么为 springboot程序构建一个docker镜像。docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开...

    方志朋
  • Docker笔记

    1.创建空文件夹 假设新建一个名为wordpress的文件夹,然后进入这个文件夹。

    hankleo
  • Docker 生态

    curl -L https://github.com/docker/compose/releases/download/1.4.0/ docker-compo...

    用户5760343
  • 实验环境配置

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转...

    耕耘实录
  • 【Centos8】安装docker的坎坷历程

    有人说:curl -fsSL https://get.docker.com | bush -s docker – mirror Aliyun

    看、未来
  • 通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记

    在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到Docker hub中,以便在网络上下载使用。

    洗尽了浮华

扫码关注云+社区

领取腾讯云代金券