浅思docker和大数据

至第一次听友人谈起docker已有一年多时间,之间也会偶尔想想怎么在工作之中利用一下。每当思考起来,都感觉“完全没什么卵用”,然后不了了之。知道近日为了安装一个叫做Hue的东西,苦于系统编译hue实在是过不了,才真正上手用了docker,试了试AWS ECS,也才仔细的思考了“why docker?”

##操作docker docker可以简单的看做一个虚拟机镜像的git,常用的命令大概有这么几个:

  • 载入一个镜像

docker pull user/image:tag

  • 显示本地的镜像

docker images

  • 用镜像开启一个容器,并交互的方式运行命令行

docker run -it imageId /bin/bash 结束container按Ctrl+D,退出container按Ctrl+Q+P;

  • 列举所有状态的容器

docker ps -la

  • 以交互模式启动一个容器

docker start -i containerId

##AWS ECS AWS把Elastic Beantalks也看做容器服务,现在也支持载入docker镜像。当用户只想拿着镜像就开跑的话,AWS建议使用Elastic Beantalks。

AWS ECS则提供了更为复杂的环境:可以创建多个instance的cluster,每个cluster上可以创建多个task,可以灵活使用ELB,可以做source/container文件系统映射。

要注意每一个task应该是一个完整的体系,比如说一整个LAMP。

##Why docker? docker的最大优势在于快速、低成本的虚拟化,可以做到一个宿主机上部署几十甚至上百个几乎一模一样的环境。而大数据领域更多的是多个instance联合起来成为大的集群以获取更强大的能力 - hadoop集群、spark集群、akka集群都是这样。我的思考是这两者是利用硬件资源的两个相反的方向:一个聚小成多,一个切大成小。

那到底什么时候我们应该考虑使用docker?(除了装软件真的装不上这种苦逼事以外)

  • 多租户环境/PAAS,这是最好理解的应用场景,如Leancloud这样的数据库平台;
  • 开发、测试、部署环境,这比较好理解,但是放在大数据领域却难以实现,因为一个docker无法放下整个环境;
  • 多版本维护、升级部署、代码回滚,
  • 数据处理组件的部署,尤其是scalable的worker,如ETL。说起来以前我们Rails下的crawler确实可以包装成docker。worker的部署再怎样也是自动化的,于是感觉唯一会带来的好处可能是dockfile会比ansible playbook稍微好写一点(待定)。

那docker在大数据领域到底有没有用,比如说能不能和hadoop配合?当然有,除了这种高端技术以外,至少我们可以在一台本机上部署一个多节点hadoop集群了不是?嘿、嘿、嘿...

转载于:https://my.oschina.net/princeicelk/blog/726592

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值