前言
由于看中了 E-MapReduce (简称 EMR)云产品的易用性(易开发,易运维,易集成),低价,安全,高可用等特性,很多用户会选择把他们的线下的 Hadoop 集群迁移到 EMR 上来;也有一些企业,特别是一些初创企业, 本身是没有线下集群的,也会选择在云上直接从无到有开发大数据应用.
目前 EMR 除了支持 Hadoop 原生的基于本地盘(或云盘)的 HDFS,也支持使用 OSS 来存储数据.云盘和本地盘在使用方法上是一样的,也最容易被理解.OSS 也可以作为和 HDFS 相同级别的数据存储方式,也为 EMR 数据存储提供了一个新的选择.那么使用 OSS 有什么优势,又有什么缺点,什么情况下我们会使用 OSS 来代替 HDFS,到底使用什么存储方案,这是首先摆在我们面前的一个问题.
这里分别列举各种场景下两种方案的优缺点,各位可以根据实际情况,选择最合适自己业务的一种方式.
优缺点
上云迁移
对于两种存储方式而言,迁移方面可能有两方面的影响.
首先是数据迁移的方法而言.如果是迁移到 HDFS,相当于是两个 HDFS 之间的迁移,可以使用 Distcp.另外也可以使用 Datax 之类的工具,或者 hadoop fs -get 后拷贝过来再 - put 到新的 HDFS 上等.而如果是使用 OSS 来存储数据,OSS 支持用 Distcp 拷入数据,也支持 Datax(有 OSSReader).另外拷贝后用 hadoop fs -put 的方法写入数据的方法,也可以相应得替换成 osscmd 拷贝.以上看来两个方案没有太大的区别,但是考虑到网络是否可达,因为 EMR 的 Worker 节点没有公网 IP,很多场景下需要比 OSS 的方案要做更多的工作.整体而言,数据迁移方面 OSS 略微胜出.
另外一部分需要考虑的是业务代码的迁移.如果直接使用 HDFS,那业务代码上理论上不需要任何调整.而使用 OSS 存储数据的修改不过是在文件的路径上,把文件路径从 HDFS 的路径改成 OSS 的路径就可以了.相比而言需要少量的改动.
计算性能
根据测试,使用 OSS 存储数据计算上性能上略有降低.随着系统的优化,OSS 存储数据的性能还会更好,对于性能要求不高的情况可以考虑使用 OSS.不过现在推出的 D1 等机型配合 EMR 计算效果非常不错,对于性能比较看中且数据量较大的场景的可以用云盘上的 HDFS 的方案.
数据可用性
如果使用云盘 + HDFS 的方案,数据可用性依赖于云盘的可用性以及 HDFS 的冗余.如果是使用 OSS,数据可用性可以参考 OSS 的 SLA,目前可以保证 99.99999999% 的可用性.
弹性存储
如果数据存在 HDFS 上,如果数据写满后需要增加节点,目前 EMR 产品上没有现成的方法,需要用户自己购买机器并通过开源系统自己的方法添加节点并做 rebalance,操作起来非常麻烦.但是如果使用 OSS 来存储数据,可以近似认为 OSS 的数据容量是无限的,不再需要考虑数据存储容量的问题.
弹性计算
使用 OSS 作为数据源,计算结束结果数据写回到 OSS 里,那集群就可以释放了.下个计算周期如果计算量增加,可以弹性得创建一个更大的集群 (或者使用其他的机型来创建集群) 来运行作业.后续 EMR 会支持在创建集群的时候选择竞价型实例,从而减少一笔费用.而如果是使用云盘 HDFS 的方案,上诉需求均无法实现.
计量计费
两种方案均支持包年包月的 EMR 付费模式.
使用 OSS 售价更低( OSS 售价 ),而且再考虑到弹性存储(OSS 只为实际存储的文件付费,使用云盘需要为整块云盘付费,而云盘需要为后续业务预留容量)和弹性计算(计算结束后释放整个集群,减少集群空置),实际上使用 OSS 的方案只会带来更低的成本.
数据湖与数据集成
如果数据存在 HDFS 上,外部数据参与计算需要先通过 ETL 导入到 HDFS 上.同样的,如果计算的结果要为外部应用所用,也需要导出来,多系统集成比较不便.如果是使用 OSS 来存储数据,各个应用之间统一使用 OSS 进行存储数据和管理,更方便搭建数据湖,并方便和其他的系统做数据交互.
冷数据与生命周期
如果数据存在 HDFS 上, 当前暂时还没有有效的冷数据处理策略.对于数据的生命周期也是需要用户自行管理.但是如果存在 OSS 上,就可以用上 OSS 的生命周期 管理功能,以及 OSS 的低频访问类型(Infrequent Access)与归档类型(Archive)支持.
总结
随着 EMR 和 OSS 的兼容做的越来越好和云计算网络环境的提升,OSS 作为存储会越来越多得体现出其优势.对比两种方案,OSS 方案最大的缺点是在读数据的时候性能低于 HDFS,可以把数据的最初读取和最终的结果使用 OSS,中间的临时计算变量放到 HDFS 上,可以一定程度上缓解这个问题.当然具体使用什么方案还需要根据实际情况选择最合适自己的才是最好的方案.
来源: https://yq.aliyun.com/articles/371984