大數(shù)據(jù)技術及應用——基于Python語言
定 價:69 元
- 作者:嚴宣輝 等
- 出版時間:2021/10/1
- ISBN:9787121421693
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:360
- 紙張:
- 版次:01
- 開本:16開
目前,社會對大數(shù)據(jù)工程技術人才的需求大大增加,因此向計算機和電子信息類相關專業(yè)學生傳授大數(shù)據(jù)知識和技術方法,提高他們在各領域應用大數(shù)據(jù)的能力具有重大意義。本書共9章,圍繞大數(shù)據(jù)的基本概念和大數(shù)據(jù)處理的主要環(huán)節(jié)編寫。第1章主要介紹大數(shù)據(jù)的概念、特點和構成;第2章主要介紹在Windows系統(tǒng)中安裝Linux虛擬機及構建Hadoop分布式集群的方法;第3章主要介紹大數(shù)據(jù)采集工具的使用及數(shù)據(jù)預處理的常用方法;第4章首先介紹Hadoop的發(fā)展歷史、軟件生態(tài)、核心組件和命令結構,然后以HDFS為重點,介紹其體系結構和特點,并詳細介紹HDFS的交互式命令;第5章介紹大數(shù)據(jù)環(huán)境下存儲工具HBase的數(shù)據(jù)模型;第6章介紹Hive的存儲模型,第7章介紹在Hadoop平臺上利用Python設計MapReduce程序的基本思路;第8章介紹大數(shù)據(jù)分析與挖掘過程中的常用算法;第9章介紹數(shù)據(jù)可視化的常用方法及常用工具。本書的內容與實際應用緊密結合,目的是讓讀者能了解大數(shù)據(jù)的基本概念、理解大數(shù)據(jù)技術的基本原理、初步掌握大數(shù)據(jù)處理和分析的基本方法,為未來應用大數(shù)據(jù)思維和大數(shù)據(jù)分析方法解決工作中的實際問題打下良好的基礎。本書適合作為高等學校計算機類和電子信息類相關專業(yè)大數(shù)據(jù)技術相關課程的教材,可供本科生、研究生使用,同時也適合對大數(shù)據(jù)技術感興趣的廣大讀者進行自學和實踐時使用。
嚴宣輝,男,福建師范大學數(shù)學與信息學院副教授、理學博士,碩士生導師,數(shù)字福建環(huán)境監(jiān)測物聯(lián)網實驗室副主任、福建省人工智能學會理事。先后擔任過學院實驗室主任、公共計算機教研室主任和計算機科學系主任等工作。福建省精品在線開放課程"大數(shù)據(jù)導論”負責人,該課程已在中國大學MOOC、優(yōu)課聯(lián)盟等慕課平臺上開課三個學期以上,吸引了大量學生參加學習,得到了學習者的廣泛好評。
目錄
第1章 緒論 1
1.1 大數(shù)據(jù)的基本概念 1
1.2 大數(shù)據(jù)的價值和作用 4
1.3 大數(shù)據(jù)帶來的思維方式變革 7
1.4 大數(shù)據(jù)處理技術基礎 9
1.4.1 大數(shù)據(jù)處理的主要環(huán)節(jié) 9
1.4.2 大數(shù)據(jù)的技術支撐 11
1.4.3 流行的大數(shù)據(jù)技術 13
1.5 大數(shù)據(jù)面臨的技術挑戰(zhàn) 15
1.6 本章小結 16
1.7 習題 16
第2章 大數(shù)據(jù)實驗環(huán)境構建 18
2.1 在Windows中安裝Linux虛擬機 18
2.1.1 創(chuàng)建虛擬機 19
2.1.2 虛擬機啟動初始化 21
2.1.3 克隆虛擬機 22
2.2 Linux操作基礎 23
2.2.1 軟件包管理工具 23
2.2.2 目錄和文件操作 24
2.2.3 用戶和權限管理命令 25
2.2.4 修改文件的訪問權限 25
2.2.5 壓縮和解壓縮 27
2.2.6 網絡配置命令 27
2.2.7 系統(tǒng)服務命令 28
2.2.8 查找命令 29
2.3 建立Linux集群 29
2.3.1 VMware Workstation的網絡模式簡介 30
2.3.2 集群規(guī)劃和網絡設置 31
2.3.3 配置虛擬機的網絡參數(shù) 33
2.3.4 關閉防火墻和SELinux 36
2.3.5 SSH免密登錄 37
2.4 Hadoop系統(tǒng)簡介 41
2.4.1 Hadoop的生態(tài)系統(tǒng) 41
2.4.2 Hadoop集群的類型 42
2.5 構建Hadoop“偽分布式”集群 42
2.5.1 安裝JDK 42
2.5.2 安裝Hadoop軟件 44
2.5.3 配置SSH免密登錄 45
2.5.4 配置Hadoop 45
2.5.5 啟動Hadoop 48
2.6 構建“完全分布式”Hadoop集群 49
2.6.1 配置Hadoop集群的主節(jié)點 49
2.6.2 將配置文件發(fā)送到從節(jié)點 52
2.7 測試Hadoop集群 52
2.7.1 測試HDFS 52
2.7.2 測試WordCount程序 56
2.8 安裝Zookeeper 57
2.8.1 在“偽分布”模式下安裝Zookeeper 57
2.8.2 在“完全分布”模式下安裝Zookeeper 58
2.9 用Ambari構建和管理Hadoop集群 60
2.9.1 安裝Ambari 61
2.9.2 用Ambari管理和配置Hadoop集群 61
2.10 本章小結 63
2.11 習題與實驗 63
第3章 大數(shù)據(jù)采集與預處理 66
3.1 大數(shù)據(jù)采集概述 66
3.1.1 大數(shù)據(jù)的來源 66
3.1.2 數(shù)據(jù)容量的單位 67
3.1.3 大數(shù)據(jù)采集的基本方法 67
3.2 常用的大數(shù)據(jù)采集工具簡介 68
3.2.1 基于Python的網頁采集框架Scrapy 69
3.2.2 日志收集工具Flume 74
3.3 數(shù)據(jù)屬性的類型 79
3.3.1 “屬性”的類型 79
3.3.2 屬性類型的轉換 80
3.4 數(shù)據(jù)預處理 80
3.4.1 數(shù)據(jù)變換 81
3.4.2 數(shù)據(jù)清洗 84
3.4.3 使用OpenRefine清洗數(shù)據(jù) 86
3.4.4 數(shù)據(jù)集成 89
3.5 本章小結 91
3.6 習題 91
第4章 Hadoop分布式文件系統(tǒng) 94
4.1 Hadoop 94
4.1.1 Hadoop的發(fā)展歷史 95
4.1.2 Hadoop的優(yōu)勢 96
4.1.3 Hadoop生態(tài) 96
4.1.4 Hadoop的核心組件 97
4.1.5 Hadoop集群與資源管理 99
4.1.6 Hadoop命令結構 102
4.2 HDFS體系結構 104
4.2.1 HDFS的設計目標 104
4.2.2 HDFS中的NameNode和DataNodes 105
4.2.3 文件系統(tǒng)命名空間(The File System Namespace) 108
4.2.4 數(shù)據(jù)容錯 108
4.2.5 副本的管理與使用 109
4.3 HDFS初探 110
4.3.1 開始HDFS旅程 110
4.3.2 添加數(shù)據(jù)文件 111
4.3.3 從HDFS中下載文件 111
4.3.4 關閉HDFS 111
4.3.5 利用Web Console訪問HDFS 111
4.4 HDFS常用CLI命令 113
4.4.1 HDFS CLI總覽 113
4.4.2 常用HDFS文件操作命令 115
4.5 利用pyhdfs實現(xiàn)HDFS的文件訪問 119
4.5.1 pyhdfs的安裝與應用案例 120
4.5.2 pyhdfs的HdfsClient類 120
4.6 pyhdfs應用實戰(zhàn) 133
4.7 本章小結 135
4.8 習題與實驗 135
第5章 HBase基礎與應用 137
5.1 HBase簡介 137
5.2 HBase安裝 138
5.3 HBase初探 139
5.4 HBase的數(shù)據(jù)模型 143
5.4.1 HBase數(shù)據(jù)模型相關術語 143
5.4.2 概念模式/視圖(Conceptual View) 145
5.4.3 物理模式/視圖(Physical View) 146
5.4.4 命名空間(Namespace) 147
5.5 HBase Shell 147
5.5.1 HBase Shell概述 147
5.5.2 創(chuàng)建表(create) 149
5.5.3 修改表/列族(alter table / column family) 153
5.5.4 添加數(shù)據(jù)(put) 155
5.5.5 獲取行或單元(get) 156
5.5.6 掃描并輸出數(shù)據(jù)(scan) 157
5.5.7 統(tǒng)計表的行數(shù)(count) 158
5.5.8 刪除指定值(delete) 159
5.5.9 其他常用shell命令 160
5.5.10 HBase Shell中的對象引用 162
5.6 利用Jython實現(xiàn)HBase的訪問 162
5.6.1 Jython環(huán)境設置 162
5.6.2 Jython訪問HBase 163
5.6.3 利用scan變量HBase中的數(shù)據(jù) 164
5.7 本章小結 165
5.8 習題與實驗 165
第6章 Hive基礎與應用 167
6.1 Hive簡介 167
6.1.1 數(shù)據(jù)庫與數(shù)據(jù)倉庫 168
6.1.2 Hive體系結構與接口 168
6.2 Hive的存儲模型 169
6.3 Hive初探 171
6.4 Hive的數(shù)據(jù)定義—DDL 175
6.4.1 數(shù)據(jù)庫的相關操作 175
6.4.2 數(shù)據(jù)表的創(chuàng)建 177
6.4.3 數(shù)據(jù)表和分區(qū)的修改 182
6.4.4 數(shù)據(jù)表的其他操作 189
6.5 Hive的數(shù)據(jù)操縱——DML 194
6.6 Hive的數(shù)據(jù)檢索——Hive-QL 201
6.7 本章小結 206
6.8 習題與實驗 207
第7章 分布式計算框架MapReduce 209
7.1 MapReduce概述 209
7.1.1 第一個MapReduce的Python程序 210
7.1.2 MapReduce工作原理 212
7.1.3 MapReduce作業(yè)的工作流程 212
7.1.4 MapReduce的輸入/輸出 214
7.2 WordCount實例詳解 214
7.2.1 WordCount程序源碼 214
7.2.2 WordCount程序執(zhí)行 215
7.2.3 WordCount程序原理 216
7.3 Hadoop Streaming 217
7.3.1 Hadoop Streaming的工作原理 218
7.3.2 打包提交作業(yè) 218
7.3.3 Streaming工具的用法 219
7.3.4 常見問題應用技巧 222
7.4 MapReduce作業(yè)管理 223
7.5 MapReduce Python代碼的測試 225
7.6 利用Python的迭代器和生成器優(yōu)化wordCount程序 227
7.6.1 Python中的迭代器 227
7.6.2 Python中的生成器 228
7.6.3 itertools模塊 229
7.6.4 優(yōu)化wordCount程序 232
7.7 MapReduce程序設計模式 233
7.7.1 數(shù)據(jù)集介紹 233
7.7.2 聚合查詢模式(Summarization Patterns) 235
7.7.3 過濾模式(Filtering Patterns) 241
7.7.4 數(shù)據(jù)連接模式(Join Patterns) 245
7.8 用MRJob庫編寫MapReduce程序 250
7.8.1 第一個MRJob程序 250
7.8.2 MRJob應用詳解 253
7.8.3 MRJob的協(xié)議 256
7.8.4 MRJob的其余設置 259
7.9 本章小結 260
7.10 習題與實驗 261
第8章 大數(shù)據(jù)分析與挖掘 262
8.1 數(shù)據(jù)的描述性分析 262
8.1.1 數(shù)據(jù)的集中趨勢度量 262
8.1.2 數(shù)據(jù)的離散趨勢度量 263
8.1.3 數(shù)據(jù)的偏態(tài)特性度量 266
8.1.4 數(shù)據(jù)相關性計算 267
8.2 回歸分析 271
8.2.1 一元線性回歸(Linear Regression) 271
8.2.2 其他類型的回歸模型 274
8.3 分類算法簡介 275
8.3.1 邏輯回歸 275
8.3.2 近鄰分類算法 277
8.3.3 決策樹算法 279
8.4 聚類算法簡介 285
8.4.1 主要的聚類算法類型 285
8.4.2 聚類質量度量指標 286
8.4.3 k-Means算法 288
8.5 分布式大數(shù)據(jù)挖掘算法典型案例 290
8.6 本章小結 295
8.7 習題與實驗 296
第9章 大數(shù)據(jù)可視化 298
9.1 引言 298
9.2 大數(shù)據(jù)可視化的常用方法 300
9.2.1 趨勢型大數(shù)據(jù)可視化方法 300
9.2.2 對比型大數(shù)據(jù)可視化方法 302
9.2.3 比例型大數(shù)據(jù)可視化方法 304
9.2.4 分布型大數(shù)據(jù)可視化 305
9.2.5 文本大數(shù)據(jù)可視化 306
9.2.6 關系網絡大數(shù)據(jù)可視化 307
9.2.7 時空大數(shù)據(jù)可視化 308
9.2.8 層次結構大數(shù)據(jù)可視化 309
9.2.9 高維大數(shù)據(jù)可視化 310
9.3 大數(shù)據(jù)可視化常用工具簡介 311
9.3.1 Tableau大數(shù)據(jù)可視化工具簡介 312
9.3.2 Python的Matplotlib庫簡介 314
9.4 基于ECharts的可視化示例 318
9.4.1 ECharts使用準備 319
9.4.2 ECharts 基礎概念概覽 320
9.4.3 ECharts示例 320
9.5 本章小結 326
9.6 習題與實驗 326
附錄A HDFS交互命令 328
附錄B pyhdfs其他類說明 339
參考文獻 344