自己動手做大數據系統(第2版)

自己動手做大數據系統(第2版)

《自己動手做大數據系統(第2版)》在本書第1版的基礎上,按照離線大數據和流式大數據兩個場景進行劃分。在代碼實現上以Python為主,緊貼主流程式語言。

基本介紹

  • 書名:自己動手做大數據系統(第2版)
  • 作者:劉未昕、張粵磊、張魁、吳茂貴
  • 類別:計算機
  • 出版社:電子工業出版社
  • 出版時間:2020年4月
  • 頁數:356 頁
  • 定價:79 元
  • 開本:16 開
  • ISBN:9787121382024
內容簡介,圖書目錄,作者簡介,

內容簡介

《自己動手做大數據系統(第2版)》以離線大數據和流式大數據兩個具體示例,貫穿本書的第二、三部分內容,對組件之間的協同工作關係進行剖析。

圖書目錄

第一部分 大數據概述
第1章 大數據的時代背景及套用落地     2
1.1 大數據與“雲大物區智”的關聯        2
1.2 大數據平台的套用優勢        4
1.3 大數據平台的技術架構選型和產品對比   4
第2章 大數據系統的安裝及配置     7
2.1 伺服器及作業系統的準備   7
2.2 JDK、Python和Scala    8
2.3 Hadoop   12
2.3.1  安裝環境的確認及檔案準備    16
2.3.2  配置環境變數及無密碼傳輸    16
2.3.3  配置Hadoop的對應參數  18
2.3.4  啟動並驗證Hadoop   20
2.4 Sqoop      20
2.4.1  Sqoop安裝檔案的準備      22
2.4.2  Sqoop的安裝及配置 23
2.4.3  Sqoop運行驗證 24
2.5 Hive         25
2.5.1  安裝雄艱櫻灑檔案的準備         26
2.5.2  配置環境變數和安裝MySQL    26
2.5.3  配置Hive參數   26
2.5.4  驗證Hive的相關服務        29
2.6 ZooKeeper和HBase      29
2.6.1  ZooKeeper安裝檔案的準備      30
2.6.2  ZooKeeper的安裝及配置  30
2.6.3  ZooKeeper運行驗證  31
2.6.4  HBase安裝檔案的準備     31
2.6.5  HBase的安裝及配置 31
2.6.6  HBase運行驗證 32
2.7 Flume      33
2.8 Kafka       35
2.9 Spark       37
2.9.1  Spark安裝檔案的準備       38
2.9.2  Spark的安裝及配置  38
2.9.3  Spark運行驗證  39
2.10 Flink       39
2.11 開源大數據系統各組件的組合 40
2.12 CDH      41
2.13 FusionInsight         42
2.14 小結      44
第二部分 離線大數據處理
第3章  使用Python爬蟲獲取數據    47
3.1 Python爬蟲模組的安裝        47
3.1.1 requests模組的安裝及驗證     47
3.1.2  Beautiful Soup模組的安裝及驗證    47
3.2 抓迎煉阿取並解析朵影尋敬JSON數據 49
3.2.1 利用Fiddler找出所抓取的網址        49
3.2.2  解析JSON對象  51
3.3  抓取並解析HTML中的數據         52
3.3.1  使用Beautiful Soup提取網頁內容   52
3.3.2  保存抓取內容    53
3.3.3  不同爬蟲模組所適用的場景    55
3.4  使用Python提取文章的關鍵字  55
3.4.1  中文分詞和關鍵字的提取         55
3.4.2  Python的中文分詞模組jieba    56
3.4.3  使用自定義詞典和停用詞雅墓嬸         57
3.4.4  提取文章的關鍵字    58
3.5  小結        60
第4章 堡歸芝 Hive在大數據中的角色 61
4.1  Hive的核心概念及配置使用        61
4.1.1  Hive在大數據生態系統中的作用    61
4.1.2  Hive的幾種使用方法         62
4.1.3  使用Tez引擎替代MapReduce 65
4.2  概要設計和物理模型的創建        68
4.2.1  使用Hive要解決哪些問題        68
4.2.2  資料庫的概要設計    68
4.2.3  物理模型的定義及創建表         73
4.3  載入爬蟲數據        79
4.4  數據的合併、去重和轉換   80
4.4.1  數據的合併         80
4.4.2  利用臨時表去掉重複的您付汽數據    81
4.4.3  使用Hive內置函式轉換數據   83
4.5  使永譽用UDF實現數據的轉換   84
4.5.1  用戶自定義函式的實現原理    84
4.5.2  利用Python實現UDF        84
4.5.3  數據進入rpt表 87
4.6  使用Python操作Hive  89
4.6.1  安裝impyla模組         89
4.6.2  使用Python讀取數據示例        89
4.7  ETL數據調度和數據治理     90
4.7.1  數據處理的自動化    90
4.7.2  數據治理    95
4.8  小結        96
第5章  使用HBase實現大數據存儲         97
5.1  非關係型資料庫及HBase    97
5.2  HBase的幾個核心概念         98
5.3  HBase數據操作命令    99
5.3.1  HBase客戶端     99
5.3.2  創建表及插入數據    100
5.3.3  按照行鍵值檢索         102
5.3.4  掃描檢索    102
5.3.5  刪除表和數據    104
5.4  使用Python操作HBase        107
5.4.1  啟動HBase Thrift Server    107
5.4.2  安裝happybase模組 107
5.4.3  插入數據及刪除數據         107
5.4.4  組合查詢代碼示例    109
5.5  把Hive數據導入HBase        110
5.6  用Hive外部表讀取HBase數據  111
5.7  小結        112
第6章  Spark數據分析引擎        113
6.1  Spark簡介      113
6.2  Spark集群的配置及啟動      114
6.2.1  Spark集群的安裝與配置  115
6.2.2  作業提交方式    116
6.2.3  操作界面的啟動類型         117
6.2.4  三類Web監控界面   119
6.3  調用Hive數據       121
6.3.1  使用beeline客戶端   121
6.3.2  使用HiveContext對象       122
6.3.3  使用Spark SQL    123
6.3.4  使用JDBC   123
6.4  調用HBase數據   123
6.4.1  設定環境變數    123
6.4.2  讀數據示例         124
6.5  使用PySpark進行數據分析 126
6.5.1  將RDD轉換為DataFrame         127
6.5.2  Spark SQL等值連線    129
6.5.3  使用matplotlib繪製直方圖      129
6.6  小結        130
第7章  使用Flask實現數據展示        131
7.1  Flask框架簡介及站點搭建流程  131
7.2  Flask微框架的特性       132
7.3  使用MVC模式搭建項目框架      133
7.3.1  訪問地址    133
7.3.2  MVC模式簡介   133
7.3.3  項目目錄結構    134
7.4  檢索及載入新聞數據   135
7.4.1  模型層的開發    135
7.4.2  模型層的單元測試    136
7.4.3  控制器層的開發         138
7.4.4  控制器層的單元測試         139
7.4.5  視圖層的開發    140
7.5  小結        141
第二部分技術點總結     141
第三部分  流式大數據處理
第8章  使用Flume獲取網站訪問日誌      145
8.1  Flume的安裝及數據流模型 145
8.1.1  Flume簡介及安裝      145
8.1.2  Flume的數據流模型 146
8.2  核心組件的配合使用   146
8.2.1  6種核心組件      146
8.2.2  配置檔案    147
8.2.3  flume-ng命令     148
8.3  各種數據組合的流動方式   150
8.3.1  將日誌收集至檔案    150
8.3.2  Sink的多路復用 152
8.3.3  使用Avro作為數據源        154
8.3.4  Channel的多路復用  155
8.4  Apache伺服器的日誌格式  158
8.5  合併兩個網站的日誌   160
8.6  小結        162
第9章  Kafka的安裝、配置及其與Flume的整合    163
9.1  Kafka的特性及安裝、配置 163
9.1.1  Kafka的特性和適用場合  163
9.1.2  安裝、配置Kafka       164
9.2  幾種術語        166
9.3  Broker的使用方法        167
9.3.1  單節點單Broker         168
9.3.2  單節點多Broker         169
9.3.3  分散式Broker     172
9.3.4  分區及偏移量    174
9.3.5  分區選擇策略    176
9.4  分散式生產者/消費者  176
9.4.1  兩個生產者         176
9.4.2  消費者組    177
9.5  Kafka Connector     180
9.5.1  File Source   181
9.5.2  File Sink        182
9.6  Kafka和Flume的整合  183
9.6.1  給Flume提供數據     183
9.6.2  從Flume中獲取數據 184
9.7  使用Python連線Kafka 186
9.8  小結        187
第10章  Redis資料庫簡介 188
10.1  Redis的特點及適用場景    188
10.2  Redis的安裝及命令行使用方法        188
10.2.1  Redis的安裝及啟動         188
10.2.2  命令行客戶端  189
10.2.3  5種數據類型   190
10.2.4  字元串命令       191
10.3  使用Python操作Redis       193
10.4  使用Java操作Redis   194
10.5  小結      195
第11章  Flink簡介及其與Kafka的整合    196
11.1  Flink概述及其與Spark的區別   196
11.2  Flink的架構、特性及工作流程 196
11.3  Flink的安裝 199
11.3.1  單節點的安裝  199
11.3.2  集群的安裝       201
11.3.3  利用ZooKeeper實現Flink的高可用性  203
11.4  Flink的作業提交方式 205
11.4.1  以Standalone方式運行  205
11.4.2  利用YARN Session運行   207
11.4.3  利用Python調用Flink服務     212
11.4.4  使用REST API查看狀態  213
11.5  Flink-Kafka Connector  214
11.5.1  Flink為Kafka提供數據    215
11.5.2  Flink從Kafka接收數據    219
11.6  使用Flink統計PageView    221
11.6.1  Flink開發的一般步驟       221
11.6.2  Flink DataStream API         221
11.6.3  將數據落地至Redis和HBase         227
11.7  小結      235
第12章  網站頁面訪問量的動態展示       236
12.1  百度的ECharts圖表功能簡介   236
12.2  頁面訪問量的動態統計      238
12.2.1  模型層的開發  239
12.2.2  控制器層的開發       242
12.2.3  視圖層的開發  242
12.3  生成詞雲圖和占比餅圖      245
12.3.1  詞雲圖模型層的開發       245
12.3.2  詞雲圖控制器層的開發  248
12.3.3  詞雲圖視圖層的開發       249
12.3.4  關鍵字餅圖的模型層開發       249
12.3.5  關鍵字餅圖的控制器層開發  250
12.3.6  關鍵字餅圖的視圖層開發       251
12.4  訪問日誌檢索      252
12.5  小結      253
第三部分技術點總結     253
第四部分  雲平台搭建
第13章 搭建基於雲平台的容器級數據系統   256
13.1 雲平台 256
13.1.1 雲平台架構       256
13.1.2 雲平台的搭建及部署       259
13.1.3  雲平台的高級配置  303
13.2  基於雲平台的容器集群      309
13.2.1  Magnum    309
13.2.2  Docker Swarm   311
13.2.3  Mesos和Marathon的結合     316
13.2.4  Kubernetes        323
13.3  基於容器的大數據系統      331
13.4 小結      339

作者簡介

劉未昕
從事IT研發和項目管理工作十餘年。使用多種主流程式設計語言,深耕於大數據套用及人工智慧技術,多年從事金融、數據倉庫、智慧醫療等領域的研發工作。5年以上IT行業授課、培訓經驗,並在多所高校擔任外聘講師。
張粵磊
平安壹錢包前大數據架構師。業內知名大數據專家,多本大數據暢銷書的作者。2016年以來,其每年都以高級專家和諮詢顧問的身份深入參與大數據、人工智慧技術在行業的落地套用工作。已完成企業培訓數百場,培訓學員數萬名,在數據人才實戰型、場景型培訓培養方面具有豐富的實踐經驗。
張  魁
虛擬化工程師,OpenStack架構師,蘇州某高校雲平台架構師,十餘年Linux系統運維實踐及虛擬化開發經驗,4年Linux系統補丁開發經驗。先後在美企擔任虛擬化套用運維、伺服器集群開發運維工程師或系統開發架構師,高校信息中心雲平台架構師,主要關注OpenStack、Docker及分散式存儲等。
吳茂貴
運籌學與控制論專業研究生學歷。畢業後主要參與數據倉庫、商務智慧型等方面的項目,期間做過數據處理、數據分析、數據挖掘等工作,行業涉及金融、物流、製造業等。近期主要做複雜數據存儲、清理、轉換等工作,同時在大數據方面也很有興趣並投入大量時間和精力,且將持續為之。
2.13 FusionInsight         42
2.14 小結      44
第二部分 離線大數據處理
第3章  使用Python爬蟲獲取數據    47
3.1 Python爬蟲模組的安裝        47
3.1.1 requests模組的安裝及驗證     47
3.1.2  Beautiful Soup模組的安裝及驗證    47
3.2 抓取並解析JSON數據 49
3.2.1 利用Fiddler找出所抓取的網址        49
3.2.2  解析JSON對象  51
3.3  抓取並解析HTML中的數據         52
3.3.1  使用Beautiful Soup提取網頁內容   52
3.3.2  保存抓取內容    53
3.3.3  不同爬蟲模組所適用的場景    55
3.4  使用Python提取文章的關鍵字  55
3.4.1  中文分詞和關鍵字的提取         55
3.4.2  Python的中文分詞模組jieba    56
3.4.3  使用自定義詞典和停用詞         57
3.4.4  提取文章的關鍵字    58
3.5  小結        60
第4章  Hive在大數據中的角色 61
4.1  Hive的核心概念及配置使用        61
4.1.1  Hive在大數據生態系統中的作用    61
4.1.2  Hive的幾種使用方法         62
4.1.3  使用Tez引擎替代MapReduce 65
4.2  概要設計和物理模型的創建        68
4.2.1  使用Hive要解決哪些問題        68
4.2.2  資料庫的概要設計    68
4.2.3  物理模型的定義及創建表         73
4.3  載入爬蟲數據        79
4.4  數據的合併、去重和轉換   80
4.4.1  數據的合併         80
4.4.2  利用臨時表去掉重複的數據    81
4.4.3  使用Hive內置函式轉換數據   83
4.5  使用UDF實現數據的轉換   84
4.5.1  用戶自定義函式的實現原理    84
4.5.2  利用Python實現UDF        84
4.5.3  數據進入rpt表 87
4.6  使用Python操作Hive  89
4.6.1  安裝impyla模組         89
4.6.2  使用Python讀取數據示例        89
4.7  ETL數據調度和數據治理     90
4.7.1  數據處理的自動化    90
4.7.2  數據治理    95
4.8  小結        96
第5章  使用HBase實現大數據存儲         97
5.1  非關係型資料庫及HBase    97
5.2  HBase的幾個核心概念         98
5.3  HBase數據操作命令    99
5.3.1  HBase客戶端     99
5.3.2  創建表及插入數據    100
5.3.3  按照行鍵值檢索         102
5.3.4  掃描檢索    102
5.3.5  刪除表和數據    104
5.4  使用Python操作HBase        107
5.4.1  啟動HBase Thrift Server    107
5.4.2  安裝happybase模組 107
5.4.3  插入數據及刪除數據         107
5.4.4  組合查詢代碼示例    109
5.5  把Hive數據導入HBase        110
5.6  用Hive外部表讀取HBase數據  111
5.7  小結        112
第6章  Spark數據分析引擎        113
6.1  Spark簡介      113
6.2  Spark集群的配置及啟動      114
6.2.1  Spark集群的安裝與配置  115
6.2.2  作業提交方式    116
6.2.3  操作界面的啟動類型         117
6.2.4  三類Web監控界面   119
6.3  調用Hive數據       121
6.3.1  使用beeline客戶端   121
6.3.2  使用HiveContext對象       122
6.3.3  使用Spark SQL    123
6.3.4  使用JDBC   123
6.4  調用HBase數據   123
6.4.1  設定環境變數    123
6.4.2  讀數據示例         124
6.5  使用PySpark進行數據分析 126
6.5.1  將RDD轉換為DataFrame         127
6.5.2  Spark SQL等值連線    129
6.5.3  使用matplotlib繪製直方圖      129
6.6  小結        130
第7章  使用Flask實現數據展示        131
7.1  Flask框架簡介及站點搭建流程  131
7.2  Flask微框架的特性       132
7.3  使用MVC模式搭建項目框架      133
7.3.1  訪問地址    133
7.3.2  MVC模式簡介   133
7.3.3  項目目錄結構    134
7.4  檢索及載入新聞數據   135
7.4.1  模型層的開發    135
7.4.2  模型層的單元測試    136
7.4.3  控制器層的開發         138
7.4.4  控制器層的單元測試         139
7.4.5  視圖層的開發    140
7.5  小結        141
第二部分技術點總結     141
第三部分  流式大數據處理
第8章  使用Flume獲取網站訪問日誌      145
8.1  Flume的安裝及數據流模型 145
8.1.1  Flume簡介及安裝      145
8.1.2  Flume的數據流模型 146
8.2  核心組件的配合使用   146
8.2.1  6種核心組件      146
8.2.2  配置檔案    147
8.2.3  flume-ng命令     148
8.3  各種數據組合的流動方式   150
8.3.1  將日誌收集至檔案    150
8.3.2  Sink的多路復用 152
8.3.3  使用Avro作為數據源        154
8.3.4  Channel的多路復用  155
8.4  Apache伺服器的日誌格式  158
8.5  合併兩個網站的日誌   160
8.6  小結        162
第9章  Kafka的安裝、配置及其與Flume的整合    163
9.1  Kafka的特性及安裝、配置 163
9.1.1  Kafka的特性和適用場合  163
9.1.2  安裝、配置Kafka       164
9.2  幾種術語        166
9.3  Broker的使用方法        167
9.3.1  單節點單Broker         168
9.3.2  單節點多Broker         169
9.3.3  分散式Broker     172
9.3.4  分區及偏移量    174
9.3.5  分區選擇策略    176
9.4  分散式生產者/消費者  176
9.4.1  兩個生產者         176
9.4.2  消費者組    177
9.5  Kafka Connector     180
9.5.1  File Source   181
9.5.2  File Sink        182
9.6  Kafka和Flume的整合  183
9.6.1  給Flume提供數據     183
9.6.2  從Flume中獲取數據 184
9.7  使用Python連線Kafka 186
9.8  小結        187
第10章  Redis資料庫簡介 188
10.1  Redis的特點及適用場景    188
10.2  Redis的安裝及命令行使用方法        188
10.2.1  Redis的安裝及啟動         188
10.2.2  命令行客戶端  189
10.2.3  5種數據類型   190
10.2.4  字元串命令       191
10.3  使用Python操作Redis       193
10.4  使用Java操作Redis   194
10.5  小結      195
第11章  Flink簡介及其與Kafka的整合    196
11.1  Flink概述及其與Spark的區別   196
11.2  Flink的架構、特性及工作流程 196
11.3  Flink的安裝 199
11.3.1  單節點的安裝  199
11.3.2  集群的安裝       201
11.3.3  利用ZooKeeper實現Flink的高可用性  203
11.4  Flink的作業提交方式 205
11.4.1  以Standalone方式運行  205
11.4.2  利用YARN Session運行   207
11.4.3  利用Python調用Flink服務     212
11.4.4  使用REST API查看狀態  213
11.5  Flink-Kafka Connector  214
11.5.1  Flink為Kafka提供數據    215
11.5.2  Flink從Kafka接收數據    219
11.6  使用Flink統計PageView    221
11.6.1  Flink開發的一般步驟       221
11.6.2  Flink DataStream API         221
11.6.3  將數據落地至Redis和HBase         227
11.7  小結      235
第12章  網站頁面訪問量的動態展示       236
12.1  百度的ECharts圖表功能簡介   236
12.2  頁面訪問量的動態統計      238
12.2.1  模型層的開發  239
12.2.2  控制器層的開發       242
12.2.3  視圖層的開發  242
12.3  生成詞雲圖和占比餅圖      245
12.3.1  詞雲圖模型層的開發       245
12.3.2  詞雲圖控制器層的開發  248
12.3.3  詞雲圖視圖層的開發       249
12.3.4  關鍵字餅圖的模型層開發       249
12.3.5  關鍵字餅圖的控制器層開發  250
12.3.6  關鍵字餅圖的視圖層開發       251
12.4  訪問日誌檢索      252
12.5  小結      253
第三部分技術點總結     253
第四部分  雲平台搭建
第13章 搭建基於雲平台的容器級數據系統   256
13.1 雲平台 256
13.1.1 雲平台架構       256
13.1.2 雲平台的搭建及部署       259
13.1.3  雲平台的高級配置  303
13.2  基於雲平台的容器集群      309
13.2.1  Magnum    309
13.2.2  Docker Swarm   311
13.2.3  Mesos和Marathon的結合     316
13.2.4  Kubernetes        323
13.3  基於容器的大數據系統      331
13.4 小結      339

作者簡介

劉未昕
從事IT研發和項目管理工作十餘年。使用多種主流程式設計語言,深耕於大數據套用及人工智慧技術,多年從事金融、數據倉庫、智慧醫療等領域的研發工作。5年以上IT行業授課、培訓經驗,並在多所高校擔任外聘講師。
張粵磊
平安壹錢包前大數據架構師。業內知名大數據專家,多本大數據暢銷書的作者。2016年以來,其每年都以高級專家和諮詢顧問的身份深入參與大數據、人工智慧技術在行業的落地套用工作。已完成企業培訓數百場,培訓學員數萬名,在數據人才實戰型、場景型培訓培養方面具有豐富的實踐經驗。
張  魁
虛擬化工程師,OpenStack架構師,蘇州某高校雲平台架構師,十餘年Linux系統運維實踐及虛擬化開發經驗,4年Linux系統補丁開發經驗。先後在美企擔任虛擬化套用運維、伺服器集群開發運維工程師或系統開發架構師,高校信息中心雲平台架構師,主要關注OpenStack、Docker及分散式存儲等。
吳茂貴
運籌學與控制論專業研究生學歷。畢業後主要參與數據倉庫、商務智慧型等方面的項目,期間做過數據處理、數據分析、數據挖掘等工作,行業涉及金融、物流、製造業等。近期主要做複雜數據存儲、清理、轉換等工作,同時在大數據方面也很有興趣並投入大量時間和精力,且將持續為之。

熱門詞條

聯絡我們