大数据时代早期,Apache HDFS 是构建具备海量存储能力数据仓库的首选方案。随着云计算、大数据、AI 等技术的发展,全部云厂商都在不断完善自家的对象存储,来更好地适配 Apache Hadoop/Spark 大数据以及各类 AI 生态。因为对象存储有海量、安全、低成本、高可靠、易集成等优点,各类 IoT 设备、网站数据都把各类形式的原始文件存储在对象存储上,利用对象存储加强和拓展大数据 AI 也成为了业界共识,Apache Hadoop 社区也推出了原生的对象存储“Ozone”。从 HDFS 到对象存储,从数据仓库到数据湖,把全部的数据都放在一个统一的存储中,也能够更加高效地进行分析和处理。后端
对于云上的客户来讲,如何构建本身的数据湖,早期的技术选型很是重要,随着数据量的不断增长,后续进行架构升级和数据迁移的成本也会增长。在云上使用 HDFS 构建大规模存储系统,已经暴露出来很多问题。HDFS 是 Hadoop 原生的存储系统,通过 10 年来的发展,HDFS 已经成为大数据生态的存储标准,但咱们也看到 HDFS 虽然不断优化,可是 NameNode 单点瓶颈,JVM 瓶颈仍然影响着集群的扩展,从 1 PB到 100+ PB,须要不断的进行调优、集群拆分来,HDFS 能够支持到 EB 级别,可是投入很高的运维成本,来解决慢启动,心跳风暴,节点扩容、节点迁移,数据平衡等问题。缓存
云原生的大数据存储方案,基于阿里云 OSS 构建数据湖是最合适的选择。OSS 是阿里云上的对象存储服务,有着高性能、无限容量、高安全、高可用、低成本等优点,JindoFS 针对大数据生态对 OSS 进行了适配,缓存加速,甚至提供专门的文件元数据服务,知足上云客户的各类分析计算需求。所以在阿里云上,JindoFS + OSS 成为客户采起数据湖架构迁移上云的最佳实践。安全
Jindo 是阿里云基于 Apache Spark / Apache Hadoop 在云上定制的分布式计算和存储引擎。Jindo 原是阿里云 开源大数据团队的内部研发代号,取自筋斗(云)的谐音,Jindo 在开源基础上作了大量优化和扩展,深度集成和链接了众多阿里云基础服务。架构
JindoFS 是阿里云针对云上存储自研的大数据缓存加速服务,JindoFS 的设计理念是云原生:弹性、高效、稳定和低成本。JindoFS 彻底兼容 Hadoop 文件系统接口,给客户带来更加灵活、高效的数据湖加速方案,彻底兼容阿里云 EMR 中全部的计算服务和引擎:Spark、Flink、Hive、MapReduce、Presto、Impala 等。JindoFS 有两种使用模式,块存储模式(BLOCK)和缓存模式(CACHE)。下面咱们介绍下如何在 EMR 中配置和使用 JindoFS 以及不一样模式对应的场景。框架
JindoFS 主要包含两个服务组件:元数据服务(NamespaceService) 和存储服务 (StorageService):运维
下图是 JindoFS 架构图:元数据服务 NamespaceService 部署在独立的节点,对于生产环境推荐部署三台(Raft)来实现服务高可用;存储服务 StorageService 部署在集群的计算节点,管理节点上的闲置存储资源(本地盘/SSD/内存等),为JindoFS 提供分布式缓存能力。机器学习
JindoFS 的元数据服务叫 JindoNamespaceService,内部基于 K-V 结构存储元数据,相对于传统的内存结构有着操做高效,易管理,易恢复等优点。分布式
JindoFS 的数据缓存服务叫 JindoStorageService,本地 StorageService 主要提供高性能缓存加速,因此运维上能够基于这样的设定大大简化。oop
JindoFS 的元数据存储在 Master 节点的 NamespaceService (高可用部署)上,性能和体验上对标 HDFS;Core节点的 StorageService 将一份数据块存储在 OSS 上,本地数据块能够随着节点资源进行快速的弹性伸缩。多集群之间也能够相互打通。性能
为了支持数据湖多种使用场景,一套 JindoFS 部署同时提供两种 OSS 使用方式,存储模式(Block)和缓存模式(Cache)。
基于JindoFS + OSS 来构建数据湖相比于其余数据湖方案同时具备性能和成本优点。
下面咱们重点来看存储成本。存储成本指的是存放数据后产生的存储费用,使用 OSS 是按量付费的,相比基于本地盘建立的 HDFS 集群有更好的成本优点,下面来计算和对比一下两者成本:
因为本地盘机型为总体价格,须要以下进行换算,预估存储成本以下:
(参考连接:https://www.aliyun.com/price/product#/ecs/detail )
考虑到实际使用 HDFS 会有3副本以及必定的预留空间,咱们以 HDFS 3 副本、 80% 使用率进行成本计算:
OSS 数据存储(标准型单价)= 0.12元/GB/每个月
(参考连接:https://www.aliyun.com/price/product#/oss/detail )
咱们能够看到使用 JindoFS 加速方案构建数据湖,要节省 25% 的存储成本。同时 OSS 是按量计费,即计算存储分离,当计算和存储比例存在差别时,好比存储资源高速增加,计算资源增长较小时,成本优点会更加明显。
对 OSS 数据进行缓存加速,须要额外使用计算节点上部分磁盘空间,带来必定成本。这部分红本,通常取决于热数据或者要缓存数据的大小,跟要存储的数据总量关系不大。增长这部分红本,能够换取计算效率的提高和计算资源的节省,总体效果能够根据实际场景进行评估。
数据湖是开放的,须要对接各类计算引擎。目前 JindoFS 已经明确支持 Spark、Flink、Hive、MapReduce、Presto 和 Impala 组件。同时,JindoFS 为了支持更好地使用数据湖,还提供 JindoTable 对结构化数据进行优化和查询加速;提供 JindoDistCp 来支持 HDFS 离线数据往 OSS 迁移;支持 JindoFuse 方便数据湖上加速机器学习训练。
原文连接本文为阿里云原创内容,未经容许不得转载。