基于SparkSQL的海量数据仓库
设计与实践
360大数据基础架构团队 李振炜
2017.5.13
Spark在360的实践与改进
SparkSQL多数据源整合
SparkSQL海量数据即席查询的实现
• 团队
• 奇虎360大数据基础架构团队
• 离线计算
• 早期spark推广应用到生产环境的团队;
• 集群规模
• 总物理机结点数超过8k,
• 单集群最大节点超过3k;
• Spark任务
• 10w
• SQL,MLLib, Streaming
• 改进
• SQL
• 扩展语法,优化执行,提高效率
• MLLib
• 实现多个社群发现算法
• 改进PageRank算法,比自带算法速度提升5倍
• 改进LR算法,支持千万+高维特征
• 为LDA算法扩展gibbs sampling
• 改进word2vec,精度接近单机版
• 引入了FM,xgboost等
• 深度学习
• TensorFlow,MXnet,Caffe
• SparkSQL替换Hive
• 封装为spark-hive
• 现在已经完成了hive作业向Spark的迁移
• 稳定运行的SQL作业超过5W
• SparkSQL改进 (50+)
• Insert overwrite local directory的支持
• 修复SortMergeJoin 数据倾斜出现OOM
• 修复Shuffle使用堆外内存,造成executor的内存超限
• 修复动态资源调整的时候,Driver端出现死锁
• 动机
• 数据存储多样
• 不同的数据在不同的存储
• 同一份数据在不同的存储
• 熟悉不同的平台
• 数据频繁导入导出
• 业务逻辑复杂
多数据源整合架构