●目 錄 章 大數據庫概述11.1 傳統關繫型數據庫面臨的問題11.2 大數據庫技術21.2.1 列式數據庫21.2.2 內存數據庫21.2.3 鍵值數據庫31.2.4 流式數據庫31.3 大數據SQL31.4 當前主流大數據SQL簡介41.4.1 Hive41.4.2 Impala51.4.3 Shark61.4.4 Spark SQL71.5 本章總結8習題9參考文獻9第2章 分布式數據庫HBase102.1 HBase基礎102.1.1 體繫架構102.1.2 數據模型152.2 HBase操作簡介172.2.1 HBase接口簡介172.2.2 HBase Shell實戰172.2.3 HBase API202.3 HBase實戰212.3.1 實戰HBase之綜例212.3.2 實戰HBase之使用MapReduce構建索引22習題26參考文獻27第3章 數據倉庫工具Hive283.1 Hive簡介283.1.1 工作原理283.1.2 體繫架構293.1.3 計算模型303.1.4 Hive部署模式313.2 Hive的使用323.2.1 Hive的數據類型323.2.2 Hive接口彙總323.3 實戰Hive Shell333.3.1 DDL操作333.3.2 DML操作343.3.3 SQL操作343.4 實戰Hive之復雜語句353.5 實戰Hive之綜合示例373.6 實戰Hive API接口383.6.1 UDF編程示例383.6.2 UDAF編程示例39習題40參考文獻41第4章 大數據查詢繫統Impala424.1 Impala簡介424.1.1 Impala的起源424.1.2 Impala的特點424.1.3 Impala 前輩及競爭對手434.2 Impala工作原理434.2.1 Impala 設計目標444.2.2 Impala 服務器組件444.2.3 Impala 編程特點454.2.4 Impala在Hadoop生態圈中的生存之道454.3 Impala環境搭建464.3.1 Impala 安裝前的考慮474.3.2 Impala 安裝途徑與安裝示範504.4 Impala操作實例614.4.1 Impala 基本操作624.4.2 Impala 數據庫操作62習題66參考文獻66第5章 內存數據庫Spark675.1 Spark簡介675.1.1 Spark的引入675.1.2 Spark生態繫統BDAS695.1.3 Spark繫統架構755.1.4 Spark工作流程775.1.5 Spark應用案例785.2 Spark計算模型805.2.1 Spark程序模型815.2.2 彈性分布式數據集(RDD)815.2.3 Spark算子845.3 Spark工作機制855.3.1 Spark運行機制855.3.2 Spark調度機制875.3.3 Spark I/O機制935.3.4 Spark通信機制945.3.5 Spark容錯機制975.3.6 Spark Shuffle機制1015.4 Scala快速入門1025.4.1 Scala解釋器1035.4.2 變量1035.4.3 函數1045.4.4 編寫Scala腳本1055.4.5 while 配合if實現循環1055.4.6 foreach和 for 來實現迭代1055.4.7 類型參數化數組1065.4.8 Lists1075.4.9 組(Tuples)1085.4.10 Sets和Maps1085.4.11 函數編程風格1095.4.12 讀取文件1105.5 Spark環境部署1105.5.1 安裝與配置Spark1105.5.2 Intellij IDEA構建Spark開發環境1185.5.3 SBT構建Spark程序1215.5.4 編譯Spark程序1225.5.5 遠程調試Spark程序1235.5.6 生成Spark部署包1245.6 Spark 編程案例1245.6.1 WordCount1255.6.2 Top K1275.6.3 倒排索引128習題130參考文獻131第6章 Spark SQL1326.1 Spark SQL簡介1326.1.1 Spark SQL發展歷程1326.1.2 Spark SQL 架構1336.2 Spark SQL編程基礎1376.2.1 數據類型及表達式1376.2.2 Spark SQL查詢引擎Catalyst1386.2.3 SQL DSL API1426.2.4 Spark SQL ThriftServer和CLI1446.2.5 Spark SQL常用操作1466.3 Spark SQL實戰1516.3.1 Spark SQL開發環境搭建1516.3.2 Spark SQL使用入門166習題173參考文獻173第7章 鍵值數據庫1747.1 概述1747.1.1 鍵值存儲1747.1.2 鍵值數據庫1767.2 Redis1787.2.1 簡介1787.2.2 Redis數據服務及集群技術1807.2.3 Redis安裝1867.2.4 Redis數據操作1877.2.5 案例:網站訪問歷史記錄查詢1937.3 Memcached1987.3.1 簡介1987.3.2 Memcached緩存技術1987.3.3 Memcached安裝2007.3.4 Memcached數據操作2037.3.5 Memcached分布式技術2067.3.6 案例:論壇帖子信息緩存2077.4 典型應用及局限2087.4.1 典型應用2097.4.2 鍵值數據庫局限211習題211參考文獻212第8章 流式數據庫2138.1 流式計算模型2138.1.1 流式計算概念2138.1.2 流式計算數據特點2158.1.3 流式計算典型應用2168.1.4 典型流式計算平臺2168.2 流式計算關鍵技術2188.2.1 計算拓撲2188.2.2 消息傳遞2208.2.3 高可用性2228.2.4 語義保障2248.2.5 其他關鍵技術2258.3 Storm平臺2258.3.1 Storm簡介2258.3.2 Storm原理2278.3.3 Storm部署2378.3.4 案例:Maven環境下的Storm編程2428.4 Spark Streaming平臺2468.4.1 Spark Streaming簡介2478.4.2 Spark Streaming原理2488.4.3 案例:集群環境下的Spark Streaming編程249習題261參考文獻262第9章 數據應用托管平臺Docker2639.1 Docker技術簡介2639.1.1 Docker是什麼2639.1.2 Docker的架構和流程2659.2 Docker的優勢和局限2669.2.1 Docker的優勢2669.2.2 Docker的局限性2689.3 基於Docker的大數據繫統設計2709.3.1 分布式Docker網絡環境的搭建2709.3.2 Docker集群管理繫統:Kubernetes271習題277參考文獻278