当前位置:   article > 正文

浅思docker和大数据

docker ps -la

至第一次听友人谈起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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/789378
推荐阅读
相关标签
  

闽ICP备14008679号