在Hadoop上运行Docker容器的六大陷阱

栏目: 服务器 · 发布时间: 8年前

内容简介:在Hadoop上运行Docker容器的六大陷阱
关于译者Ghostcloud:

Ghostcloud(中文名:精灵云)是成都精灵云科技有限公司旗下的基于 Docker 的PaaS/CaaS平台品牌。公司成立于2015年,核心团队由来自EMC、Veritas、华为、IBM、Microsoft的核心技术主管和架构师组成。精灵云作为国内首批从事容器虚拟化研发的企业,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,在国内Docker社区贡献排名前三。主创团队曾参与Beego开源项目研发,并主导发布《Docker容器实战:原理、架构与应用》一书。Ghostcloud因容器技术而生,致力于为多个领域的“互联网+”转型企业提供服务,是一流的企业级容器云服务专家。

在Hadoop上运行Docker容器的六大陷阱

尽管在Hadoop上集成了容器负载的潜在价值,目前任职于Cloudera的Daniel Templeton仍然建议在部署Docker容器之前,等待Hadoop 3.0版本引入安全问题和其他问题的注意事项。在上周于迈阿密召开的北美Apache大会上,Daniel在演讲中表示:“它的潜在价值确实很大,但Hadoop3.0发布前,它仍然解决不了你的问题。容器很酷,但你确实还无法使用它。”

作为Cloudera 的YARN项目中的一名软件工程师,Templeton曾深入了解过由Hadoop Linux Container Executor提供的Docker支持(下载),也曾经探讨过何时会出现更好的选择。他曾在探讨中坚持地认为是Docker应用在Hadoop之上,而不是Hadoop应用在Docker上。

“如果你也有一个Hadoop集群,你会和我一样,想在Docker容器里执行工作负载的。”

虽然Hadoop的YARN调度引擎目前支持Docker作为已提交应用的执行引擎,但当你在现有版本的Hadoop中执行它的时候,还是需要提前了解那些“坑”。

陷阱一:Docker容器中必须开放应用权限

目前,当你在运行Docker容器时,需要指定一个用户运行它。如果你指定的是用户ID而不是用户名,假如这个用户ID不存在,它也会自动为你创建用户。这种重新映射在遇到大量image的时候是无法正常工作的,也就意味着用户必须事先指定,如若不然,你将无法访问任何内容,也不能启动脚本和记录日志,将完全处于宕掉的状态。

这个问题目前还没有一个很好的解决办法,如果你有好的想法,欢迎到YARN-4266上参与讨论( https://issues.apache.org/jira/browse/YARN-4266 )。

图片描述

图自Daniel Templeton的演讲内容

陷阱二:Docker容器和运行环境之间不独立

可移植性是Docker容器最主要的特性之一,但运行于Hadoop的时候Docker的可移植性却不怎么好。当你想访问HDFS或者当你需要反译令牌,又或者当你需要像MapReduce这样的框架,亦或你想做Spark的时候,你必须得拥有image中的代码文件才可以实现。因此Hadoop的版本必须升级。

升级Hadoop版本的补丁程序可以在YARN-5534上下载(下载地址: https://issues.apache.org/jira/browse/YARN-5534 )。该补丁程序允许安装被列为白名单的存储卷,且开放管理员权限。当你拥有管理员权限,不仅这些目录可以被允许安装到Docker容器中,而且可以指定要挂载的目录。但需要注意的是,千万不要挂载任何可能会搞砸的东西。

陷阱三:image太大就会报错

当执行程序的时候,docker_run将隐含地从repo中拉出图像,虽然Spark和MapReduce都有10分钟的超时时间,但如果图像太大,网络下载时间超过了10分钟,程序就会报错。假如持续地重新提交程序,导致的最终结果将会是程序处在某个已经尝试过的节点上并运行。目前针对这种图像报错,YARN上对图像缓存暂无有效的解决方法。

陷阱四:不支持安全回收

Docker会将访问了client_config中安全备份的.docker / config.json文件进行存储备份,这个应该众所周知。这意味着当你访问安全备份时,无论从哪个节点管理器登录,你都会受到用户主目录中.docker / config.json文件的约束。恐怕这种限制没人能接受。

陷阱五:网络只有最基本的支持

众所周知,当应用Kubernetes、Mesos这类容器管理 工具 的时候,网络很容易就得到实现,CNS也能得到处理。但YARN却提供不了这样的网络管理服务。YARN没有内置的端口映射的概念,网络也没有真正的自动化管理。相反,如果你想请求访问网络,你只能通过所有节点管理器上的Docker来显式创建网络。

陷阱六:具备较大的安全隐患

Docker在Hadoop上运行是有安全隐患的。为什么这么说?Docker中的一个特权容器可以窥探底层操作系统,访问斜线进程和设备。假如是以root权限运行在容器当中,那么在底层操作系统中很有机会执行非常可怕的操作。当这种情况发生的时候,YARN目前是无法指定到用户的。虽然可以通过将其关闭或限制到某一特定用户组的做法来控制它,但这个安全隐患的问题必须得到重视。

在Hadoop上运行Docker容器的六大陷阱

Hadoop 3.0

虽然Hadoop2.8中存在Docker的修复程序,但仍然不够用。在本次更新版本中,Hadoop3.0新增功能点:

•支持本地化的文件目录作为卷进行安装;

•支持cgroups;

•支持不同的网络选项;

•支持文档;

据悉Hadoop3.0将很可能在年底发布,其主要功能Hbase擦除编码将得到改进,并将为用户提供1.5倍的存储空间。这意味着可以节省用户一半的硬盘成本,并对YARN和MapReduce的用户产生巨大的影响。

目前Hadoop3.0的项目一直与雅虎,Twitter和微软等主要用户合作,确保与现有系统的兼容性,并且不会出现任何痛苦的滚动升级。

原文:


以上所述就是小编给大家介绍的《在Hadoop上运行Docker容器的六大陷阱》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computers and Intractability

Computers and Intractability

M R Garey、D S Johnson / W. H. Freeman / 1979-4-26 / GBP 53.99

This book's introduction features a humorous story of a man with a line of people behind him, who explains to his boss, "I can't find an efficient algorithm, but neither can all these famous people." ......一起来看看 《Computers and Intractability》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具