相關主題
商品描述
本書系統闡述大數據的常用技術原理和框架,並精選實戰案例深化大數據技術運用。全書共12個單元,內容包含大數據與Hadoop概述、大數據處理平臺Hadoop的安裝與配置、分布式文件系統HDFS、MapReduce和YARN技術、分布式數據庫HBase、數據倉庫Hive、大數據遷移工具Sqoop、分布式協調服務ZooKeeper、日誌采集系統Flume、分布式消息發布訂閱系統Kafka、大數據內存計算Spark及流式計算引擎Storm。 本書采用“項目引領、任務驅動”的編排模式,內容設計遵循由淺入深的認知規律,從基礎原理逐步過渡到實戰應用,系統規劃教學內容體系。全書共設50個任務,在Hadoop、HDFS、MapReduce、HBase、Hive、Sqoop、ZooKeeper、Flume、Kafka、Spark和Storm等相關單元介紹環境搭建和項目案例,以便讀者能更好地學習和掌握大數據的關鍵技術。
目錄大綱
單元1 大數據與Hadoop概述 1
任務1.1 認識大數據 1
1.1.1 大數據是什麼 2
1.1.2 大數據特征 2
1.1.3 大數據的發展助力 5
任務1.2 大數據關鍵技術 7
1.2.1 大數據處理流程 8
1.2.2 結構化、半結構化和非結構化數據 8
任務1.3 大數據處理架構Hadoop 9
1.3.1 Hadoop簡介 9
1.3.2 Hadoop的特性 10
1.3.3 Hadoop的版本 10
1.3.4 Hadoop生態系統 11
1.3.5 Hadoop計算模式 13
1.3.5.1 離線批處理 13
任務1.4 大數據產業技術和應用領域 15
1.4.1 大數據產業技術 15
1.4.2 大數據的應用案例 15
1.4.3 大數據時代企業面臨的挑戰 16
單元總結 17
單元習題 17
單元2 Hadoop大數據處理平臺的安裝與配置 18
任務2.1 虛擬機VMware安裝 19
2.1.1 認識虛擬機 19
2.1.2 虛擬機安裝 20
任務2.2 Centos7安裝與配置 21
2.2.1 Centos 7的安裝 21
2.2.2 CentOS 7的配置 26
2.2.3 Centos7常用操作命令 34
任務2.3 WinSCP的安裝與使用 37
2.3.1 下載WinSCP安裝文件 38
2.3.2 WinSCP安裝 38
2.3.3 WinScp應用 39
任務2.4 Xshell安裝與使用 41
2.4.1 Xshell安裝包準備下載 41
2.4.2 Xshell 5安裝 41
任務2.5 Hadoop的安裝模式 44
2.5.1 本地模式 44
2.5.2 偽分布模式 44
2.5.3 分布模式 44
任務2.6 JDK的安裝和配置 45
2.6.1下載JDK 45
2.6.2 上傳JDK到 CentOS7虛擬機 45
2.6.3 安裝並配置JDK 46
任務2.7 Hadoop的本地模式安裝和配置 47
2.7.1 下載Hadoop安裝包 47
2.7.2 安裝並配置Hadoop 環境 48
2.7.3 以本地模式配置Hadoop 49
2.7.4 驗證Hadoop本地模式是否安裝成功 49
任務2.8 Hadoop的偽分布模式安裝和配置 51
2.8.1 以偽分布模式配置Hadoop的配置文件 51
2.8.2 格式化NameNode 53
2.8.3 啟動Hadoop 53
2.8.4 驗證Hadoop偽分布模式是否安裝並啟動成功 54
任務2.9 Hadoop的完全分布式安裝 56
2.9.1 服務器規劃 56
2.9.2 由master克隆出兩臺虛擬機slave1、slave1 56
2.9.3 啟動3臺虛擬機,配置slave1、slave2地址 57
2.9.4 設置主機名,將主機名與IP地址建立映射 59
2.9.5 配置關閉防火墻 60
2.9.6 配置免密碼登錄 60
2.9.7 搭建並測試hadoop集群環境 62
任務2.10 Hadoop HA安裝部署 67
2.10.1 集群服務器準備 68
2.10.2 搭建並配置Zookeeper集群 69
2.10.3 搭建並配置hadoop集群 72
2.10.4 啟動Hadoop集群 76
單元總結 83
單元習題 83
實驗2.1 VMware虛擬機及Centos操作系統安裝 83
實驗2.2 Hadoop偽分布模式安裝與應用 84
實驗2.3 Hadoop完全分布模式安裝 85
實驗2.4 Hadoop HA模式安裝 86
單元3 分布式文件系統HDFS 87
任務3.1 Hadoop HDFS架構 88
3.1.1 計算機集群結構 88
3.1.2 HDFS架構 88
任務3.2 HDFS體系結構 93
3.2.1 HDFS的體系結構 93
3.2.2 HDFS命名空間管理 94
3.2.3 HDFS通信協議 94
3.2.4 客戶端Client 95
3.2.5 HDFS體系結構的局限性及改進措施 95
任務3.3 HDFS的數據存儲策略 97
3.3.1 數據的冗余存儲 97
3.3.2 數據的存放策略 97
3.3.3 數據的讀寫策略 98
任務3.4 HDFS容錯 98
3.4.1 文件系統的容錯 99
3.4.2 Hadoop自身的容錯 99
任務3.5 Hadoop HDFS的數據讀寫過程 100
3.5.1 讀數據的過程 100
3.5.2 寫數據的過程 100
3.5.3 數據完整性 101
任務3.6 Hadoop HDFS命令 102
3.6.1 HDFS 常用命令總覽 102
3.6.2 創建與查看HDFS目錄 103
任務3.7 HDFS的Java API操作 104
3.7.1 大數據線下實驗環境搭建 104
3.7.2 HDFS的Java API操作 111
單元總結 119
單元習題 119
實驗3.1 HDFS實驗操作 119
實驗3.2 HDFS Java API實驗操作 122
單元4 MapReduce和YARN技術 124
任務4.1 認識MapReduce 124
4.1.1 MapReduce體系結構 125
4.1.2 MapReduce工作流程 125
任務4.2 認識YARN 126
4.2.1 MapReduce1.0體系結構及缺陷 126
4.2.2 YARN的體系結構 127
4.2.3 YARN和Hadoop部署方式 128
任務4.3 MapReduce的工作機制 129
4.3.1 MapReduce的運行流程 129
4.3.2 YARN在MapReduce過程中的作用 130
任務4.4 用MapReduce編寫WordCountApp實現單詞統計 134
4.4.1 任務要求及程序代碼 135
4.4.2 在IDEA中調試MapReduce程序統計單詞個數 136
單元總結 143
單元習題 143
實驗4 MapReduce編程實現單詞統計 143
單元5 分布式數據庫HBase 145
任務5.1 認識HBase 145
5.1.1 分布式數據存儲系統BigTable 146
5.1.2 分布式數據庫HBase 146
5.1.3 HBase與傳統關系型數據庫比較 146
5.1.4 HBase訪問接口 148
5.1.5 HBase數據模型 148
任務5.2 HBase的實現原理 151
5.2.1 表和Region 152
5.2.2 HBase系統架構 153
5.2.3 Region服務器的工作原理 154
5.2.4 Store的工作原理 156
5.2.5 HLog的工作原理 156
5.2.6 Region的定位 156
任務5.3 HBase組件安裝與配置 158
5.3.1 Zookeeper安裝 159
5.3.2 HBase安裝與配置 160
任務5.4 HBase常用Shell命令的使用 163
5.4.1 進入HBase shell 164
5.4.2 創建並查看普通表 164
5.4.3 創建namespace 164
5.4.4 給表增加數據 164
5.4.5 get方式查詢數據 165
5.4.6 scan方式查詢數據 165
5.4.7 指定條件查詢數據 166
5.4.8 更新數據 166
5.4.9 使用delete刪除某一列數據 167
5.4.10 使用deleteall刪除整行數據 167
5.4.11 使用drop刪除數據表 167
5.4.12 Filter過濾器使用 168
任務5.5 HBase Java API編程應用 169
5.5.1 環境準備 169
5.5.2 編寫HBase Java API程序並執行 169
單元總結 180
單元習題 181
實驗5.1 HBase組件安裝 181
實驗5.2 HBase實驗操作 182
實驗5.3 HBase JavaAPI編程應用 183
單元6 數據倉庫Hive的安裝部署 184
任務6.1 Hive架構和部署模式 185
6.1.1 Hive架構 185
6.1.2 內嵌模式 186
6.1.3 本地模式 186
6.1.4 遠程模式 186
6.1.5 Hive和傳統數據庫的區別 187
任務6.2 安裝並配置MySQL數據庫 188
6.2.1 修改CentOS-Base.repo配置文件 189
6.2.2 查看系統已安裝的mysql 189
6.2.3 卸載之前已安裝的MySQL版本 190
6.2.4 安裝自動下載工具wget 190
6.2.5 下載MySQL安裝包 191
6.2.6 安裝MySQL 191
6.2.7 安裝MySQL服務 191
6.2.8 啟動MySQL 192
6.2.9 修改MySQL臨時密碼 192
6.2.10 允許遠程訪問 194
6.2.11 修改MySQL允許任何人連接 194
任務6.3 Hive環境安裝與配置 195
6.3.1 Hive安裝包準備 196
6.3.2 解壓Hive安裝包 196
6.3.3 設置Hive環境變量 196
6.3.4 完成相關配置並添加依賴包 197
6.3.5 初始化MySQL元數據庫 198
6.3.6 啟動Hive 199
任務6.4 數據倉庫Hive在數據處理中的應用 199
6.4.1 Hive命令說明 200
6.4.2 Hive數據定義 202
6.4.3 Hive數據操作 218
6.4.4 Hive數據查詢 223
6.4.5 Hive視圖 233
6.4.6 Hive函數 235
任務6.5 Hive在貸款數據分析中的應用 239
6.5.1 貸款數據分析任務要求 239
6.5.2 貸款數據分析任務實施 240
單元總結 250
單元習題 250
實驗6.1 Hive組件安裝 250
實驗6.2 Hive在數據分析中的應用 251
單元7 大數據遷移工具Sqoop 253
任務7.1 Sqoop工作原理 253
7.1.1 Sqoop架構 253
7.1.2 Sqoop數據導入過程 254
7.1.3 Sqoop數據導出過程 255
任務7.2 Sqoop的安裝和配置 256
7.2.1 下載sqoop安裝包。 256
7.2.2 解壓sqoop安裝包到指定目錄 256
7.2.3 修改配置文件sqoop-env.sh 256
7.2.4 拷貝MySQL的jdbc驅動包到sqoop/lib目錄 257
7.2.5 配置configure-sqoop 258
7.2.6 修改/etc/profile 258
7.2.7 驗證sqoop 258
任務7.3 用sqoop導入導出數據 259
7.3.1 用sqoop import進行數據導入 260
7.3.2 用sqoop export進行數據導出 266
單元總結 272
單元習題 272
實驗7 Sqoop安裝與應用 273
單元8 ZooKeeper分布式協調服務 274
任務8.1 ZooKeeper的基本概念和架構原理 274
8.1.1 ZooKeeper基本概念 275
8.1.2 Zookeeper服務架構組成 275
8.1.3 ZooKeeper關鍵特性 276
8.1.4 ZooKeeper與其他組件的關系 277
任務8.2 ZooKeeper客戶端常用命令使用 278
8.2.1 Zookeeper啟動操作 279
8.2.2 顯示所有操作命令 279
8.2.3 查看當前ZNode中所包含的內容 279
8.2.4 查看當前節點詳細數據 280
8.2.5 創建節點 280
8.2.6 修改節點數據值 283
8.2.7 刪除節點 283
8.2.8 查看當前機器角色 284
單元總結 284
單元習題 284
實驗8 Zookeeper安裝及使用 284
單元9 日誌采集系統Flume 286
任務9.1 Flume技術原理 286
9.1.1 認識Flume 287
9.1.2 Flume架構 287
9.1.3 Flume的基本概念 289
9.1.4 Flume關鍵特性 290
任務9.2 Flume安裝與應用 292
9.2.1 Flume安裝 292
9.2.2 Flume應用實踐 293
單元總結 298
單元習題 298
實驗9 Flume安裝及使用 299
單元10 Kafka分布式消息訂閱系統 300
任務10.1 Kafka技術原理 300
10.1.1 認識Kafka 301
10.1.2 Kafka應用場景 301
10.1.3 Kafka架構與功能 302
10.1.4 生產者(Producer) 302
10.1.5 消費者(Consumer) 303
10.1.6 Kafka主題(Topics) 303
10.1.7 Kafka分區(Partition) 303
10.1.8 Kafka 分區偏移量 304
任務10.2 Kafka組件安裝與使用 304
10.2.1 Kafka安裝 305
10.2.2 Kafka操作應用 307
單元總結 311
單元習題 311
實驗10 Kafka安裝與應用 311
單元11 大數據內存計算Spark 313
任務11.1 認識Spark 313
11.1.1 Spark應用場景 314
11.1.2 Spark的特點 314
11.1.3 Spark與MapReduce對比 314
11.1.4 Spark的生態系統 316
任務11.2 Spark原理與架構 318
11.2.1 Spark運行架構 318
11.2.2 RDD的設計與運行原理 320
11.2.3 RDD的算子 323
11.2.4 Spark SQL 324
任務11.3 Spark集群的安裝部署 325
11.3.1 Spark運行模式 325
11.3.2 Spark on Yarn模式集群安裝 326
11.3.3 Spark RDD操作實踐 329
11.3.3.2 RDD常用轉換操作 330
單元總結 334
單元習題 334
實驗11 Spark組件安裝與應用 334
單元12 Storm流式計算引擎 336
任務12.1 Storm技術原理 336
12.1.1 認識Storm 337
12.1.2 Storm特點 337
12.1.3 Storm的設計思想 337
12.1.3 Storm關鍵概念 338
12.1.4 Storm的系統架構 340
12.1.5 Storm與Hadoop對比 342
任務12.2 Storm組件安裝 342
12.2.1 下載並安裝軟件包 343
12.2.2 配置環境變量 343
12.2.3 修改配置文件storm.yaml 343
12.2.4 啟動Storm集群 344
任務12.3 Storm編程實踐 345
12.3.1 Storm環境搭建 346
12.3.2 Storm並發機制編程實踐 346
12.3.3 調整Worker進程個數 353
12.3.4 調整Executor線程個數 354
12.3.5 調整Task任務個數 354
單元總結 355
單元習題 355
實驗12.1 Storm組件安裝 356
實驗12.2 Storm編程實踐 357
參考文獻 358