出版社:電子工業 ISBN:9787121285639 商品編碼:10605483364 開本:16 出版時間:2016-07-01 代碼:69 作者:JD-Presto研發團隊
" 基本信息- 商品名稱:Presto技術內幕(贏在京東繫列技術教程)
- 作者:JD-Presto研發團隊
- 代碼:69
- 出版社:電子工業
- 書號:9787121285639
其他參考信息- 出版時間:2016-07-01
- 印刷時間:2016-07-01
- 版次:1
- 印次:1
- 開本:16開
- 頁數:294
- 字數:490千字
內容提要 Presto是專門為大數據實時查詢計算而設計和開發的產品。由於Presto是基於Java語言開發的,因此,對使用者和開發者而言,Presto極易學習、使用並針對特定的業務場景進行改造開發和性能優化。無論是對多數據源支持,還是高性能、易用性、可擴展性等方面,Presto都是大數據實時查詢計算產品中的佼佼者。 JD-Presto研發團隊著的《Presto技術內幕(贏在京東繫列技術教程)》按照由淺入深的順序對Presto進行了 的細致講解,具體內容包括Presto概述、Presto安裝與部署、PrestoRESTful框架解析、提交查詢、生成查詢執行計劃、查詢調度、查詢執行、隊列、SystemConnector、HiveConnector、KafkaConnector、Connector開發、Functions開發、JD-Presto功能改造、Presto性能調優、Presto應用場景。 本書對Java研發工程師,在大數據技術領域從業的研發工程師、運維工程師、架構師,對大數據研究方向感興趣的大學老師和學生、以及大數據技術的入門學者,從事海量數據分析應用的開發者、研究者都有很強的參考 目錄 部分 基礎篇 第1章 概述 1.1 Presto背景及發展 1.2 Presto特點 1.3 基本概念 1.3.1 Presto服務進程 1.3.2 Presto模型 1.3.3 Presto查詢執行模型 1.4 Presto整體架構 1.4.1 硬件架構 1.4.2 軟件架構 1.5 小結 第2章 Presto安裝與部署 2.1 環境說明 2.2 準備工作 2.2.1 建立SSH信任關繫 2.2.2 安裝Java 2.2.3 安裝Maven 2.2.4 安裝Hive 2.3 源碼編譯 2.3.1 下載源碼 2.3.2 源碼結構說明 2.3.3 編譯 2.4 部署 2.4.1 服務部署 2.4.2 客戶端部署 2.4.3 JDBC使用 2.5 小結 第二部分 核心設計篇 第3章 PrestoRESTful框架解析 3.1 Statement服務接口 3.2 Query服務接口 3.3 Stage服務接口 3.4 Task服務接口 3.5 小結 第4章 提交查詢 4.1 提交查詢的步驟 4.2 源碼解析 4.3 提交查詢的流程 4.4 小結 第5章 生成查詢執行計劃 5.1 基本概念 5.1.1 Node 5.1.2 MetadataAPI 5.2 詞法與語法分析 5.2.1 語法規則 5.2.2 詞法分析 5.2.3 語法分析 5.3 獲取QueryExecution 5.3.1 獲取QueryExecutionFactory 5.3.2 創建QueryExecution 5.3.3 啟動QueryExecution 5.4 語義分析 5.4.1 Statement分析 5.4.2 Relation分析 5.4.3 表達式分析 5.5 執行計劃生成 5.5.1 執行計劃節點 5.5.2 SQL執行計劃 5.5.3 Relation執行計劃 5.5.4 Query執行計劃 5.6 執行計劃優化 5.6.1 ImplementSampleAsFilter 5.6.2 CanonicalizeExpressions 5.6.3 SimplifyExpressions 5.6.4 UnaliasSymbolReferences 5.6.5 PruneRedundantProjections 5.6.6 SetFlatteningOptimizer 5.6.7 LimitPushDown 5.6.8 PredicatePushDown 5.6.9 MergeProjections 5.6.10 ProjectionPushDown 5.6.11 IndexJoinOptimizer 5.6.12 CountConstantOptimizer 5.6.13 WindowFilterPushDown 5.6.14 HashGenerationOptimizer 5.6.15 PruneUnreferencedOutputs 5.6.16 MetadataQueryOptimizer 5.6.17 SingleDistinctOptimizer 5.6.18 BeginTableWrite 5.6.19 AddExchanges 5.6.20 PickLayout 5.7 執行計劃分段 5.7.1 Source 5.7.2 Fixed 5.7.3 Single 5.7.4 Coordinator.only 5.8 示例 5.8.1 Count執行計劃 5.8.2 Join執行計劃 5.9 小結 第6章 查詢調度 6.1 生成調度執行器 6.2 查詢調度過程 6.2.1 NodeManager 6.2.2 NodeSelector 6.3 小結 第7章 查詢執行 7.1 查詢執行邏輯 7.2 Task調度 7.2.1 SourceTask調度 7.2.2 FixedTask調度 7.2.3 SingleTask調度 7.2.4 Coordinator.OnlyTask調度 7.3 Task執行 7.3.1 創建Task 7.3.2 新Task 7.3.3 運行Task 7.4 小結 第8章 隊列 8.1 配置說明 8.1.1 queues隊列定義 8.1.2 rules規則定義 8.2 隊列加載 8.3 隊列匹配 8.4 小結 第9章 SystemConnector 9.1 SystemConnector使用 9.1.1 Information.schema 9.1.2 Metadata 9.1.3 Runtime 9.2 SystemConnector實現 9.2.1 Information.schema實現 9.2.2 SystemConnector實現 9.3 小結 0章 HiveConnector 10.1 與Hive的結合 10.2 Split分片管理 10.3 數據讀取 10.4 CreateTableAsSelect的實現 10.5 小結 1章 KafkaConnector 11.1 認識KafkaConnector 11.1.1 配置 11.1.2 配置屬性 11.1.3 內置字段 11.1.4 表定義文件 11.1.5 Kafka中的key和message 11.1.6 行解碼 11.1.7 日期和時間解碼器 11.1.8 文本解碼器 11.1.9 數值解碼器 11.2 Kafka連接器使用教程 11.2.1 安裝ApacheKafka 11.2.2 下載數據 11.2.3 在Presto中配置Kafkatopics 11.2.4 基本數據查詢 11.2.5 添加表定義文件 11.2.6 將message中所有值映射到不同列 11.2.7 使用實時數據 11.3 KafkaConnector獲取數據 11.3.1 Split分片管理 11.3.2 數據讀取 11.4 小結 2章 Connector開發 12.1 創建Maven工程 12.2 注冊Plugin 12.3 Connector 12.4 Metadata 12.5 SplitManager 12.6 RecordSetProvider 12.7 小結 3章 Functions開發 13.1 Function注冊 13.2 窗口函數 13.3 聚合函數 13.4 小結 第三部分 篇 4章 JD.Presto功能改造 14.1 PDBO功能開發 14.1.1 JDBCSplit剖析 14.1.2 JdbcRecordCursor剖析 14.1.3 分批次讀取實現原理 14.1.4 動態步長實現原理 14.1.5 條件下發 14.1.6 PDBO配置定義 14.2 DDL及DML支持 14.2.1 Hive連接器Insert功能 14.2.2 Hive連接器CTAS動態分區表功能 14.3 動態增加、修改、刪除Catalog 14.3.1 目的 14.3.2 現狀 14.3.3 實現 14.3.4 效果 14.4 小結 5章 Presto性能調優 15.1 合理設計分區 15.2 GroupBy字句優化 15.3 使用模糊聚合函數 15.4 合並多條Like子句為一條regexp.like子句 15.5 大表放在Join子句左邊 15.6 關閉distributedhashjoin 15.7 使用ORC存儲 15.8 小結 6章 Presto應用場景 16.1 ETL 16.2 實時數據計算 16.3 Ad.Hoc查詢 16.4 實時數據流分析 16.5 小結 附錄A 常見問題及解決辦法 A.1 同時訪問兩個Hadoop集群 A.2 Kafka集群重啟後無法獲取數據 A.3 Taskexceededmaxmemorysize A.4 SQL中In子句太長導致棧溢出錯誤 A.5 高並發導致大量查詢出錯 附錄B Presto配置參數說明 附錄C Presto執行信息說明
" |