加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

SQL on Hadoop在快手大数据平台的实践与优化

发布时间:2019-06-01 18:56:37 所属栏目:编程 来源:佚名
导读:快手大数据架构工程师钟靓克日在A2M人工智能与呆板进修创新峰会分享了题为《SQL on Hadoop在快手大数据平台的实践与优化》的演讲,首要从SQL on Hadoop先容、快手SQL on Hadoop平台概述、SQL on Hadoop在快手的行使履历和改造说明、快手SQL on Hadoop的未

当查询完成后,当地会轮询功效文件,一向获取到LIMIT巨细,然后返回。这种环境下,当有大量的小文件存在,而大文件在后端的时辰,会导致Bad Case,不断与HDFS交互,获取文件信息以及文件数据,大大拉长运行时刻。

在Fetch之前,对功效文件的巨细举办预排序,可以稀有百倍的机能晋升。

示例:当前有200个文件。199个小文件一笔记录a,1个大文件殽杂记录a与test共200条,大文件名index在小文件之后。

SQL on Hadoop在快手大数据平台的实践与优化

FetchTask加快:预排序与逻辑优化

Hive中有一个SimpleFetchOptimizer优化器,会直接天生FetchTask,减小资源申请时刻与调治时刻。但这个优化会呈现瓶颈。假如数据量小,可是文件数多,必要返回的条数多, 存在能大量筛掉功效数据的Filter前提。这时辰串行读取输入文件,导致查询耽误大,反而没起到加快结果。

在SimpleFetchOptimizer优化器中,新增文件数的判定前提,最后将使命提交到集群情形, 通过进步并发来实现加快。

示例:读取当前500个文件的分区。优化后的文件数阈值为100。

SQL on Hadoop在快手大数据平台的实践与优化

大表Desc Table优化

一个表有大量的子分区,它的DESC进程会与元数据交互,获取全部的分区。但最后返回的功效,只有跟表相干的信息。

与元数据交互的时辰,耽误了整个DESC的查询,当元数据压力大的时辰乃至无法返回功效。

针对付TABLE的DESC进程,直接去掉了跟元数据交互获取分区的进程,加快时刻跟子分区数目成正比。

示例:desc十万分区的大表。

SQL on Hadoop在快手大数据平台的实践与优化

其余改造

  • 复用split计较的数据,跳过reduce估算一再统计输入进程。输入数据量大的使命,调治速度晋升50%。
  • parquetSerde init加快,跳过统一表的一再列剪枝优化,防备map task op init时刻超时。
  • 新增LazyOutputFormat,有record输出再建设文件,停止空文件的发生,导致下流读取大量空文件耗损时刻。
  • statsTask支持多线程聚合统计信息,防备中间文件过多导致聚合过慢,增大运行时刻。
  • AdHoc必要打开并行编译,防备SQL串行编译导致整体耽误时刻增大的题目。




SQL on Hadoop平台在行使中碰着的痛点

SQL on Hadoop在快手大数据平台的实践与优化

SQL on Hadoop在快手行使:常见可用性题目

SQL on Hadoop在快手大数据平台的实践与优化

HiveServer2处事启动优化

HS2启动时会对物化视图成果举办初始化,轮询整个元数据库,导致HS2的启动时刻很是长,从下线状态到从头上线隔断过大,可用性很差。

将物化视图成果修改为耽误懒加载,单独线程加载,不影响HS2的处事启动。物化视图支持加载中获取已缓存信息,担保成果的可用性。

HS2启动时刻从5min+晋升至<5s。

SQL on Hadoop在快手大数据平台的实践与优化

HiveServer2设置热加载

HS2自己上下线本钱较高,必要担保处事上的使命所有执行完成才气举办操纵。设置的修改可作为较高频率的操纵,且必要做到热加载。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读