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