SQL on Hadoop在快手大数据平台的实践与优化
当查询完成后,当地会轮询功效文件,一向获取到LIMIT巨细,然后返回。这种环境下,当有大量的小文件存在,而大文件在后端的时辰,会导致Bad Case,不断与HDFS交互,获取文件信息以及文件数据,大大拉长运行时刻。 在Fetch之前,对功效文件的巨细举办预排序,可以稀有百倍的机能晋升。 示例:当前有200个文件。199个小文件一笔记录a,1个大文件殽杂记录a与test共200条,大文件名index在小文件之后。 FetchTask加快:预排序与逻辑优化 Hive中有一个SimpleFetchOptimizer优化器,会直接天生FetchTask,减小资源申请时刻与调治时刻。但这个优化会呈现瓶颈。假如数据量小,可是文件数多,必要返回的条数多, 存在能大量筛掉功效数据的Filter前提。这时辰串行读取输入文件,导致查询耽误大,反而没起到加快结果。 在SimpleFetchOptimizer优化器中,新增文件数的判定前提,最后将使命提交到集群情形, 通过进步并发来实现加快。 示例:读取当前500个文件的分区。优化后的文件数阈值为100。 大表Desc Table优化 一个表有大量的子分区,它的DESC进程会与元数据交互,获取全部的分区。但最后返回的功效,只有跟表相干的信息。 与元数据交互的时辰,耽误了整个DESC的查询,当元数据压力大的时辰乃至无法返回功效。 针对付TABLE的DESC进程,直接去掉了跟元数据交互获取分区的进程,加快时刻跟子分区数目成正比。 示例:desc十万分区的大表。 其余改造
SQL on Hadoop平台在行使中碰着的痛点 SQL on Hadoop在快手行使:常见可用性题目 HiveServer2处事启动优化 HS2启动时会对物化视图成果举办初始化,轮询整个元数据库,导致HS2的启动时刻很是长,从下线状态到从头上线隔断过大,可用性很差。 将物化视图成果修改为耽误懒加载,单独线程加载,不影响HS2的处事启动。物化视图支持加载中获取已缓存信息,担保成果的可用性。 HS2启动时刻从5min+晋升至<5s。 HiveServer2设置热加载 HS2自己上下线本钱较高,必要担保处事上的使命所有执行完成才气举办操纵。设置的修改可作为较高频率的操纵,且必要做到热加载。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |