开源大数据社区 & 阿里云 EMR 系列直播 第七期
主题:云原生数据湖构建与分析最佳实践
讲师:健身,阿里巴巴计算平台事业部 EMR技术专家
内容框架:
- 背景介绍
- 架构分析
- 性能与成本
- 客户案例
直播回放:扫描文章底部二维码加入钉群观看回放
1
背景介绍
大数据 4V概念:
第一代云上开源大数据平台
- 数据快速增长时,存储成本高
- HDFS NameNode横向扩展瓶颈
- HDFS Federation运维复杂度比较高
第二代云上开源大数据平台
- 引入OSS
- 主要实现HDFS 接口,体验一般
- 成本没有明显降低
第三代云上开源大数据平台
- 集中统一存储
- 数据分层存储
- 计算资源弹性伸缩
- 规避HDFS运维复杂度
2
架构分析
EMR数据湖架构
数据湖计算-弹性伸缩
- 基于云的特性,获得资源的弹性
- 计算资源的弹性
- 存储资源的弹性
- 灵活的弹性集群
- 计算与存储分离,只在需要的时候
- 才添加计算
- EMR的动态计算组,按照集群状态
- 来进行伸缩
- Spot instance
- 包月+按量组合
- 弹性伸缩
- 按照时间
- 按照负载
数据湖计算– 容器
- 支持主流引擎Spark和Presto
- 计算与存储分离架构
- Remote Shuffle Service 架构
数据湖存储– JindoFS
易用
- 支持主要开源计算框架,且对框架透明
- 无需修改用户对OSS的使用方案
- 多种缓存设备内存/SSD/HDD
- 支持FUSE文件挂载
企业级
- 高数据可靠性,11个9
- 高可用架构,支持Auto Failover
- 数据权限管理,Ranger列级别权限管理
- Audit Log审计
- 小文件分析
高性能
- 对比社区流行方案,TPC-DS 1TB
- Spark SQL 2.4.5 性能提升27%
- PrestoSQL 0.338性能提升93%
- Hive ETL 2.3.5性能提升42%
元数据管理
- 统一元数据管理,解决元数据多引擎一致性问题
- 自动生成元数据,降低使用成本
访问控制
- 集中数据访问权限控制,多引擎统一集中式赋权
- 数据访问日志审计,统计数据访问信息
数据入湖
- 支持多种数据源入湖,MySQL、SLS、OTS、Kafka等
- 离线/实时入湖,支持Delta/Hudi等多种数据湖格式
- 数据入湖预处理,支持字段mapping/转换/自定义udf操作
3
性能与成本
性能与成本– Remote Shuffle Service
- Shuffle数据通过网络写出,中间数据计算与存储分离架构
- DFS2副本,消除fetch failed 引起的重算,shuffle heavy 作业更加稳定
- Reduce阶段顺序读磁盘,避免现有版本的随机IO,大幅提升性能
性能与成本– 数据预计算
- Ad-hoc场景
- 预计算Cube
- 动态重写查询计划
- 秒级响应
性能与成本– 数据预组织
- DataSkipping index
收集文件各列minmax信息,根据filter裁剪要读取的文件总数
- Z-Order
多维综合排序,在多个字段提升文件裁剪效果
性能与成本– 列存加速
- Native Engine加速I/O效率
- Native 实现
- 高并发
- 发挥OSS水平扩展能力
- 计算下推
性能与成本– 分层存储
4
客户案例
客户案例一:
客户简介
- 游戏行业
客户需求
- 数百节点HDP,版本维护成本高,软件升级困难
- 物理机弹性能力不足,需要云上的弹性能力和扩张能力
- 计算和存储绑定,硬件升级成本高
数据湖方案
- 采用OSS替代HDFS,作为企业统一数据湖,采用分层存储降低用户使用成本
- 使用EMR JindoFS对接Hive/Presto/Tez计算引擎
- AI模型训练采用Spark弹性伸缩集群,弹性伸缩资源比率占集群算力的90%
- Druid采用JindoFS做为Deep Storage,实现
客户案例二:
客户简介
- 国内互联网金融头部客户
- 每个业务均采用独立的集群模式
- AWS EMR典型客户,根据部门和数据划分20-30集群,每天千台规模节点弹性伸缩
客户需求
- 用户服务了大量内部和外部用户,且数据较为敏感,要求严格的数据权限隔离
- 大量OSS的rename等操作,性能要求高
- 根据任务自动大规模弹性扩缩容
客户价值
- 通过JindoFS满足了用户的数据计算性能需求,尤其是部分操作场景上,在有限带宽的情况下和S3的性能表现一致
- EMR Ranger对数据湖数据权限严格管控
- 企业能力如资源组等的支持,协助进行负责的资源隔离能力