当前位置:首页 > 报告详情

Uber 的批量分析从 Hive 到 Spark 的演变.pdf

上传人: 张** 编号:167528 2024-06-15 34页 478.86KB

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要探讨了Uber从使用Hive到Spark的迁移过程,以及在此过程中遇到的问题和解决方案。主要内容包括: 1. **迁移动机**:由于Hive的静态查询规划和不适应Spark的动态执行特性,Uber决定迁移至Spark。 2. **迁移策略**:Uber采用了两步迁移策略,首先自动将HiveQL翻译为SparkSQL,然后进行阴影测试和数据验证。 3. **Hive on Spark执行**:Uber实现了无服务器的Hive on Spark执行,支持SQL语句在驱动器中的查询规划,并通过心跳与Hive代理通信。 4. **Hive to SparkSQL翻译**:Uber利用Coral框架扩展了SparkSQL的语法支持,并添加了规则以支持Hive的DDL和未注册的UDF。 5. **阴影测试**:Uber开发了阴影测试框架,通过在Hive中复制数据并使用SparkSQL进行处理,来验证迁移后的准确性。 6. **数据验证**:Uber通过比较Hive和Spark处理后的数据,确保了数据的一致性。 7. **Hive-Spark不兼容问题**:Uber解决了Hive和Spark在DDL支持、非可排序数据类型上的group by操作、以及内存管理等方面的问题。 8. **性能优化**:Uber通过调整Spark的小文件处理和合并策略,减少了HDFS的命名空间配额问题和目录列表延迟。 9. **Bucketed Tables问题**:Uber决定在分桶表中使用HiveHash,以保持与Presto的兼容性,并减少了文件数量。 核心数据包括:Uber的ETL工作流中有18K个月度调度查询,5M个月度交互查询,以及35%的Yarn资源使用率。迁移后,Uber实现了每月4M的运行时间和成本减少,以及50%的性能提升。 未来工作包括继续优化HiveHash支持,以及扩展SparkSQL的JDBC/ODBC访问等。
"Uber如何从Hive迁移到Spark?" "Spark与Hive在批量分析中的优缺点比较" "Uber在迁移至Spark过程中遇到的问题与解决方案"
客服
商务合作
小程序
服务号
折叠