●第 一部分 大數據基礎篇 第 1章 大數據思維 2 1.1 什麼是大數據 2 1.2 從IT時代到大數據時代 4 1.3 大數據的產生與作用 5 1.3.1 大數據的產生 6 1.3.2 大數據的作用 6 1.4 大數據時代的新理念 7 1.4.1 對研究範式的新認識:從第三範式到第四範式 7 1.4.2 對數據重要性的新認識:從數據資源到數據資產 8 1.4.3 對方法論的新認識:從基於知識到基於數據 9 1.4.4 對數據分析的新認識:從統計學到數據科學 9 1.4.5 對計算智能的新認識:從復雜算法到簡單算法 10 1.4.6 對管理目標的新認識:從業務數據化到數據業務化 11 1.4.7 對決策方式的新認識:從目標驅動型到數據驅動型 12 1.4.8 對產業競合關繫的新認識:從以戰略為中心到以數據為中心 12 1.4.9 對數據復雜性的新認識:從不接受到接受數據的復雜性 13 1.4.10 對數據處理模式的新認識:從小眾參與到大眾協同 14 1.5 總結 14 習題 14 第 2章 大數據技術概述 15 2.1 大數據處理的基本流程 15 2.1.1 數據抽取與集成 16 2.1.2 數據分析 16 2.1.3 數據解釋 16 2.2 大數據關鍵技術 17 2.2.1 大數據采集技術 17 2.2.2 大數據預處理技術 17 2.2.3 大數據存儲及管理技術 18 2.2.4 大數據處理 19 2.2.5 大數據分析及挖掘技術 19 2.2.6 大數據展示技術 20 2.3 總結 21 習題 21 第3章 大數據采集 22 3.1 大數據采集概述 22 3.1.1 大數據分類 22 3.1.2 大數據采集方法分類 23 3.2 繫統日志采集方法 24 3.2.1 Flume的基本概念 24 3.2.2 Flume使用方法 25 3.2.3 Flume應用案例 26 3.3 網絡數據采集方法 27 3.3.1 網絡爬蟲原理 27 3.3.2 網絡爬蟲工作流程 28 3.3.3 網絡爬蟲抓取策略 28 3.3.4 Scrapy網絡爬蟲繫統 32 3.3.5 小結 36 3.4 總結 36 習題 36 第4章 大數據預處理 37 4.1 大數據預處理概述 37 4.1.1 大數據預處理整體架構 37 4.1.2 數據質量問題分類 38 4.1.3 大數據預處理方法 38 4.2 數據清洗 39 4.2.1 遺漏數據處理 40 4.2.2 噪聲數據處理 40 4.2.3 不一致數據處理 42 4.3 數據集成 42 4.4 數據轉換 42 4.5 數據消減 44 4.5.1 數據立方合計 44 4.5.2 維數消減 44 4.5.3 數據壓縮 45 4.5.4 數據塊消減 46 4.6 離散化和概念層次樹 48 4.6.1 數值概念層次樹 48 4.6.2 類別概念層次樹 49 4.7 ETL工具Kettle 50 4.7.1 ETL工具簡介 51 4.7.2 安裝Kettle 51 4.7.3 Kettle的數據流處理 52 4.8 總結 55 習題 56 第5章 大數據處理繫統 57 5.1 大數據技術概述 57 5.1.1 分布式計算 57 5.1.2 服務器集群 57 5.1.3 大數據的技術基礎 57 5.2 Google大數據處理繫統 58 5.2.1 GFS 58 5.2.2 MapReduce 60 5.2.3 BigTable 60 5.3 Hadoop大數據處理繫統 61 5.3.1 Hadoop繫統簡介 61 5.3.2 Hadoop生態圈 61 5.3.3 Hadoop版本演進 63 5.3.4 Hadoop發行版本 63 5.4 總結 64 習題 64 第二部分 大數據存儲篇 第6章 大數據文件繫統HDFS 66 6.1 HDFS簡介 66 6.2 HDFS基本原理 66 6.2.1 文件繫統的問題 67 6.2.2 HDFS的基本思想 67 6.2.3 HDFS的設計理念 68 6.2.4 HDFS的局限 69 6.3 HDFS繫統實現 69 6.3.1 HDFS整體架構 69 6.3.2 HDFS數據復制 70 6.4 HDFS數據訪問機制 71 6.4.1 讀取流程 71 6.4.2 寫入流程 72 6.5 HDFS操作 73 6.5.1 HDFS常用命令 73 6.5.2 HDFS的Web界面 74 6.5.3 HDFS的Java API 76 6.6 總結 78 習題 79 第7章 NOSQL數據庫HBASE 80 7.1 NoSQL概述 80 7.1.1 NoSQL的起因 80 7.1.2 NoSQL的特點 81 7.1.3 NoSQL數據庫面臨的挑戰 82 7.1.4 NoSQL的類型 82 7.2 HBase概述 86 7.3 HBase數據模型 87 7.3.1 數據模型概述 87 7.3.2 數據模型的基本概念 88 7.3.3 概念視圖 88 7.3.4 物理視圖 89 7.4 HBase命令行 90 7.4.1 一般操作 90 7.4.2 DDL操作 90 7.4.3 DML操作 91 7.4.4 HBase表實例 93 7.5 HBase的運行機制 94 7.5.1 HBase的物理存儲 94 7.5.2 HBase的邏輯架構 95 7.6 HBase的編程 96 7.6.1 HBase的常用Java API 96 7.6.2 HBase編程實例 98 7.7 總結 101 習題 101 第三部分 大數據處理篇 第8章 大數據批處理 HADOOP MAPREDUCE 103 8.1 MapReduce概述 103 8.1.1 批處理模式 103 8.1.2 MapReduce簡釋 104 8.1.3 MapReduce基本思想 105 8.1.4 Map函數和Reduce函數 107 8.2 Hadoop MapReduce架構 109 8.3 Hadoop MapReduce的工作流程 110 8.4 實例分析:單詞計數 112 8.4.1 設計思路 112 8.4.2 處理過程 112 8.5 Hadoop MapReduce 的工作機制 113 8.5.1 Hadoop MapReduce作業執行流程 114 8.5.2 Hadoop MapReduce的Shuffle階段 115 8.5.3 Hadoop MapReduce的主要特點 117 8.6 Hadoop MapReduce編程實戰 118 8.6.1 任務準備 118 8.6.2 編寫Map程序 118 8.6.3 編寫Reduce程序 119 8.6.4 編寫main函數 121 8.6.5 核心代碼包 121 8.6.6 運行代碼 122 8.7 總結 122 習題 122 第9章 大數據快速處理SPARK 124 9.1 Spark簡介 124 9.1.1 Spark與Hadoop 124 9.1.2 Spark的適用場景 126 9.2 RDD概念 126 9.2.1 RDD的基本概念 126 9.2.2 RDD基本操作 127 9.2.3 RDD血緣關繫 130 9.2.4 RDD依賴類型 130 9.2.5 階段劃分 131 9.2.6 RDD緩存 132 9.3 Spark運行架構和機制 133 9.3.1 Spark總體架構 133 9.3.2 Spark運行流程 134 9.4 Spark生態繫統 135 9.5 Spark編程實踐 137 9.5.1 啟動Spark Shell 137 9.5.2 Spark Shell使用 137 9.5.3 編寫Java應用程序 138 9.6 總結 140 習題 140 第 10章 大數據實時流計算SPARK STREAMING 143 10.1 Spark Streaming簡介 143 10.2 Spark Streaming的繫統架構 144 10.2.1 傳統流處理繫統架構 144 10.2.2 Spark Streaming繫統架構 145 10.2.3 動態負載均衡 146 10.2.4 容錯性 147 10.2.5 實時性、擴展性與吞吐量 148 10.3 編程模型 149 10.3.1 DStream的操作流程 149 10.3.2 Spark Streaming使用 149 10.3.3 DStream的輸入源 150 10.4 DStream的操作 151 10.4.1 普通的轉換操作 151 10.4.2 窗口轉換操作 153 10.4.3 輸出操作 154 10.4.4 持久化 155 10.5 編程實戰 155 10.5.1 流數據模擬器 155 10.5.2 實例1:讀取文件演示 156 10.5.3 實例2:網絡數據演示 157 10.5.4 實例3:Stateful演示 158 10.5.5 實例4:窗口演示 159 10.6 總結 160 習題 161 第四部分 大數據挖掘篇 第 11章 大數據挖掘 16311.1 數據挖掘概述 163 11.1.1 什麼是數據挖掘 163 11.1.2 數據挖掘的價值類型 164 11.1.3 數據挖掘算法的類型 165 11.2 Spark MLlib簡介 166 11.2.1 Spark MLlib的構成 166 11.2.2 Spark MLlib的優勢 166 11.3 分類和預測 166 11.3.1 分類的基本概念 167 11.3.2 預測的基本概念 168 11.3.3 決策樹算法 168 11.3.4 樸素貝葉斯算法 172 11.3.5 回歸分析 175 11.3.6 小結 180 11.4 聚類分析 180 11.4.1 基本概念 180 11.4.2 聚類分析方法的類別 181 11.4.3 k-means聚類算法 184 11.4.4 DBSCAN聚類算法 187 11.4.5 小結 190 11.5 關聯分析 191 11.5.1 概述 191 11.5.2 基本概念 191 11.5.3 關聯分析步驟 192 11.5.4 Apriori關聯分析算法 193 11.5.5 FP-Tree關聯分析算法 194 11.5.6 小結 199 11.6 總結 200 習題 200 第五部分 大數據應用篇 第 12章 大數據應用 205 12.1 大數據功能應用 205 12.1.1 基於大數據的精準營銷 205 12.1.2 基於大數據的個性化推薦 208 12.1.3 大數據預測 215 12.1.4 大數據的其他應用領域 219 12.1.5 小結 221 12.2 大數據行業應用 221 12.2.1 大數據行業應用概述 221 12.2.2 金融行業大數據 222 12.2.3 互聯網行業的大數據應用 229 12.2.4 物流行業大數據應用 235 12.2.5 小結 242 12.3 總結 243 習題 243
內容簡介
本書將基本概念與實例相結合,由淺入深、循序漸進地對大數據思維、技術和應用做了全面繫統的介紹。全書共12章,分為大數據基礎篇、大數據存儲篇、大數據處理篇、大數據挖掘篇和大數據應用篇。 大數據基礎篇的內容涵蓋了大數據思維理念、大數據的產生與作用、大數據基本概念、大數據采集工具Flume和Scribe、大數據爬蟲工具Nutch和Scapy、大數據預處理工具Kettle、大數據處理架構Hadoop;大數據存儲篇的內容包含分布式文件存儲繫統HDFS、海量數據存儲數據庫繫統HBase和海量數據倉庫繫統Hive;大數據處理篇主要介紹了分布式並發計算批處理模式MapReduce,基於內存的快速處理模式Spark,以及基於實時數據流的實時處理模式Spark Streaming;大數據挖掘篇主要對分類、預測、聚類和關聯等各類大數據挖掘算法的原理和使用場景進行了描述,並使用Spark MLlib提供的機器學習算......