本書是理論與實踐相結(jié)合的教材,以Centos 7、Eclipse等為實驗開發(fā)工具,搭建了Hadoop、HBase、ZooKeeper、Spark等相應(yīng)的實驗集群,通過相關(guān)經(jīng)典實驗案例,使學(xué)生由淺入深、由點到面的逐步提高和鞏固大數(shù)據(jù)基礎(chǔ)理論知識和綜合實踐能力。
隨著云時代的到來,大數(shù)據(jù)(Big Data)引起了人們越來越多的關(guān)注。大數(shù)據(jù)作為IT領(lǐng)域最熱門的技術(shù)之一,正在不斷滲透到人們的生活中,具有廣闊的應(yīng)用空間和發(fā)展前景,社會對大數(shù)據(jù)人才的需求也日益迫切。了解和學(xué)習(xí)大數(shù)據(jù)相關(guān)知識,不僅是對數(shù)據(jù)科學(xué)和大數(shù)據(jù)技術(shù)、計算機等相關(guān)專業(yè)學(xué)生的要求,也是學(xué)生未來職業(yè)發(fā)展的一種重要途徑。
本書與實踐相結(jié)合介紹大數(shù)據(jù)基礎(chǔ)理論,以Centos 7、Eclipse等作為實驗開發(fā)環(huán)境和工具,搭建了包括Hadoop、HBase、ZooKeeper、Spark等Hadoop生態(tài)圈的實驗集群,通過典型的實驗案例,學(xué)生可以由淺入深、由點到面地逐步學(xué)習(xí)、掌握大數(shù)據(jù)基礎(chǔ)理論知識,并能結(jié)合具體實驗熟悉大數(shù)據(jù)基礎(chǔ)技術(shù),培養(yǎng)綜合實踐能力。
本書內(nèi)容充實、豐富,覆蓋面廣,共分為10章。第1章介紹大數(shù)據(jù)相關(guān)定義及概念,包括大數(shù)據(jù)的歷史與發(fā)展、大數(shù)據(jù)的特點和應(yīng)用場景以及大數(shù)據(jù)的挑戰(zhàn)和機遇等;第2章介紹Apache架構(gòu)與Apache Hadoop的基本概念、Hadoop的安全性、Hadoop的搭建及相關(guān)實驗案例;第3章介紹Hadoop分布式文件系統(tǒng)(HDFS)的概念、原理、常用命令及簡單的實驗案例;第4章介紹YARN的基本架構(gòu),描述YARN的工作流程,詳細分析YARN協(xié)議及優(yōu)點;第5章介紹MapReduce的基本知識,詳細描述Map框架流程、應(yīng)用MapReduce所需的環(huán)境搭建及相關(guān)實驗;第6章介紹Hive的相關(guān)定義、Hive安裝配置過程及典型實驗;第7章介紹HBase的基礎(chǔ)、數(shù)據(jù)模型以及訪問接口,詳細講解HBase偽分布式和完全分布式的安裝與配置;第8章介紹ZooKeeper的發(fā)展背景及主要特點,詳細說明ZooKeeper的體系結(jié)構(gòu)與關(guān)鍵算法ZAB,同時還介紹ZooKeeper的四字命令及集群搭建操作,并講解相應(yīng)的實驗案例;第9章介紹Spark的基本概念、組件以及Spark的特性,著重描述Spark的主要架構(gòu),并對Spark的計算模型、集群搭建、相關(guān)技術(shù)及實驗進行詳細講解;第10章主要介紹Apache Kafka分布式消息系統(tǒng)相關(guān)的消息隊列、中間件,詳細描述Kafka的結(jié)構(gòu)、Producer和Consumer的消息狀態(tài)、Kafka的相應(yīng)消息與日志、Kafka的特性及Kafka的消息發(fā)送與接收。本書在多數(shù)章章末提供了必要的基礎(chǔ)實驗,便于讀者全面、深入地掌握大數(shù)據(jù)基礎(chǔ)技術(shù)的知識點。
本書的編寫得到了重慶大學(xué)大數(shù)據(jù)與軟件學(xué)院領(lǐng)導(dǎo)的關(guān)心和支持,鄧惠尹、王子梁、張鈞洋、王丹、譚楊等參與了本書部分內(nèi)容的編寫工作,在此一并表示感謝。
由于作者水平有限,加之時間倉促,書中難免存在疏漏和不妥之處,懇請同行專家和讀者給予批評和指正。對于本書中的實驗操作視頻,讀者可掃描相應(yīng)章節(jié)的二維碼直接觀看。
本書的配套課件、完整的案例源代碼等資源可以從清華大學(xué)出版社網(wǎng)站www.tup.com.cn或微信公眾號“書圈”下載,本書及課件等資源的使用中如有問題,請聯(lián)系404905510@qq.com。
編者2020年8月
王成良,男,已從事教學(xué)和科研工作近30年。一直在重慶大學(xué)計算機學(xué)院和軟件學(xué)院從事多媒體技術(shù)、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫技術(shù)等課程的教學(xué)工作。
曾經(jīng)編寫過的教材(教材名稱、出版時間、字?jǐn)?shù)、出版社、獲獎情況等)
1) 多媒體技術(shù)與網(wǎng)頁設(shè)計, 2006.8,完成10萬字,清華大學(xué)出版社
2) Web開發(fā)技術(shù)及其應(yīng)用,2007.10,完成65萬字,清華大學(xué)出版社
3) JAVA EE 5開發(fā)基礎(chǔ)與實踐, 2008.11, 完成15萬字,清華大學(xué)出版社
4) 數(shù)據(jù)庫技術(shù)及應(yīng)用,2011,清華大學(xué)出版社
5)Web開發(fā)技術(shù)(第2版),2013,清華大學(xué)出版社
第1章大數(shù)據(jù)概述
1.1大數(shù)據(jù)發(fā)展背景
1.1.1引言
1.1.2發(fā)展歷程
1.2大數(shù)據(jù)相關(guān)概念及特點
1.2.1大數(shù)據(jù)特點
1.2.2相關(guān)概念介紹
1.3大數(shù)據(jù)應(yīng)用過程
1.3.1數(shù)據(jù)采集
1.3.2預(yù)處理
1.3.3數(shù)據(jù)存儲管理
1.3.4數(shù)據(jù)挖掘分析
1.4大數(shù)據(jù)技術(shù)
1.4.1大數(shù)據(jù)集群
1.4.2大數(shù)據(jù)技術(shù)架構(gòu)
1.5大數(shù)據(jù)行業(yè)應(yīng)用
1.5.1互聯(lián)網(wǎng)與電子商務(wù)行業(yè)
1.5.2醫(yī)療健康行業(yè)
1.5.3交通行業(yè)大數(shù)據(jù)應(yīng)用
1.5.4金融行業(yè)
1.5.5政府機構(gòu)
1.5.6零售業(yè)
1.5.7其他應(yīng)用領(lǐng)域
1.6大數(shù)據(jù)的挑戰(zhàn)和機遇
1.6.1大數(shù)據(jù)的挑戰(zhàn)
1.6.2大數(shù)據(jù)的機遇
1.7本書內(nèi)容結(jié)構(gòu)介紹
第2章Hadoop基礎(chǔ)
2.1概念介紹
2.1.1架構(gòu)
2.1.2Apache Hadoop概述
2.2Hadoop的安全性
2.2.1安全問題
2.2.2Simple機制
2.2.3Kerberos機制
2.2.4委托令牌
2.3實驗環(huán)境準(zhǔn)備
2.3.1虛擬機安裝
2.3.2CentOS 7 系統(tǒng)安裝
2.3.3其他軟件安裝
2.4搭建Hadoop
2.4.1CentOS 7系統(tǒng)配置
2.4.2SSH免密碼登錄
2.4.3配置JDK
2.4.4解壓Hadoop
2.4.5配置Hadoop
2.4.6啟動Hadoop
第3章HDFS的介紹和簡單操作
3.1Hadoop分布式文件系統(tǒng)(HDFS)
3.2HDFS的原理
3.3HDFS寫操作
3.4HDFS讀操作
3.5HDFS刪除操作
3.6HDFS常用命令
3.7實驗
3.7.1創(chuàng)建目錄
3.7.2上傳文件命令
3.7.3羅列HDFS上的文件
3.7.4查看HDFS里某一個文件
3.7.5將HDFS中的文件復(fù)制到本地
3.7.6遞歸刪除HDFS下的文檔
第4章YARN的原理和操作
4.1YARN簡介
4.1.1YARN的概念及背景
4.1.2YARN的使用
4.1.3YARN介紹
4.2YARN的基本架構(gòu)
4.3YARN的工作流程
4.4YARN協(xié)議
4.5YARN的優(yōu)點
第5章MapReduce的介紹和簡單使用
5.1MapReduce簡介
5.2Map過程
5.3Reduce過程
5.4開發(fā)環(huán)境的搭建
5.5實驗
5.5.1單詞計數(shù)
5.5.2二次排序?qū)嶒?/p>
5.5.3計數(shù)器實驗
第6章Hive
6.1Hive 簡介
6.1.1Hive基礎(chǔ)
6.1.2Hive的工作原理
6.1.3Hive與傳統(tǒng)數(shù)據(jù)庫
6.2HiveQL基礎(chǔ)
6.3Hive的安裝與配置
6.3.1搭建Hive
6.3.2安裝配置MySQL
6.3.3配置Hive
6.4實驗
第7章HBase
7.1HBase簡介
7.1.1HBase基礎(chǔ)
7.1.2HBase數(shù)據(jù)模型
7.1.3HBase訪問接口
7.2HBase與RDBMS
7.3HBase的安裝與配置
7.3.1偽分布式安裝
7.3.2完全分布式
7.4實驗
第8章ZooKeeper基礎(chǔ)
8.1ZooKeeper簡介
8.1.1概念簡介
8.1.2主要特點
8.2ZooKeeper體系結(jié)構(gòu)
8.3關(guān)鍵算法ZAB
8.4ZooKeeper集群搭建
8.5ZooKeeper四字命令
8.6實驗
8.6.1ZooKeeper客戶端
8.6.2ZooKeeper Java API的使用
第9章Spark基礎(chǔ)
9.1Spark介紹
9.1.1概念介紹
9.1.2組件介紹
9.1.3特性
9.2Spark主要架構(gòu)
9.3Spark計算模型
9.4Spark運行模式
9.5Spark SQL
9.5.1Hive and Shark
9.5.2Shark和Spark SQL
9.5.3Spark SQL運行架構(gòu)
9.5.4sqlContext和hiveContext的運行過程
9.6Spark Steaming
9.6.1術(shù)語定義
9.6.2Storm與Spark Streaming的比較
9.6.3運行原理
9.7安裝Spark
9.8實驗
第10章Apache Kafka
10.1基礎(chǔ)概念介紹
10.1.1消息隊列
10.1.2消息中間件
10.2Kafka結(jié)構(gòu)
10.3Producer和Consumer
10.3.1Kafka Producer
10.3.2Kafka Consumer
10.3.3消費狀態(tài)跟蹤
10.4Kafka的特性
10.5消息與日志
10.5.1寫操作
10.5.2讀操作
10.5.3刪除操作
10.5.4消息可靠性
10.6實驗
10.6.1Kafka集群搭建
10.6.2消息發(fā)送與接收
參考文獻