编者按:高可用架构推出 2015 年度案例系列文章,分享在架构领域具有典型意义的年度案例,本文由董西成分享。转载请注明来自高可用架构公众号「ArchNotes」。
Hadoop 2015 技术发展与 2016 发展趋势Hadoop 部分分为 HDFS 和 YARN 两部分,首先介绍 HDFS 在 2015 年的进展。 HDFS HDFS 在 2015 年有几个重大特性发布,我列出三个最为突出的:
异构存储介质的支持,使得 HDFS 朝着异构混合存储方向发展。 我们都知道,HDFS 之前是一个以磁盘单存储介质为主的分布式文件系统。但随着近几年新存储介质的兴起,支持多存储介质早就提上了日程。目前,HDFS 已经对多存储介质有了良好的支持,包括 Disk、Memory 和 SSD 等。 HDFS 具体支持的介质如下:
这是 HDFS 异构存储介质示意图,我们可以通过参数 dfs.datanode.data.dir 指定每块盘的类型,这样,当写文件时,可以指定文件存储到某种存储介质上。 这张表给出了 HDFS 支持的存储策略,不同的策略,存储方式是不同的。用户可以针对不同类型的文件,定制相应的存储策略。
在 HDFS 之上单独搞多存储介质支持是不太友好的,最好跟 Hadoop 中资源管理系统 YARN 做一个结合,所以,有人预测,HDFS 和 YARN 的关系会逐步朝下图展示的方式发展: 也就是说,YARN 统一管理异构存储介质和资源,包括磁盘,SSD,网络,CPU 和 memory,并将这些资源分配给 MapReduce,HBase,甚至 HDFS。 YARN 在2015年,YARN 取得了重大进展,本来准备了 5 个特性,由于时间关系,今天主要介绍三个:
这个特性使得 YARN 能够更好地支持异构集群调度。它的基本思想是,管理员可为每个 NodeManager 赋予一个或多个标签(就是一字符串),之后在调度器中配置资源队列与 label 的对应关系(目前仅支持 Capacity Scheduler),这样,管理员就实现了:按照节点类型将 YARN 分成若干个逻辑上相互独立(可能交叉)的集群。这种集群跟物理上独立的集群很不一样,用户可以很容易地通过动态调整 label,实现不同类型节点数目的增减,这具有很好的灵活性。 给大家举两个例子,这都是在 Hulu 内部的实际应用:
这两种应用场景,都可以很好地使用标签调度解决 这是一个可能的部署图。YARN 在 2015 年新增的另外一个重大特性是:支持长服务。 YARN 的最终定位是通用资源管理和调度系统,包括支持像类似 MapReduce,Spark 的短作业和类似 Web Service,MySQL 的长服务。 支持长服务是非常难的一件事情,YARN 需要解决以下问题:服务注册、日志滚动、ResourceManager HA、NodeManager HA(NM 重启过程中,不影响 Container)和 ApplicationMaster 永不停止,重启后接管之前的 Container。 目前 Apache 有个二级项目叫 Apache Slider,可以帮助用户把已有应用或服务运行在 YARN 上,比如 HBase,Presto 等都已经通过 Slider 部署到 YARN 上。 YARN 第三个重大特性是实现了一个简易版 Docker On YARN。 实现思路是:YARN 的 ContainerExecutor 是可插拔的,目前提供了两种实现:DefaultContainerExecutor 和 LinuxContainerExecutor,而 Docker On YARN 正是通过引入第三种 ContainerExecutor 实现的,叫 DockerContainerExecutor 在 YARN 上运行一个 Docker Container 的方式如下,大家感受下: 当然,目前 YARN 自带的 Docker On YARN 是有很多局限性的,包括:
为此,Hulu 内部自己开发了 Voidbox,一个较好的 Docker On YARN 方案。Hulu 的 Docker On YARN 方案叫 Voidbox,它提供了丰富的编程 API,支持 DAG Batch job 和 Long running Service 两种应用,具备良好的容错性。 由于篇幅关系,感兴趣的同学可参考我的技术博客:http://dongxicheng.org/mapreduce-nextgen/voidbox-docker-on-hadoop-hulu/ 2016 年发展趋势 对于 HDFS,会朝着异构存储介质方向发展,尤其是对新兴存储介质的支持。对于 YARN,会朝着通用资源管理和调度方向发展,而不仅仅限于大数据处理领域,包括对 MapReduce、Spark 短作业的支持,以及对 Web Service 等长服务的支持。 Q |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|