赢在京 东系列技术教程:Presto技术内幕 版权信息
- ISBN:9787121285639
- 条形码:9787121285639 ; 978-7-121-28563-9
- 装帧:暂无
- 册数:暂无
- 重量:暂无
- 所属分类:>>
赢在京 东系列技术教程:Presto技术内幕 本书特色
presto是专门为大数据实时查询计算而设计和开发的产品。由于presto是基于java语言开发的, 因此,对使用者和开发者而言, presto极易学习、使用并针对特定的业务场景进行改造开发和性能 优化。无论是对多数据源支持,还是高性能、易用性、可扩展性等方面, presto都是大数据实时查 询计算产品中的佼佼者。 本书按照由浅入深的顺序对presto进行了全方位的细致讲解,具体内容包括presto概述、 presto安装与部署、 presto restful框架解析、提交查询、生成查询执行计划、查询调度、查询执行、队列、system connector、 hive connector、 kafka connector、 connector开发、 functions开发、 jd-presto功能改造、 presto性能调优、 presto应用场景。 本书对java研发工程师,在大数据技术领域从业的研发工程师、运维工程师、架构师,对大数 据研究方向感兴趣的大学老师和学生、以及大数据技术的入门学者,从事海量数据分析应用的开发 者、研究者都有很强的参考价值。
赢在京 东系列技术教程:Presto技术内幕 内容简介
《presto技术内幕》由浅入深地详细介绍了presto
的安装过程、内部运行原理机制、功能特性、性能优化方法,以及在应用过程中常见的问题及解决方案等,同时详细介绍了jd-presto 版本的许多新功能及其适用的业务场景,这些功能的成功研发,使得jd-presto 版本不仅仅可用于离线大数据分析计算来提升性能,还可用于多种数据源混合进行实时大数据分析计算,使一些使用其他大数据技术不能解决的业务场景有了一个全新有效的解决方案。
适合读者:
java 研发工程师;
在大数据技术领域从业的研发工程师、运维工程师、架构师;
对大数据研究方向感兴趣的大学老师和学生、以及大数据技术的入门学者;
从事海量数据分析应用的开发者、研究者。
赢在京 东系列技术教程:Presto技术内幕 目录
**部分 基础篇第 1 章 概述21.1 presto 背景及发展21.2 presto 特点21.3 基本概念31.3.1 presto 服务进程31.3.2 presto 模型41.3.3 presto 查询执行模型 51.4 presto 整体架构91.4.1 硬件架构91.4.2 软件架构91.5 小结11第 2 章 presto 安装与部署122.1 环境说明 122.2 准备工作132.2.1 建立 ssh 信任关系132.2.2 安装 java 172.2.3 安装 maven 172.2.4 安装 hive 182.3 源码编译212.3.1 下载源码 212.3.2 源码结构说明 222.3.3 编译 262.4 部署 302.4.1 服务部署 302.4.2 客户端部署 382.4.3 jdbc 使用 402.5 小结 42第二部分 核心设计篇第 3 章 presto restful 框架解析 443.1 statement 服务接口 443.2 query 服务接口 473.3 stage 服务接口483.4 task 服务接口493.5 小结 52第 4 章 提交查询 534.1 提交查询的步骤 534.2 源码解析 534.3 提交查询的流程 604.4 小结 61第 5 章 生成查询执行计划 625.1 基本概念 635.1.1 node 635.1.2 metadata api 675.2 词法与语法分析 685.2.1 语法规则 695.2.2 词法分析 695.2.3 语法分析 715.3 获取 queryexecution 725.3.1 获取 queryexecutionfactory 725.3.2 创建 queryexecution 735.3.3 启动 queryexecution 745.4 语义分析 775.4.1 statement 分析 775.4.2 relation 分析845.4.3 表达式分析 915.5 执行计划生成915.5.1 执行计划节点 915.5.2 sql 执行计划935.5.3 relation 执行计划955.5.4 query 执行计划 995.6 执行计划优化1025.6.1 implementsampleasfilter 1025.6.2 canonicalizeexpressions 1025.6.3 simplifyexpressions 1025.6.4 unaliassymbolreferences 1035.6.5 pruneredundantprojections 1035.6.6 setflatteningoptimizer 1035.6.7 limitpushdown 1045.6.8 predicatepushdown 1045.6.9 mergeprojections 1045.6.10 projectionpushdown 1045.6.11 indexjoinoptimizer1055.6.12 countconstantoptimizer 1055.6.13 windowfilterpushdown 1055.6.14 hashgenerationoptimizer 1055.6.15 pruneunreferencedoutputs 1065.6.16 metadataqueryoptimizer 1065.6.17 singledistinctoptimizer 1065.6.18 begintablewrite 1065.6.19 addexchanges 1075.6.20 picklayout 1075.7 执行计划分段1075.7.1 source 1075.7.2 fixed 1075.7.3 single 1075.7.4 coordinator_only 1075.8 示例1085.8.1 count 执行计划1085.8.2 join 执行计划1085.9 小结110第 6 章 查询调度 1116.1 生成调度执行器 1116.2 查询调度过程 1136.2.1 nodemanager 1146.2.2 nodeselector 1156.3 小结 118第 7 章 查询执行 1197.1 查询执行逻辑 1207.2 task 调度1207.2.1 source task 调度1207.2.2 fixed task 调度1267.2.3 single task 调度 1287.2.4 coordinator_only task 调度 1287.3 task 执行1297.3.1 创建 task 1297.3.2 更新 task 1357.3.3 运行 task 1407.4 小结 147第 8 章 队列 1488.1 配置说明 1488.1.1 queues 队列定义1498.1.2 rules 规则定义 1498.2 队列加载 1508.3 队列匹配 1518.4 小结 154第 9 章 system connector 1559.1 system connector 使用1559.1.1 information_schema 1559.1.2 metadata 1579.1.3 runtime 1579.2 system connector 实现1599.2.1 information_schema 实现1609.2.2 system connector 实现1639.3 小结 168第 10 章 hive connector16910.1 与 hive 的结合17010.2 split 分片管理 17510.3 数据读取17910.4 create table as select 的实现 18210.5 小结186第 11 章 kafka connector 18711.1 认识 kafka connector 18711.1.1 配置18711.1.2 配置属性18711.1.3 内置字段18911.1.4 表定义文件19011.1.5 kafka 中的 key 和 message 19111.1.6 行解码19211.1.7 日期和时间解码器19411.1.8 文本解码器19411.1.9 数值解码器19411.2 kafka 连接器使用教程19411.2.1 安装 apache kafka19511.2.2 下载数据19511.2.3 在 presto 中配置 kafka topics 19711.2.4 基本数据查询19711.2.5 添加表定义文件19911.2.6 将 message 中所有值映射到不同列20011.2.7 使用实时数据20211.3 kafka connector 获取数据 20711.3.1 split 分片管理20711.3.2 数据读取20911.4 小结210第 12 章 connector 开发21112.1 创建 maven 工程 21112.2 注册 plugin 21312.3 connector 21312.4 metadata 21512.5 splitmanager 21712.6 recordsetprovider 21812.7 小结 219第 13 章 functions 开发22013.1 function 注册 22013.2 窗口函数 22513.3 聚合函数 22913.4 小结 232第三部分 高级篇第 14 章 jd-presto 功能改造23414.1 pdbo 功能开发23414.1.1 jdbc split 剖析23514.1.2 jdbcrecordcursor 剖析 23814.1.3 分批次读取实现原理 24014.1.4 动态步长实现原理 24314.1.5 条件下发 24514.1.6 pdbo 配置定义 24714.2 ddl 及 dml 支持 25014.2.1 hive 连接器 insert 功能 25014.2.2 hive 连接器 ctas 动态分区表功能 25214.3 动态增加、修改、删除 catalog 25414.3.1 目的 25414.3.2 现状 25414.3.3 实现 25514.3.4 效果 25814.4 小结 258第 15 章 presto 性能调优25915.1 合理设计分区 25915.2 group by 字句优化 25915.3 使用模糊聚合函数 25915.4 合并多条 like 子句为一条 regexp_like 子句26015.5 大表放在 join 子句左边26015.6 关闭 distributed hash join 26115.7 使用 orc 存储 26115.8 小结 262第 16 章 presto 应用场景 26316.1 etl 26316.2 实时数据计算26416.3 ad-hoc 查询26616.4 实时数据流分析26616.5 小结268附录 a 常见问题及解决办法269a.1 同时访问两个 hadoop 集群269a.2 kafka 集群重启后无法获取数据272a.3 task exceeded max memory size 277a.4 sql 中 in 子句太长导致栈溢出错误278a.5 高并发导致大量查询出错279附录 b presto 配置参数说明 282附录 c presto 执行信息说明289
展开全部
赢在京 东系列技术教程:Presto技术内幕 作者简介
翁志:现任京东首席技术顾问,信息安全部负责人,硅谷研发中心负责人,主要负责京东的技术创新,信息安全以及对外技术交流合作等,兼任全国信息安全标准化技术委员会委员。拥有近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的功能改造和优化方面积累了丰富的经验。目前正在京东公有云部门从事数据计算服务相关研发工作。