本文资料来自2021年12月09日举办的 PrestoCon 2021,议题为《Presto at Bytedance》,分享者常鹏飞,字节跳动软件工程师。Presto 在字节跳动中得到了广泛的应用,如数据仓库、BI工具、广告等。与此同时,字节跳动的 presto 团队也提供了许多重要的特性和优化,如 Hive UDF Wrapper、多个协调器、运行时过滤器等,扩展了 presto 的用法,增强了 presto 的稳定性。

关注 过往记忆大数据公众号回复 10099 获取本文资料。

Presto 在字节跳动 OLAP 平台的状况

上面是字节跳动计算平台的状况。可以看到,Spark SQL 主要用于 ETL,Presto 处理 Ad-hoc 查询,而 Flink Streaming 处理流数据。

•Presto 在字节是从 2020 年开始使用的;

•当前数以万计的计算核心;•每天大约 100 万次查询;•覆盖 BI、Ad-hoc 等场景。

从右边的图可以看出,Presto 每天的查询量是往上增的趋势。

上图是字节跳动的 Presto 集群架构,所有查询都是先经过网关,然后发送到背后的不同 Presto 集群。

Presto 集群稳定性和性能提升

下面我们来看下字节跳动对 Presto 做的改进。

Presto 网关负责查询的路由和流量控制。其中:

•路由策略是基于规则的;•流量控制策略是基于集群负载。

网关负载利用这两个规则将用户的查询转发到不同的 Presto 集群。

为了高可用性,字节改造 Presto 集群,通过 ZK 实现了 Multi Coordinator。

同时,根据 Catalog 里面的统计信息,可以预估用户查询的运行时间,有些大查询可以直接拒绝。同时根据运行时统计信息,可以自动取消大查询。

为了分析历史查询,字节内部实现了历史服务器,其核心思想是通过 Coordinator 将查询的信息 dump 到持久化存储,然后 History Server 就可以分析相关历史查询。同时监控 Dashboard 也可以做一些监控相关的工作。

不同场景下的实践和优化

通过将 Hive/Spark SQL 迁移到 Presto 来加速 Ad-hoc 查询。主要做了以下方面的工作:

•Hive UDF Wrapper,其目的是使得 Presto 可以运行 Hive 的 UDF。代码已经开源了,参见:https://github.com/prestodb/presto/pull/16737 • 支持范围分区; • Hive 语义兼容,比如 array index, divide by zero etc. • 支持新语法:直接往 HDFS 插入数据;扩展 Hive insert 语法;

通过物化视图加速 BI 分析。

当来了新查询时,利用物化视图集重写查询。下面是两个使用物化视图集改写查询的例子:

通过 Hudi 数据源支持近实时数据分析。比如可以将 MySQL Binlog 和应用程序的日志发送到 Kafka,并通过两条流把数据持久化:通过 T+1 把数据写到 HDFS,然后经过 ETL 写入到 Hive 表供 Presto 服务查询。另外,通过 Spark/Flink Streaming 近实时的把数据写到 Hudi 表。

目前 Presto 中的 Hudi 数据源是和 Hive 数据源写到一起的,为了更好的扩展性、可维护性以及性能。字节给 Presto 社区提了一个 Proposal,来将 Hudi 数据源拆分到单独的数据源。感兴趣的同学可以到 https://github.com/prestodb/presto/issues/17006 里面查看详情。

未来规划

Presto 在字节跳动的应用相关推荐

  1. SkyNet:字节跳动泛客诉问题挖掘与风险监控中台实践

    背景 随着互联网和智能手机的普及,人们的生活大多时候都离不开移动 App,在信息量与日俱增的大数据时代,用户反馈数据可以帮助发现热点问题.避免安全问题.优化产品体验.提升产品质量等. 简介 SkyNe ...

  2. 字节跳动前端用什么框架

    字节跳动前端用什么框架,字节跳动期权换购是什么意思? 字节跳动前端用的框架都是脚本框架比较多一点的. 字节跳动面试和hr聊的很好 但是没通过 聊得好不见得HR就认为你适合字节跳动.你们只是交流的比较愉 ...

  3. [C] [字节跳动] [编程题] 手串

    时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 64M,其他语言128M 链接:https://www.nowcoder.com/questionTerminal/0bb1fad52f4 ...

  4. 前端img里面的src能是bmp么_实习|字节跳动前端实习生(非科班已定offer)三技术面+一HR面...

    作者:小零子 链接:https://www.nowcoder.com/discuss/201256 来源:牛客网 一面 一个小时20分钟(三轮技术面都是视频面试) 面试官哥哥很好 先自我介绍(个人信息 ...

  5. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取

    牛客网--字节跳动面试题--特征提取 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:特征提取 来源:牛客网 题目 ...

  6. 字节跳动 录屏功能_一周盘点:Instagram打通视频购物功能 公开叫板TikTok;字节跳动要大力布局跨境出口电商?...

    周末刚结束,预祝各位小伙伴们在接下来的每一天都能大卖! 大师兄先带你盘点这一周都有哪一些跨境电商热点事件: 每周要点 Instagram打通视频购物功能 公开叫板TikTok 据外媒报道,Instag ...

  7. 后端开发面试自我介绍_字节跳动暑期实习后端开发面试经历

    字节跳动后端实习是什么,字节跳动后端实习面试流程是怎样? 今天小编就来帮助大家了解一下字节跳动后端实习面试到底有什么内容. (好了不皮了,开始正文) 字节的面试流程总的来说还是挺享受的,和面试官两人的 ...

  8. 内含福利|CSDN 携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!

    伴随云原生技术的成熟与落地,越来越多框架.中间件等开源项目相继涌现,帮助开发者和企业有效解决业务问题. 2022年1月8日,CSDN携手字节跳动基础架构,将在北京举办第四场云原生线下Meetup.在这 ...

  9. 字节跳动李航:自学机器学习,研究AI三十载,他说AI发展或进入平缓期

    作者 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]一阵凉风吹过人工智能,让这个曾是燥热的领域逐渐冷却下来,留下的是扎实地在做研究的人.机构.企业.先后在 NEC 公司中央研 ...

最新文章

  1. python 执行vba脚本_用python批量执行VBA代码
  2. 在ubuntu系统中使用dpkg命令安装后缀名为deb的软件包
  3. 不用Office自动化技术,给Word文档中填充赋值
  4. linux设备驱动——总线、设备、驱动
  5. python parser count_Python分析哪座城市小吃最好吃
  6. css3 :nth-child()选择器的使用
  7. FFmpeg从入门到精通:SEI那些事
  8. kali linux改中文_【亲测实验】kali linux 2020 设置为中文方法
  9. 【单片机基础篇】74HC595芯片详解
  10. mysql跳过安全_几年了,作为一个码农终于把MySQL日记看懂了!
  11. 使用mysql遇到的异常
  12. 计算机二级VEP考试内容,2017计算机二级VEP知识点:报表设计与应用
  13. 偏微分方程数值解程序设计与实现——数学基础
  14. 会议室管理系统(参考答案)
  15. 【EMC专题】共模和差模
  16. Java基础学习笔记:补充内容1 计算机字符编码
  17. 从X Fold+折叠屏手机再议vivo的用户导向创新思维
  18. Excel 2010 VBA 入门 095 数据处理之用数组实现分列
  19. 到底什么是REST?怎么用通俗的语言解释REST以及RESTful?
  20. 采用最小二乘法拟合二次、三次、四次曲线

热门文章

  1. 判断字符串数组中的数字是否对称
  2. securecrt能输入命令吗?
  3. 通过数据分析找出Netflix最适合学习英语的电影和电视剧
  4. 图片水印如何去除,怎样处理带水印的图片?
  5. 上蔡一高2021高考成绩查询,上蔡一高高考录取名单1
  6. 当你输入网址到网页呈现发生了什么?
  7. 吴恩达机器学习中文版课后题(中文题目+数据集+python版答案)week1 线性回归
  8. Docker 相关配置文件路径
  9. java卸载不了_java卸载不了怎么处理?卸载时总出现这个
  10. 使用 VMware 16 RHEL7.7 虚拟机静默安装 Oracle 19c RAC