JindoFS概述:云原生的大数据计算存储分离方案

简介: JindoFS 是一套新的云原生的数据湖解决方案。在 JindoFS 之前,云上客户主要使用 HDFS 和 OSS/S3 作为大数据存储。HDFS 是 Hadoop 原生的存储系统,10 年来,HDFS 已经成为大数据生态的存储标准,但是我们也可以看到 HDFS 虽然不断优化,但是 JVM 的瓶颈也始终无法突破。

作者:诚历,阿里巴巴计算平台事业部 EMR 技术专家,Apache Sentry PMC,Apache Commons Committer,目前从事开源大数据存储和优化方面的工作。


JindoFS概述:云原生的大数据计算存储分离方案

JindoFS 之前

在 JindoFS 之前,云上客户主要使用 HDFS 和 OSS/S3 作为大数据存储。HDFS 是 Hadoop 原生的存储系统,10 年来,HDFS 已经成为大数据生态的存储标准,但是我们也可以看到 HDFS 虽然不断优化,但是 JVM 的瓶颈也始终无法突破,社区后来重新设计了 OZone。OSS/S3 作为云上对象存储的代表,也在大数据生态进行了适配,但是由于对象存储设计上的特点,元数据相关操作无法达到 HDFS 一样的效率;对象存储给客户的带宽不断增加,但是也是有限的,一些时候较难完全满足用户大数据使用上的需求。

Jindo 的由来

EMR Jindo 是阿里云基于 Apache Spark / Apache Hadoop 在云上定制的分布式计算和存储引擎。Jindo 原是内部的研发代号,取自筋斗(云)的谐音,EMR Jindo 在开源基础上做了大量优化和扩展,深度集成和连接了众多阿里云基础服务。阿里云 EMR (E-MapReduce) 在 TPC 官方提交的 TPCDS 成绩,也是使用 Jindo 提交的。

http://www.tpc.org/tpcds/results/tpcds_perf_results.asp?resulttype=all

JindoFS

EMR Jindo 有计算和存储两大部分,存储的部分叫 JindoFS。JindoFS 是阿里云针对云上存储定制的自研大数据存储服务,完全兼容 Hadoop 文件系统接口,给客户带来更加灵活、高效的计算存储方案,目前已验证支持阿里云 EMR 中所有的计算服务和引擎:Spark、Flink、Hive、MapReduce、Presto、Impala 等。Jindo FS 有两种使用模式,块存储模式和缓存模式。下面我们来分析下,JindoFS 是如何来解决大数据上的存储问题的。

1.png

块存储模式

计算和存储分离是业界的趋势,OSS 这样的云上存储能力是无限大的,成本上非常有优势,如何利用 OSS 提供的无限存储能力,同时又高效地操作文件系统的元数据。JindoFS 块存储模式提供了一套完整的云原生解决方案。

image.png

JindoFS 的块存储模式,在元数据上使用 JindoNameService 服务管理 Jindo 文件系统元数据,元数据操作的性能和体验上可以对标 HDFS NameNode。同时,JindoStorageService 保障了数据可以始终有一份存在 OSS 上,即使数据节点被释放,数据也可以随时从 OSS 上拉取,成本上也可以做到更加灵活。

JindoFS 的块存储模式,也支持多种存储策略,比如,本地存两份,OSS上存一份;本地存两份,OSS上不存储;本地不存,OSS上存一份等等。用户可以充分利用不同的存储策略根据业务或者数据冷热进行使用。

块存储使用了全新的 jfs:// 格式,原始 HDFS/OSS 数据通过 distcp 方式即可完成数据导入,同时,JindoFS 提供了 SDK,在 EMR 集群外部,用户也可以读写 Jindo FS。

缓存模式

缓存模式,正如“缓存”本身的含义,通过缓存的方式,在本地集群基于 JindoFS 的存储能力构建了一个分布式缓存服务,远端的数据可以保存在本地集群,使远端数据变成“本地化”。简单地描述 JindoFS 缓存模式解决的问题
就是“OSS / 远端HDFS 已经有了大量数据,每次读数据的时候网络带宽经常被打满,Jindo FS 就可以通过缓存模式优化网络带宽的限制。

“原来的文件路径是 oss://bucket1/file1 或 hdfs://namenode/file2,不想改作业的路径可以吗?”。是的,不需要修改。EMR 对 OSS 进行了适配(后续会支持远端 HDFS 的场景),可以通过配置的方式使用缓存模式。缓存对于上层的作业做到了完全无感。

但是缓存模式也不是万能的,为了保证多端数据一致性,rename 这种操作一定要同步刷新到远端的 OSS / HDFS,特别是 OSS 的Rename 操作比较耗时,缓存模式对 rename这种文件元数据操作暂时不能优化

总结

在 2019 年的云栖大会上,EMR Jindo 的技术存储分离方案得到很大的关注,视频直达链接【云上大数据的一种高性能数据湖存储方案】
【EMR打造高效云原生数据分析引擎】后续我们也会在云栖社区和钉钉群分享更多的 Jindo 技术干货,欢迎有兴趣的同学加入 《Apache Spark技术交流社区》进行交流和技术分享。

相关文章【JindoFS - 云上大数据高性能数据湖存储方案】
扫码加入

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
4月前
|
存储 关系型数据库 MySQL
Mysql 存储大数据量问题
Mysql 存储大数据量问题
101 1
|
13天前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之大数据计算MaxCompute中需要存储16进制的数据,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
13天前
|
运维 Cloud Native 安全
【专栏】随着信息技术发展,运维正向自动化、智能化转型,云原生运维成为主流,大数据驱动运维决策,而安全运维日益重要
【4月更文挑战第29天】随着信息技术发展,运维正向自动化、智能化转型,云原生运维成为主流,大数据驱动运维决策,而安全运维日益重要。面对技术更新快、人才短缺和复杂性增加的挑战,企业需建立培训体系,加强人才培养,优化运维管理,以适应未来运维需求。随着这些趋势,运维领域将迎来更广阔的发展前景。
|
4月前
|
人工智能 Cloud Native 大数据
活动回顾丨云原生技术实践营上海站「云原生 AI &大数据」专场(附 PPT)
活动回顾丨云原生技术实践营上海站「云原生 AI &大数据」专场(附 PPT)
|
4月前
|
存储 人工智能 运维
【云原生企业级数据湖:打破数据孤岛,优化存储成本】
【云原生企业级数据湖:打破数据孤岛,优化存储成本】 随着大数据时代的到来,企业对于数据的处理和存储需求日益增长。如何有效地存储和管理大量数据,同时降低运维成本,成为了企业面临的一大挑战。盛通教育的云原生企业级数据湖方案,正是为了解决这一问题而设计的。
165 1
|
4月前
|
弹性计算 运维 Cloud Native
阿里云云原生弹性方案,用弹性解决集群资源利用率难题
本文主要介绍了通过弹性,实现成本优化,解决集群资源利用率难题。
92531 8
|
5月前
|
存储 分布式计算 大数据
开通大数据计算MaxCompute就能存储外表了吗?
开通大数据计算MaxCompute就能存储外表了吗?
30 0
|
5月前
|
Kubernetes Cloud Native 安全
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
86 0
|
5月前
|
Kubernetes Cloud Native NoSQL
TuGraph Analytics云原生部署:基于K8S Operator的轻量级作业启动方案
TuGraph Analytics作业可以通过Console提交部署到K8S集群,但Console是一个独立的Web系统,部署形态上相对较重。在平台工具系统接入或大数据生态集成场景中,需要更轻量级的快速接入TuGraph Analytics的方案。