注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡數(shù)據(jù)庫Presto技術內幕

Presto技術內幕

Presto技術內幕

定 價:¥69.00

作 者: JD-Presto 研發(fā)團隊
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787121285639 出版時間: 2016-06-01 包裝:
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

  Presto是專門為大數(shù)據(jù)實時查詢計算而設計和開發(fā)的產(chǎn)品。由于Presto是基于Java語言開發(fā)的,因此,對使用者和開發(fā)者而言,Presto極易學習、使用并針對特定的業(yè)務場景進行改造開發(fā)和性能優(yōu)化。無論是對多數(shù)據(jù)源支持,還是高性能、易用性、可擴展性等方面, Presto都是大數(shù)據(jù)實時查詢計算產(chǎn)品中的佼佼者?!禤resto技術內幕》按照由淺入深的順序對Presto進行了全方位的細致講解,具體內容包括Presto概述、 Presto安裝與部署、 Presto RESTful框架解析、提交查詢、生成查詢執(zhí)行計劃、查詢調度、查詢執(zhí)行、隊列、System Connector、 Hive Connector、 Kafka Connector、 Connector開發(fā)、 Functions開發(fā)、 JD-Presto功能改造、 Presto性能調優(yōu)、 Presto應用場景。

作者簡介

  翁志:現(xiàn)任京東首席技術顧問,信息安全部負責人,硅谷研發(fā)中心負責人,主要負責京東的技術創(chuàng)新,信息安全以及對外技術交流合作等,兼任全國信息安全標準化技術委員會委員。擁有近20年IT技術開發(fā)經(jīng)驗,擁有十余項國內外專利。2013年加入京東,領導京東大數(shù)據(jù)開源計算框架Presto榮獲“2015COPU開源優(yōu)秀項目獎”,本人獲“中國開源杰出人物”稱號。機構負責人-戴東東:時任京東數(shù)據(jù)庫管理部負責人,負責數(shù)據(jù)庫、大數(shù)據(jù)等新技術研究工作,擁有近15年IT技術研發(fā)及團隊管理經(jīng)驗,側重于海量數(shù)據(jù)庫、大數(shù)據(jù)、機器學習等技術領域的研究。2012年加入京東,組建并帶領JD-Presto研發(fā)團隊榮獲多個國內外獎項。高級架構師-呂信:Presto中國社區(qū)創(chuàng)建者與管理者,主要從事Hadoop、JD-Presto大數(shù)據(jù)開源產(chǎn)品及京東數(shù)據(jù)云的研發(fā)與架構設計,具有豐富的大數(shù)據(jù)解決方案及大數(shù)據(jù)公有云解決方案的設計及開發(fā)經(jīng)驗。架構師-郭李明:2012年入職京東,一直從事與大數(shù)據(jù)分布式架構相關的技術研究,參與并主導了Presto京東開源版本的核心功能開發(fā),致力于大數(shù)據(jù)計算的解決方案研究。高級工程師-袁安峰:擅長Presto性能調優(yōu)與Bug修復,對Presto的SQL優(yōu)化器有深入研究, 同時一直致力于對Presto底層實現(xiàn)原理的研究和探索。負責CSDN極客社區(qū)Presto板塊維護,熱衷于分享研究Presto技術原理的文章以及對Presto使用的心得和體會。高級工程師-孔云龍:對HDFS、MapReduce、Hive等Hadoop生態(tài)系統(tǒng)中的技術有比較深入研究,在分布式查詢引擎Presto和分布式消息系統(tǒng)Kafka的功能改造和優(yōu)化方面積累了豐富的經(jīng)驗。目前正在京東公有云部門從事數(shù)據(jù)計算服務相關研發(fā)工作。

圖書目錄

第一部分 基礎篇第 1 章 Presto概述21.1 Presto 背景及發(fā)展21.2 Presto 特點21.3 基本概念31.3.1 Presto 服務進程31.3.2 Presto 模型41.3.3 Presto 查詢執(zhí)行模型 51.4 Presto 整體架構91.4.1 硬件架構91.4.2 軟件架構91.5 小結11第 2 章 Presto 安裝與部署122.1 環(huán)境說明 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 章 生成查詢執(zhí)行計劃 625.1 基本概念 635.1.1 Node 635.1.2 Metadata API 675.2 詞法與語法分析 685.2.1 語法規(guī)則 695.2.2 詞法分析 695.2.3 語法分析 715.3 獲取 QueryExecution 725.3.1 獲取 QueryExecutionFactory 725.3.2 創(chuàng)建 QueryExecution 735.3.3 啟動 QueryExecution 745.4 語義分析 775.4.1 Statement 分析 775.4.2 Relation 分析845.4.3 表達式分析 915.5 執(zhí)行計劃生成915.5.1 執(zhí)行計劃節(jié)點 915.5.2 SQL 執(zhí)行計劃935.5.3 Relation 執(zhí)行計劃955.5.4 Query 執(zhí)行計劃 995.6 執(zhí)行計劃優(yōu)化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 執(zhí)行計劃分段1075.7.1 Source 1075.7.2 Fixed 1075.7.3 Single 1075.7.4 Coordinator_only 1075.8 示例1085.8.1 Count 執(zhí)行計劃1085.8.2 Join 執(zhí)行計劃1085.9 小結110第 6 章 查詢調度 1116.1 生成調度執(zhí)行器 1116.2 查詢調度過程 1136.2.1 NodeManager 1146.2.2 NodeSelector 1156.3 小結 118第 7 章 查詢執(zhí)行 1197.1 查詢執(zhí)行邏輯 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 執(zhí)行1297.3.1 創(chuàng)建 Task 1297.3.2 更新 Task 1357.3.3 運行 Task 1407.4 小結 147第 8 章 隊列 1488.1 配置說明 1488.1.1 queues 隊列定義1498.1.2 rules 規(guī)則定義 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 實現(xiàn)1599.2.1 Information_schema 實現(xiàn)1609.2.2 System Connector 實現(xiàn)1639.3 小結 168第 10 章 Hive Connector 16910.1 與 Hive 的結合 17010.2 Split 分片管理  17510.3 數(shù)據(jù)讀取17910.4 Create Table As Select 的實現(xiàn) 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 數(shù)值解碼器19411.2 Kafka 連接器使用教程19411.2.1 安裝 Apache Kafka19511.2.2 下載數(shù)據(jù)19511.2.3 在 Presto 中配置 Kafka topics 19711.2.4 基本數(shù)據(jù)查詢19711.2.5 添加表定義文件19911.2.6 將 message 中所有值映射到不同列20011.2.7 使用實時數(shù)據(jù)20211.3 Kafka Connector 獲取數(shù)據(jù) 20711.3.1 Split 分片管理20711.3.2 數(shù)據(jù)讀取20911.4 小結210第 12 章 Connector 開發(fā)21112.1 創(chuàng)建 Maven 工程 21112.2 注冊 Plugin 21312.3 Connector 21312.4 Metadata 21512.5 SplitManager 21712.6 RecordSetProvider 21812.7 小結 219第 13 章 Functions 開發(fā)22013.1 Function 注冊 22013.2 窗口函數(shù) 22513.3 聚合函數(shù) 22913.4 小結 232第三部分 高級篇第 14 章 JD-Presto 功能改造23414.1 PDBO 功能開發(fā)23414.1.1 JDBC Split 剖析23514.1.2 JdbcRecordCursor 剖析 23814.1.3 分批次讀取實現(xiàn)原理 24014.1.4 動態(tài)步長實現(xiàn)原理 24314.1.5 條件下發(fā) 24514.1.6 PDBO 配置定義 24714.2 DDL 及 DML 支持 25014.2.1 Hive 連接器 Insert 功能 25014.2.2 Hive 連接器 CTAS 動態(tài)分區(qū)表功能 25214.3 動態(tài)增加、修改、刪除 Catalog 25414.3.1 目的 25414.3.2 現(xiàn)狀 25414.3.3 實現(xiàn) 25514.3.4 效果 25814.4 小結 258第 15 章 Presto 性能調優(yōu)25915.1 合理設計分區(qū) 25915.2 Group By 字句優(yōu)化 25915.3 使用模糊聚合函數(shù) 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 實時數(shù)據(jù)計算26416.3 Ad-Hoc 查詢26616.4 實時數(shù)據(jù)流分析26616.5 小結268附錄 A 常見問題及解決辦法269A.1 同時訪問兩個 Hadoop 集群269A.2 Kafka 集群重啟后無法獲取數(shù)據(jù)272A.3 Task exceeded max memory size 277A.4 SQL 中 In 子句太長導致棧溢出錯誤278A.5 高并發(fā)導致大量查詢出錯279附錄 B Presto 配置參數(shù)說明 282附錄 C Presto 執(zhí)行信息說明289

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號