Presto技术内幕
  • 推荐0
  • 收藏1
  • 浏览647

Presto技术内幕

吴迪 (作者) 

  • 丛  书:“赢在京东”系列技术教程
  • 书  号:978-7-121-28563-9
  • 出版日期:2016-07-27
  • 页  数:312
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:张慧敏
本书分为三部分:基础篇、核心设计篇和高级篇,从基础部署、应用到核心设计和高级应用、二次开发、性能调优等多个方便对prestoDB进行了详细讲解。
目前市场有Hadoop相关的书籍,PrestoDB拥有其10倍+以上的性能表现,且JD-PrestoDB的最新版本,性能是Hadoop的15倍+,目前有spark相关的书籍,但是经过我们的实际测试PrestoDB的性能是spark的5倍以上,相信此书一旦发布,将会有很多大数据工作人员争相学习。
翁志
现任京东首席技术顾问,信息安全部负责人,硅谷研发中心负责人,主要负责京东的技术创新,信息安全以及对外技术交流合作等,兼任全国信息安全标准化技术委员会委员。拥有近20年IT技术开发经验,拥有十余项国内外专利。2013年加入京东,领导京东大数据开源计算框架Presto荣获“2015COPU开源优秀项目奖”,本人获“中国开源杰出人物”称号。

机构负责人-戴东东
时任京东数据库管理部负责人,负责数据库、大数据等新技术研究工作,拥有近15年IT技术研发及团队管理经验,侧重于海量数据库、大数据、机器学习等技术领域的研究。2012年加入京东,组建并带领JD-Presto研发团队荣获多个国内外奖项。

高级架构师-吕信
Presto中国社区创建者与管理者,主要从事Hadoop、JD-Presto大数据开源产品及京东数据云的研发与架构设计,具有丰富的大数据解决方案及大数据公有云解决方案的设计及开发经验。

架构师-郭李明
2012年入职京东,一直从事与大数据分布式架构相关的技术研究,参与并主导了Presto京东开源版本的核心功能开发,致力于大数据计算的解决方案研究。

高级工程师-袁安峰
擅长Presto性能调优与Bug修复,对Presto的SQL优化器有深入研究, 同时一直致力于对Presto底层实现原理的研究和探索。负责CSDN极客社区Presto板块维护,热衷于分享研究Presto技术原理的文章以及对Presto使用的心得和体会。

高级工程师-孔云龙
对HDFS、MapReduce、Hive等Hadoop生态系统中的技术有比较深入研究,在分布式查询引擎Presto和分布式消息系统Kafka的功能改造和优化方面积累了丰富的经验。目前正在京东公有云部门从事数据计算服务相关研发工作。
为什么要写这本书

相信很多软件开发人员在遇到应用系统涉及需要多种数据源、多种字符集下的混合计算时,都被数据的准确性和查询性能所困扰,一直以来都没有一个有效的技术方案能解决这个问题。 2014 年 7 月,京东 CTO 体系首席技术顾问翁志先生把 Presto 引入京东,数据准确性验证表明, Presto 在多种数据源、多种字符集下的混合计算均表现优异,数据准确性符合财务标准。我们认识到, Presto 是一个非常优秀的产品,尽管它有许多不足,我们决心把它打造为一个介于 T 1 计算和生产实时报表之间混合计算的大数据产品,支持秒级、分钟级获取查询结果、支持多并发的交互式 Ad-Hoc 查询与分析。 Presto 是一个较为完美的大数据实时计算解决方案,而市面上这类产品太少了,我们将经过生产环境验证的 JD-Presto 版本源给业内使用,主导 Presto 中国社区的推广工作。应广大 Presto 技术爱好者的要求,我们编写了这本书,以帮助更多的初学者、大数据领域的从业者学习及使用 JD-Presto。和其他许多调研过 Presto 的部门或公司一样,我们最初搭建的 Presto 测试集群在京东这种大数据量的环境下复杂计算任务几乎运行不起来, JOIN 查询也比较弱, 集群时常宕机。同时,在测试过程中我们也发现,与 Spark、 Impala 相比, Presto 使用更为简单、易用、高效,这让我们深感振奋,一致认为这个产品值得团队花大力气去研究和优化。因此,我们专门申请了上百台高性能服务器来搭建性能测试集群环境, 随后在几百 TB 级数据量下进行大规模的测试与验证,完全证实了 Presto 的平均性能是 Hive 等离线数据分析产品性能的 10倍,并且支持 ANSI 标准 SQL、数据源完全解耦等一系列优势。在之后一年多的时间中,我们研发了众多实用功能,着力修复了许多 Bug,大幅提升了 Presto 的查询性能和并发执行性能,如重写了数据库驱动,使得 Presto 连接数据库进行海量数据查询的性能提升了几百倍;优化了内存使用效率,使查询性能对内存大小的依赖大幅降低;支持分布式数据库的分库分表设计;优化数据存储算法。通过上述一系列新功能的成功研发和对性能的大幅改进,使得 JD-Presto 的性能稳定是是 Hive 的 10 倍以上,是 Spark 的 3 倍以上,集群成本节省一半,在一个大规模的大数据集群中, 这种技术优势可带来显著的经济效益。



本书读者对象

l Java 研发工程师;

l 在大数据技术领域从业的研发工程师、运维工程师、架构师;

l 对大数据研究方向感兴趣的大学老师和学生、以及大数据技术的入门学者;

l 从事海量数据分析应用的开发者、研究者。



如何阅读本书

本书按照由浅入深的顺序对大数据实时计算产品 Presto 进行了全方位的细致讲解,从基本的安装部署与使用到源码解析,以及根据实际业务需求进行新功能改造开发和性能优化。

若你从来没有使用过 Presto,那么完全可以按照由浅入深的顺序从头开始阅读此书。

若你已经成功地使用了 Presto 一段时间,想要深入地了解 Presto 的设计思想并希望从源码级别了解 Presto 的实现思路,那么可以直接从核心设计篇进行阅读。

若你本来就是 Presto 的贡献者,苦于 Presto 不能满足你的实际业务问题,想要对Presto进行功能改造但是还没有明确的思路;又或者你在使用 Presto 的过程中发现其性能没有达到你的预期,而又找不到优化的方案,那么高级篇会给你提供一些建议。

在本书最后的附录部分不仅对 Presto 使用过程中出现的各种问题给出了明确的解决方案,还对 Presto中的各个配置参数的含义和作用进行了详细的说明并给出了推荐配置值。

相信此书会为广大大数据爱好者提供一个新的视角,思考并解决大数据相关问题。



勘误和支持

由于作者水平和能力有限,编写时间仓促,本书存在不妥之处在所难免,我们真诚希望同行和广大读者朋友们不吝赐教。另外,如果你有关于 JD-Presto 的任何问题,可以加入我们的 QQ 群: 141254058,与我们在线交流,或者访问网站: http://prestodb-china.com/,期待你的反馈意见,我们将不胜感激。



致谢

感谢现任京东 CTO 体系首席技术顾问、信息安全部、京东硅谷研发中心负责人翁志先生,在产品研发和推广使用的过程中给予了我们极大的支持和鼓励。同时在本书出版的过程中,从选题、审稿到出版无不得到他的热心帮助,在此致以深深的谢意!

感谢京东云平台——数据研发运营部的负责人樊建刚先生给予我们充分的授权和支持,他鼓励我们将产品开源、组建技术交流群和中文社区,使得 JD-Presto 成为京东第一个开源的软件产品,开创京东回馈开源社区的先河。

感谢研发团队的兄弟们,他们酷爱技术、注重团队协作、深入理解客户需求,能从一个较为全面的角度考虑产品的架构设计与功能研发,这是产品成功的基石,也是最关键的因素。

回首这一路的艰辛,无以表达此时的心情,只能说,兄弟们所做的一切都让我心怀崇敬!
戴东东

2016



序言 1

12 年来,京东一直以开源技术作为构建自身核心技术体系的基础,在开源领域深耕多年,积极推动行业分享与交流。 JD-Presto 是京东首个贡献于开源社区的软件产品,开创了京东回馈开源社区的先河。

一年前, JD-Presto 研发团队是京东众多研发团队中的普通一员,时至今日,他们已成长为京东负有盛名的研发团队之一。一年来,他们忍受着孤独与寂寞,面对着无数困难与挫折,但他们从未放弃,凭着对技术的热爱、对信念的坚守、对优秀产品的执着追求,勇敢面对困难与挑战,历尽艰辛,终于迎来胜利的曙光。目前 JD-Presto 在京东内部已成功应用于精准营销、安全识别、商家后台、财务报表等十多个生产系统。京东为拥有 JD-Presto研发团队而骄傲!

与书店里的 Hadoop 书籍不同的是,本书是市面上第一本详细介绍 Presto 的书籍。它由浅入深地详细介绍了 Presto 的安装过程、内部运行原理机制、功能特性、性能优化方法,以及在应用过程中常见的问题及解决方案等,同时详细介绍了 JD-Presto 版本的许多新功能及其适用的业务场景。这些功能的成功研发,使得 JD-Presto 版本不仅可用于离线大数据分析计算来提升性能,还可用于多种数据源混合进行实时大数据分析计算,使一些使用其他大数据技术不能解决的业务场景有了一个全新有效的解决方案。同时,他们维护着 Presto在中国社区的建设,鼓舞着和培养了一群Presto 的爱好者。

今天,国内已有越来越多的技术人员与公司在使用 JD-Presto 版本,相信本书能对读者学习和使用 JD-Presto 版本提供很大的帮助。本书不仅仅满足了初学者对技术书籍的渴求,也适合对 JD-Presto版本有一定使用经验的人员学习参考使用。希望它能成为你在 Presto 技术旅程中的一个朋友,点亮你前进的道路。



张晨
京东集团 CTO

序言 2

记得我刚加入京东的时候, Hadoop 的集群建设方兴未艾,大数据计算纷纷被转到Hadoop 中进行处理。然而,以前做数据挖掘的同学并不十分精通 Java 语言。他们更擅长于业务和 SQL 语言。为了让他们的工作更有效率、更得心应手,有必要找寻一个像 GoogleDremel 一样,以 SQL 为驱动的交互式 Ad-hoc 查询工具。于是我花了一些时间进行评估,包括 Hive、 Spark、 Impala 等, 后来 Facebook 刚开源不久的 Presto 便映入眼帘。 Presto 设计简单精巧,可以处理海量数据,最大化地利用硬件性能,计算全部在内存中完成,很好地利用高速网络来进行数据调度,其编码风格一致,易于掌握和改进。虽然在当时 Presto的数据源和 SQL 的支持度还有待丰富,但已经初步展示了发展的潜力,很适合京东的应用。Presto 就这样在京东找到了家。 JD-Presto 研发团队成员具有多年 JAVA 编程和分布式并行处理经验,他们工作兢兢业业,在原先开源的基础上,丰富了多种数据源的处理接口,并且通过对任务调度的追踪和分析, 改进并提升了并行处理任务的吞吐量。我们积极和 Facebook的 Presto 团队合作,成为 Presto 在国内的首批贡献者,建立并运行 Presto 的中国社区。我们也和 CSDN 的同仁建立了 Presto 的开发者论坛,在国内积极推广,普及 Presto 知识,让更多的开发人员受益。

京东是开源社区的受益者,也是开源开放文化的拥护者。我们将自己取得的点点滴滴毫无保留地回馈于开源社区,与大家共享,和大家一起进步。为了更好地服务于对 Presto有兴趣的研发人员,京东的同事们将平时工作中的积累和认识编辑成书,奉献给大家,希望他们的努力有助于读者学习和掌握 Presto。在此,我特别感谢为此书出版而辛勤工作的同事,他们是吕信、郭李明、袁安峰、孔云龙、戴东东等人。

翁志

京东集团首席技术顾问

序言 3

Presto is an open source, highly scalable, distributed SQL enginewe developed at Facebook. Since releasing it two years ago, we have witnessed atremendous amount of community interest and adoption. In the last twelvemonths, the Presto community has grown from technology firms in Silicon Valleyto a broad variety of organizations worldwide. Today, NASDAQ, the secondlargest stock exchange in the United States, runs Presto to power their analyticaluse cases.

( Presto 是我们在 Facebook 开发的开源、高度可扩展的分布式 SQL 引擎。 Presto 在两年前发布后,大量的社区开始关注和后续应用 Presto。在最近的 12 个月里, Presto 社区已经一家硅谷科技公司成长为全球性的生态圈,涵盖一批多样化的组织。如今,全美第二大证券交易所纳斯达克也在使用 Presto 来驱动他们的案例分析业务。)

As organizations adopt Presto, many are contributing back to it.Teradata, a leader in data warehousing technology, maintains a group ofengineers who contribute to Presto. We have also collaborated with engineers atJD.com since 2014 to make Presto better. Presto earned an "Open SourceOutstanding Project" award at the 2015 China Open Source World Summit.

(组织机构们不仅在应用 Presto,他们中的一部分也在回馈 Presto。 Teradata,数据仓库技术领域内的引领者之一,拥有一支专门为 Presto 贡献力量的工程师团队。从 2014 年起,我们与中国电商领域引领者京东公司的开发人员展开合作,精益求精地打造 Presto 产品。随后 Presto 在 2015 年“第十届开源中国开源世界高峰论坛”上获取“ 2015 COPU 开源优秀项目大奖”。)

We hope you will learn more about Presto through this book developed byengineersat JD.com, and we encourage you to work with the community to improvePresto.

(我们真诚地希望你通过这本由京东工程师们撰写的书更深入地了解 Presto 引擎,也鼓励并期待你携手社区,改善Presto 引擎。)

JayTang

Managerof Presto product, Big Data

目录

目录 阅读
第1部分 基础篇
第1章 Presto概述2
第2章 Presto 安装与部署12
第2部分 核心设计篇
第3章 Presto RESTful 框架解析
第4章 提交查询
第5章 生成查询执行计划
第6章 查询调度
第7章 查询执行
第8章 队列
第9章 System Connector
第10章 Hive Connector
第11章 Kafka Connector
第12章 Connector开发
第13章 Functions开发
第3部分 高级篇
第14章 JD-Presto 功能改造
第15章 Presto 性能调优
第16章 Presto 应用场景

读者评论

图书类别

同系列书

  • Presto技术内幕

    吴迪 (作者)

    本书分为三部分:基础篇、核心设计篇和高级篇,从基础部署、应用到核心设计和高级应用、二次开发、性能调优等多个方便对prestoDB进行了详细讲解。...

    ¥69.00
  • 京东系统质量保障技术实战

    在互联网飞速发展的今天,系统的复杂度及迭代速度都在不断提升,这对质量保障工作提出巨大挑战。那么如何在快速迭代发布下保障系统质量呢?阅读本书或许会找到一些答案。本...

    ¥39.00

相关图书

SequoiaDB分布式数据库权威指南

黄达玮 (作者)

本书旨在介绍 SequoiaDB 巨杉数据库的基本概念、应用场景、企业级应用案例、数据库实例创建与管理方式、数据库集群管理的基本策略、以及性能调优和问题诊断。...

¥99.00

千金良方——MySQL性能优化金字塔法则

李春 罗小波 董红禹 (作者)

本书一共分为3篇:基础篇、案例篇和工具篇。“基础篇”从理论基础和基本原理层面介绍了MySQL的安装与配置、升级和体系结构,information_schema、...

¥90.30

数据分析与量化投资——基于SAS的应用

林煜恩 (作者)

本书基于SAS EG平台下,采用项目管理的过程流方式来介绍数据分析以及量化投资策略方法,书中提供了作者撰写的autoexec命令文件,可让SAS在运行时,就自带...

 

DBA 手记——Oracle 数据安全的警示与原则

盖国强 (作者)

本书以数据安全为主线将众多灾难挽救过程串联在一起,不仅对各个案例的发生过程进行了详细描述,更为读者提供了具体的规避法则。其间穿插介绍了很多新鲜的技术细节和恢复方...

¥99.00

收获,不止Oracle(第2版)

梁敬彬 (作者)

在这本书里,读者将会跟随作者一同对Oracle数据库的相关知识进行梳理,最终共同提炼出必须最先掌握的那部分知识,无论你是数据库开发、管理、优化、设计人员,还是从...

¥99.00

MySQL王者晋级之路

张甦 (作者)

目前大部分软件开发平台都基于Linux,很多互联网公司都把MySQL作为后端数据存储的数据库。如果把MySQL比喻成数据库界的一条巨龙,则本书涵盖的所有知识点就...

¥79.00