大數據技術(微課版)

大數據技術(微課版)

《大數據技術(微課版)》是2020年清華大學出版社出版的圖書,作者是曹潔、孫玉勝。

基本介紹

  • 書名:大數據技術(微課版)
  • 作者:曹潔、孫玉勝
  • 出版社:清華大學出版社
  • ISBN:9787302553632
內容簡介,圖書目錄,作者簡介,

內容簡介

本書系統地講解了大數據處理常用技術,具體包括大數據處理架構Hadoop、分散式檔案系統HDFS、MapReduce編程模型、分散式資料庫Hbase、NoSQL資料庫、Spark分散式記憶體計算、MapReduce套用開發、Spark SQL編程、數據可視化。本書編寫特色理論與具體操作相結合,較低基礎入門大數據技術。讀者對象是本科、專科或研究生大數據技術課程教材,大數據技術愛好者,其他對大數據技術感興趣的人員。

圖書目錄

第1章大數據概述1
1.1大數據的基本概念1
1.1.1大數據的定義1
1.1.2大數據的特徵1
1.2大數據技術2
1.2.1數據採集技術2
1.2.2數據預處理技術3
1.2.3雲計算技術3
1.2.4分散式處理技術6
1.2.5數據存儲技術6
1.3大數據計算模式與典型系統7
1.3.1批處理計算模式與典型系統7
1.3.2流式計算模式與典型系統7
1.3.3疊代計算模式與典型系統8
1.3.4圖計算模式與典型系統8
1.3.5記憶體計算模式與典型系統8
1.4習題8
第2章大數據軟體基礎9
2.1Linux基礎9
2.1.1命令格式9
2.1.2用戶管理10
2.1.3檔案操作12
2.1.4目錄操作15
2.1.5檔案壓縮和解壓縮命令17
2.1.6安裝和卸載軟體18
2.1.7主機名更改19
2.2Java語言基礎202.2.1基本數據類型20
2.2.2主類結構21
2.2.3定義類24
2.2.4類的實例化26
2.2.5包28
2.2.6常用實用類31
2.3SQL基礎33
2.4在VirtualBox上安裝虛擬機34
2.4.1Master節點的安裝34
2.4.2複製虛擬機41
2.5習題45
大數據技術(微課版)目錄第3章Hadoop大數據處理架構46
3.1Hadoop概述46
3.1.1Hadoop簡介46
3.1.2Hadoop特性46
3.2Hadoop生態系統47
3.2.1Hadoop分散式檔案系統47
3.2.2MapReduce分散式計算模型48
3.2.3Hive數據倉庫49
3.2.4HBase分散式資料庫49
3.2.5Zookeeper分散式協調服務49
3.2.6Sqoop數據導入導出工具50
3.2.7Pig數據分析50
3.2.8Mahout數據挖掘算法庫50
3.2.9Flume日誌收集工具51
3.2.10Oozie作業流調度系統51
3.2.11Spark分散式記憶體計算51
3.2.12Tez有向無環圖計算52
3.2.13Storm流數據處理52
3.3Hadoop的安裝與使用53
3.3.1安裝Hadoop前的準備工作53
3.3.2下載Hadoop安裝檔案55
3.3.3Hadoop單機模式配置56
3.3.4Hadoop偽分散式模式配置56
3.3.5Hadoop分散式模式配置60
3.4習題69
第4章Hadoop分散式檔案系統70
4.1分散式檔案系統的結構70
4.1.1主控伺服器71
4.1.2數據伺服器72
4.1.3客戶端73
4.2HDFS的基本特徵73
4.3HDFS存儲架構及組件功能74
4.3.1HDFS存儲架構74
4.3.2數據塊74
4.3.3數據節點75
4.3.4名稱節點76
4.3.5第二名稱節點77
4.3.6心跳訊息77
4.3.7客戶端77
4.4HDFS檔案讀寫流程77
4.4.1HDFS讀檔案流程78
4.4.2HDFS寫檔案流程79
4.5HDFS的Shell操作80
4.5.1查看命令使用方法80
4.5.2HDFS常用的Shell操作81
4.5.3HDFS管理員命令86
4.5.4HDFS的Java API操作86
4.5.5利用HDFS的Web管理頁面87
4.6HDFS編程實踐87
4.6.1安裝eclipse88
4.6.2在eclipse中創建項目89
4.6.3為項目添加需要用到的JAR包90
4.6.4編寫Java應用程式92
4.6.5編譯運行程式94
4.6.6應用程式的部署95
4.7習題97
第5章MapReduce分散式計算框架99
5.1MapReduce概述99
5.1.1並發、並行與分散式編程的概念99
5.1.2MapReduce並行編程模型100
5.1.3Map函式和Reduce函式100
5.2MapReduce的工作原理101
5.2.1MapReduce的體系架構101
5.2.2MapTask的工作原理103
5.2.3ReduceTask的工作原理104
5.3MapReduce編程類105
5.3.1InputFormat輸入格式類105
5.3.2Mapper基類110
5.3.3Combiner合併類112
5.3.4Partitioner分區類112
5.3.5Sort排序類113
5.3.6Reducer類113
5.3.7輸出格式類OutputFormat116
5.4MapReduce經典案例117
5.4.1WordCount執行流程示例117
5.4.2WordCount具體實現119
5.4.3使用eclipse編譯運行詞頻統計程式124
5.5習題129
第6章HBase分散式資料庫130
6.1HBase概述130
6.1.1HBase的技術特點130
6.1.2HBase與傳統關係資料庫的區別130
6.1.3HBase與Hadoop中其他組件的關係131
6.2HBase系統架構和訪問接口132
6.2.1HBase系統架構132
6.2.2ROOT表和.META.表135
6.2.3HBase訪問接口137
6.3HBase數據表138
6.3.1HBase數據表邏輯視圖138
6.3.2HBase數據表物理視圖140
6.3.3HBase數據表面向列的存儲141
6.3.4HBase數據表的查詢方式142
6.3.5HBase表結構設計143
6.4HBase安裝143
6.4.1下載安裝檔案143
6.4.2配置環境變數143
6.4.3添加用戶許可權144
6.4.4查看HBase版本信息144
6.5HBase配置145
6.5.1單機運行模式配置145
6.5.2偽分散式運行模式配置146
6.6HBase常用Shell命令148
6.6.1基本命令149
6.6.2創建表150
6.6.3插入與更新表中的數據152
6.6.4查看錶中的數據152
6.6.5刪除表中的數據154
6.6.6表的啟用/禁用155
6.6.7修改表結構155
6.6.8刪除HBase表156
6.7常用的Java API156
6.7.1HBase資料庫管理API156
6.7.2HBase資料庫表API157
6.7.3HBase資料庫表行列API159
6.8HBase編程161
6.8.1在eclipse中創建項目161
6.8.2添加項目需要用到的JAR包162
6.8.3編寫Java應用程式163
6.8.4編譯運行程式166
6.9習題167
第7章NoSQL資料庫168
7.1NoSQL資料庫概述168
7.1.1NoSQL資料庫興起的原因168
7.1.2NoSQL資料庫的特點169
7.2“鍵值”資料庫169
7.2.1Redis安裝170
7.2.2Redis資料庫的特點171
7.2.3Redis資料庫的基本數據類型171
7.3列族資料庫177
7.4文檔資料庫177
7.4.1MongoDB簡介177
7.4.2MongoDB下載與安裝177
7.4.3MongoDB文檔操作181
7.4.4MongoDB集合操作185
7.4.5MongoDB資料庫操作186
7.4.6MongoDB數據類型187
7.5圖資料庫188
7.5.1下載和安裝Neo4j189
7.5.2Neo4j的啟動和停止189
7.5.3Neo4j的CQL操作191
7.5.4在Neo4j瀏覽器中創建節點和關係194
7.6習題196
第8章Scala基礎編程197
8.1Scala特性197
8.2Scala安裝198
8.2.1用IntelliJ IDEA搭建Scala開發環境198
8.2.2用scala.msi搭建Scala開發環境202
8.3Scala數據類型203
8.4Scala常量和變數204
8.4.1常量204
8.4.2變數205
8.5Scala數組、列表、集合和映射205
8.5.1定長數組206
8.5.2變長數組208
8.5.3列表209
8.5.4集合210
8.5.5映射211
8.6Scala控制結構212
8.6.1條件表達式212
8.6.2if…else選擇結構213
8.6.3編寫Scala腳本213
8.6.4循環214
8.7Scala函式215
8.7.1函式定義215
8.7.2匿名函式216
8.7.3高階函式217
8.8Scala類217
8.9Scala讀寫檔案218
8.10習題219
第9章Python基礎編程220
9.1Python安裝220
9.2Python代碼編寫方式221
9.2.1用帶圖形界面的Python Shell編寫互動式代碼221
9.2.2用帶圖形界面的Python Shell編寫程式代碼221
9.3Python對象和引用222
9.3.1對象的身份223
9.3.2對象的類型223
9.3.3對象的值223
9.3.4對象的引用223
9.4Python基本數據類型224
9.4.1數值數據類型224
9.4.2字元串數據類型225
9.4.3列表數據類型231
9.4.4元組數據類型236
9.4.5字典數據類型238
9.4.6集合數據類型242
9.4.7Python數據類型之間的轉換244
9.5Python中的數據輸入244
9.6Python中的數據輸出245
9.6.1表達式語句輸出245
9.6.2print函式輸出245
9.6.3字元串對象的format方法的格式化輸出247
9.7Python中檔案的基本操作248
9.8選擇結構249
9.8.1選擇語句249
9.8.2條件表達式250
9.9循環結構250
9.9.1while循環250
9.9.2for循環251
9.9.3循環中的break、continue和else252
9.10函式252
9.10.1定義函式252
9.10.2函式調用253
9.11類255
9.11.1定義類255
9.11.2創建類的對象256
9.12習題257
第10章Spark分散式記憶體計算258
10.1Spark概述258
10.1.1Spark產生背景258
10.1.2Spark的優點259
10.1.3Spark套用場景259
10.1.4Spark生態系統261
10.2Spark的安裝及配置261
10.2.1Spark安裝的基礎環境261
10.2.2下載安裝檔案262
10.2.3單機模式配置262
10.2.4偽分散式模式配置263
10.3使用Spark Shell編寫Scala代碼264
10.3.1啟動Spark Shell265
10.3.2退出Spark Shell266
10.4Spark核心數據結構RDD266
10.4.1RDD創建266
10.4.2RDD操作268
10.4.3RDD屬性275
10.4.4RDD持久化277
10.5Spark運行機制278
10.5.1Spark基本概念278
10.5.2Spark運行架構281
10.5.3Spark套用執行基本流程282
10.6使用Scala語言編寫Spark應用程式283
10.6.1安裝sbt283
10.6.2編寫詞頻統計Scala應用程式284
10.6.3用sbt打包Scala應用程式285
10.6.4通過sparksubmit運行程式286
10.7使用Python語言編寫Spark應用程式286
10.7.1SparkContext287
10.7.2pyspark對RDD的轉換操作289
10.7.3pyspark對RDD的行動操作290
10.8習題292
第11章Spark SQL編程293
11.1Spark SQL概述293
11.2Spark SQL與Shell互動293
11.3DataFrame對象的創建294
11.3.1使用parquet格式檔案創建DataFrame294
11.3.2使用JSON數據檔案創建DataFrame295
11.3.3使用RDD創建DataFrame296
11.4DataFrame對象上的常用操作296
11.4.1內容查看297
11.4.2過濾299
11.4.3分組與聚合299
11.4.4獲取所有數據到數組299
11.4.5獲取所有數據到列表300
11.4.6獲取指定欄位的統計信息300
11.5習題300
第12章數據可視化301
12.1Tableau繪圖301
12.1.1Tableau的主要特性301
12.1.2Tableau工作表工作區302
12.1.3Tableau儀錶板工作區307
12.1.4Tableau故事工作區308
12.1.5Tableau選單欄310
12.1.6Tableau可視化與數據分析舉例311
12.2ECharts繪圖312
12.2.1ECharts的特點312
12.2.2ECharts環境搭建313
12.2.3使用Dreamweaver 8創建網頁313
12.2.4使用Echarts繪製折線圖314
12.2.5使用Echarts繪製柱狀圖318
12.2.6使用Echarts繪製餅圖320
12.2.7使用Echarts繪製雷達圖322
12.3PyeCharts繪圖324
12.3.1繪製柱狀圖325
12.3.2繪製折線圖327
12.3.3繪製餅圖329
12.3.4繪製雷達圖330
12.3.5繪製漏斗圖331
12.3.6繪製3D立體圖332
12.3.7繪製詞雲圖333
12.4習題334
參考文獻335

作者簡介

曹潔:男,鄭州輕工業大學副教授,同濟大學博士畢業。研究方向:數據分析、機器學習、並行分散式處理。近年在軟體學報、電子學報、計算機研究與發展、通信學報等刊物上發表10餘篇論文。

相關詞條

熱門詞條

聯絡我們