贏在京 東系列技術(shù)教程:Presto技術(shù)內(nèi)幕 版權(quán)信息
- ISBN:9787121285639
- 條形碼:9787121285639 ; 978-7-121-28563-9
- 裝幀:暫無
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
贏在京 東系列技術(shù)教程:Presto技術(shù)內(nèi)幕 本書特色
presto是專門為大數(shù)據(jù)實時查詢計算而設(shè)計和開發(fā)的產(chǎn)品。由于presto是基于java語言開發(fā)的, 因此,對使用者和開發(fā)者而言, presto極易學(xué)習、使用并針對特定的業(yè)務(wù)場景進行改造開發(fā)和性能 優(yōu)化。無論是對多數(shù)據(jù)源支持,還是高性能、易用性、可擴展性等方面, presto都是大數(shù)據(jù)實時查 詢計算產(chǎn)品中的佼佼者。 本書按照由淺入深的順序?qū)resto進行了全方位的細致講解,具體內(nèi)容包括presto概述、 presto安裝與部署、 presto restful框架解析、提交查詢、生成查詢執(zhí)行計劃、查詢調(diào)度、查詢執(zhí)行、隊列、system connector、 hive connector、 kafka connector、 connector開發(fā)、 functions開發(fā)、 jd-presto功能改造、 presto性能調(diào)優(yōu)、 presto應(yīng)用場景。 本書對java研發(fā)工程師,在大數(shù)據(jù)技術(shù)領(lǐng)域從業(yè)的研發(fā)工程師、運維工程師、架構(gòu)師,對大數(shù) 據(jù)研究方向感興趣的大學(xué)老師和學(xué)生、以及大數(shù)據(jù)技術(shù)的入門學(xué)者,從事海量數(shù)據(jù)分析應(yīng)用的開發(fā) 者、研究者都有很強的參考價值。
贏在京 東系列技術(shù)教程:Presto技術(shù)內(nèi)幕 內(nèi)容簡介
《presto技術(shù)內(nèi)幕》由淺入深地詳細介紹了presto
的安裝過程、內(nèi)部運行原理機制、功能特性、性能優(yōu)化方法,以及在應(yīng)用過程中常見的問題及解決方案等,同時詳細介紹了jd-presto 版本的許多新功能及其適用的業(yè)務(wù)場景,這些功能的成功研發(fā),使得jd-presto 版本不僅僅可用于離線大數(shù)據(jù)分析計算來提升性能,還可用于多種數(shù)據(jù)源混合進行實時大數(shù)據(jù)分析計算,使一些使用其他大數(shù)據(jù)技術(shù)不能解決的業(yè)務(wù)場景有了一個全新有效的解決方案。
適合讀者:
java 研發(fā)工程師;
在大數(shù)據(jù)技術(shù)領(lǐng)域從業(yè)的研發(fā)工程師、運維工程師、架構(gòu)師;
對大數(shù)據(jù)研究方向感興趣的大學(xué)老師和學(xué)生、以及大數(shù)據(jù)技術(shù)的入門學(xué)者;
從事海量數(shù)據(jù)分析應(yīng)用的開發(fā)者、研究者。
贏在京 東系列技術(shù)教程:Presto技術(shù)內(nèi)幕 目錄
**部分 基礎(chǔ)篇第 1 章 概述21.1 presto 背景及發(fā)展21.2 presto 特點21.3 基本概念31.3.1 presto 服務(wù)進程31.3.2 presto 模型41.3.3 presto 查詢執(zhí)行模型 51.4 presto 整體架構(gòu)91.4.1 硬件架構(gòu)91.4.2 軟件架構(gòu)91.5 小結(jié)11第 2 章 presto 安裝與部署122.1 環(huán)境說明 122.2 準備工作132.2.1 建立 ssh 信任關(guān)系132.2.2 安裝 java 172.2.3 安裝 maven 172.2.4 安裝 hive 182.3 源碼編譯212.3.1 下載源碼 212.3.2 源碼結(jié)構(gòu)說明 222.3.3 編譯 262.4 部署 302.4.1 服務(wù)部署 302.4.2 客戶端部署 382.4.3 jdbc 使用 402.5 小結(jié) 42第二部分 核心設(shè)計篇第 3 章 presto restful 框架解析 443.1 statement 服務(wù)接口 443.2 query 服務(wù)接口 473.3 stage 服務(wù)接口483.4 task 服務(wù)接口493.5 小結(jié) 52第 4 章 提交查詢 534.1 提交查詢的步驟 534.2 源碼解析 534.3 提交查詢的流程 604.4 小結(jié) 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 小結(jié)110第 6 章 查詢調(diào)度 1116.1 生成調(diào)度執(zhí)行器 1116.2 查詢調(diào)度過程 1136.2.1 nodemanager 1146.2.2 nodeselector 1156.3 小結(jié) 118第 7 章 查詢執(zhí)行 1197.1 查詢執(zhí)行邏輯 1207.2 task 調(diào)度1207.2.1 source task 調(diào)度1207.2.2 fixed task 調(diào)度1267.2.3 single task 調(diào)度 1287.2.4 coordinator_only task 調(diào)度 1287.3 task 執(zhí)行1297.3.1 創(chuàng)建 task 1297.3.2 更新 task 1357.3.3 運行 task 1407.4 小結(jié) 147第 8 章 隊列 1488.1 配置說明 1488.1.1 queues 隊列定義1498.1.2 rules 規(guī)則定義 1498.2 隊列加載 1508.3 隊列匹配 1518.4 小結(jié) 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 小結(jié) 168第 10 章 hive connector16910.1 與 hive 的結(jié)合17010.2 split 分片管理 17510.3 數(shù)據(jù)讀取17910.4 create table as select 的實現(xiàn) 18210.5 小結(jié)186第 11 章 kafka connector 18711.1 認識 kafka connector 18711.1.1 配置18711.1.2 配置屬性18711.1.3 內(nèi)置字段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 小結(jié)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 小結(jié) 219第 13 章 functions 開發(fā)22013.1 function 注冊 22013.2 窗口函數(shù) 22513.3 聚合函數(shù) 22913.4 小結(jié) 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 小結(jié) 258第 15 章 presto 性能調(diào)優(yōu)25915.1 合理設(shè)計分區(qū) 25915.2 group by 字句優(yōu)化 25915.3 使用模糊聚合函數(shù) 25915.4 合并多條 like 子句為一條 regexp_like 子句26015.5 大表放在 join 子句左邊26015.6 關(guān)閉 distributed hash join 26115.7 使用 orc 存儲 26115.8 小結(jié) 262第 16 章 presto 應(yīng)用場景 26316.1 etl 26316.2 實時數(shù)據(jù)計算26416.3 ad-hoc 查詢26616.4 實時數(shù)據(jù)流分析26616.5 小結(jié)268附錄 a 常見問題及解決辦法269a.1 同時訪問兩個 hadoop 集群269a.2 kafka 集群重啟后無法獲取數(shù)據(jù)272a.3 task exceeded max memory size 277a.4 sql 中 in 子句太長導(dǎo)致棧溢出錯誤278a.5 高并發(fā)導(dǎo)致大量查詢出錯279附錄 b presto 配置參數(shù)說明 282附錄 c presto 執(zhí)行信息說明289
展開全部
贏在京 東系列技術(shù)教程:Presto技術(shù)內(nèi)幕 作者簡介
翁志:現(xiàn)任京東首席技術(shù)顧問,信息安全部負責人,硅谷研發(fā)中心負責人,主要負責京東的技術(shù)創(chuàng)新,信息安全以及對外技術(shù)交流合作等,兼任全國信息安全標準化技術(shù)委員會委員。擁有近20年IT技術(shù)開發(fā)經(jīng)驗,擁有十余項國內(nèi)外專利。2013年加入京東,領(lǐng)導(dǎo)京東大數(shù)據(jù)開源計算框架Presto榮獲“2015COPU開源優(yōu)秀項目獎”,本人獲“中國開源杰出人物”稱號。
機構(gòu)負責人-戴東東:時任京東數(shù)據(jù)庫管理部負責人,負責數(shù)據(jù)庫、大數(shù)據(jù)等新技術(shù)研究工作,擁有近15年IT技術(shù)研發(fā)及團隊管理經(jīng)驗,側(cè)重于海量數(shù)據(jù)庫、大數(shù)據(jù)、機器學(xué)習等技術(shù)領(lǐng)域的研究。2012年加入京東,組建并帶領(lǐng)JD-Presto研發(fā)團隊榮獲多個國內(nèi)外獎項。
高級架構(gòu)師-呂信:Presto中國社區(qū)創(chuàng)建者與管理者,主要從事Hadoop、JD-Presto大數(shù)據(jù)開源產(chǎn)品及京東數(shù)據(jù)云的研發(fā)與架構(gòu)設(shè)計,具有豐富的大數(shù)據(jù)解決方案及大數(shù)據(jù)公有云解決方案的設(shè)計及開發(fā)經(jīng)驗。
架構(gòu)師-郭李明:2012年入職京東,一直從事與大數(shù)據(jù)分布式架構(gòu)相關(guān)的技術(shù)研究,參與并主導(dǎo)了Presto京東開源版本的核心功能開發(fā),致力于大數(shù)據(jù)計算的解決方案研究。
高級工程師-袁安峰:擅長Presto性能調(diào)優(yōu)與Bug修復(fù),對Presto的SQL優(yōu)化器有深入研究, 同時一直致力于對Presto底層實現(xiàn)原理的研究和探索。負責CSDN極客社區(qū)Presto板塊維護,熱衷于分享研究Presto技術(shù)原理的文章以及對Presto使用的心得和體會。
高級工程師-孔云龍:對HDFS、MapReduce、Hive等Hadoop生態(tài)系統(tǒng)中的技術(shù)有比較深入研究,在分布式查詢引擎Presto和分布式消息系統(tǒng)Kafka的功能改造和優(yōu)化方面積累了豐富的經(jīng)驗。目前正在京東公有云部門從事數(shù)據(jù)計算服務(wù)相關(guān)研發(fā)工作。