本書是為所有熱愛大數(shù)據(jù)、打算從事大數(shù)據(jù)相關工作的讀者編寫的,適合有Java編程基礎的學習者參考使用。本書全面介紹了大數(shù)據(jù)技術生態(tài)圈,更在此基礎上全景展現(xiàn)了Hadoop大數(shù)據(jù)分布式系統(tǒng)集群平臺的搭建、大數(shù)據(jù)分布式文件系統(tǒng)HDFS、大數(shù)據(jù)分布式并行計算框架MapReduce、Hadoop大數(shù)據(jù)倉庫工具Hive和海量日志采集工具Flume等大數(shù)據(jù)實用技術。本書通俗易懂、結(jié)構(gòu)清晰,著重于分析解決問題的思路和具體實施過程。本書適合作為高等院校計算機相關專業(yè)的程序設計教材,也可作為Hadoop技術的培訓圖書。
(1)重點突出,理論與實踐結(jié)合,適合教學使用。
(2)內(nèi)容結(jié)構(gòu)完整,可循序漸進地教學。
(3)以圖文并茂的方式展示了大數(shù)據(jù)應用程序的設計與實現(xiàn)過程。
隨著互聯(lián)網(wǎng)的高速發(fā)展,使用網(wǎng)絡的用戶越來越多,人們在使用網(wǎng)絡的過程中產(chǎn)生了數(shù)量龐大的數(shù)據(jù),這些數(shù)據(jù)極具商業(yè)價值,所以對這些數(shù)據(jù)的有效存儲、管理、計算分析和應用就成為信息行業(yè)迫切需要解決的問題。大數(shù)據(jù)技術就是基于這種數(shù)據(jù)爆炸的現(xiàn)狀產(chǎn)生的。那到底怎樣才能解決海量數(shù)據(jù)的存儲和計算分析等問題呢?Hadoop應運而生了。
Hadoop是一個能夠?qū)A繑?shù)據(jù)進行分布式處理的軟件框架,它以一種可靠、高效、可伸縮的方式進行數(shù)據(jù)處理,用戶可以輕松地在Hadoop上開發(fā)和運行處理海量數(shù)據(jù)的應用程序。Hadoop 設計之初的目標就定位于高可靠性、高可拓展性、高容錯性和高效性,正是這些設計上與生俱來的優(yōu)點,才使得Hadoop一出現(xiàn)就受到眾多大公司的青睞,在互聯(lián)網(wǎng)領域得到了廣泛運用。
本書采用理論 實戰(zhàn)的形式編寫,不但全面介紹了大數(shù)據(jù)技術生態(tài)圈,更在此基礎上全景展現(xiàn)了Hadoop大數(shù)據(jù)分布式系統(tǒng)集群平臺的搭建、大數(shù)據(jù)分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)、大數(shù)據(jù)分布式并行計算框架MapReduce、Hadoop大數(shù)據(jù)倉庫工具Hive和海量日志采集工具Flume等大數(shù)據(jù)實用技術,后通過一個完整的Hive數(shù)據(jù)倉庫項目,深入講解了大數(shù)據(jù)技術在實際工作中的應用。本書通俗易懂、結(jié)構(gòu)清晰,內(nèi)容層層遞進,理論與實踐相結(jié)合,著重于分析解決問題的思路和具體實施過程。書中包含大量的案例講解和練習,通過從案例需求到案例實現(xiàn)這一完整流程的體驗,可以幫助讀者真正理解與消化Hadoop大數(shù)據(jù)技術。書中案例全部源于企業(yè)真實項目,可操作性強,可輕松引導讀者融會貫通相關技術。
本書特色:
(1)重點突出,理論與實踐結(jié)合,適合教學使用。
(2)內(nèi)容結(jié)構(gòu)完整,可循序漸進地教學。
(3)以圖文并茂的方式展示了大數(shù)據(jù)應用程序的設計與實現(xiàn)過程。
另外,本書配套資源豐富,掃描書中二維碼除了可以得到相應的程序源代碼、教學PPT、課后練習之外,更有海量教學視頻。視頻囊括了書中介紹的所有內(nèi)容,所有的實踐案例也通過教學視頻加以講解,內(nèi)容充實。
后,本書的附錄中還介紹了一個使用可視化在線云開發(fā)平臺道捷實訓云平臺(www.yun.51dcool.com)完成的項目,該項目直接使用道捷實訓云模擬的分布式物理集群,計算每個學生相應科目的平均分,然后將同一個科目的成績放在一個文件中,并按照平均分從高到低排序,省去了我們自己搭建大數(shù)據(jù)集群的時間,極大地提高了工作效率。
本書是為所有熱愛大數(shù)據(jù)、打算從事大數(shù)據(jù)相關工作的讀者編寫的,適合有Java編程基礎的學習者參考使用,也適合作為高等院校、培訓機構(gòu)的大數(shù)據(jù)技術教材。由于時間倉促,編者水平有限,書中難免有疏漏之處,敬請讀者批評指正!
編 者
2021年2月
智酷道捷是中關村智酷雙創(chuàng)人才服務股份有限公司下屬高科技教育企業(yè)。旨在打造產(chǎn)、學、研、用雙創(chuàng)一 體化深度融合的智能化泛 IT 產(chǎn)教綜合服務平臺。是一家專注于面向 高校提供產(chǎn)、學、研、用一體化雙創(chuàng)實踐性教學解決方案,面向 高新技術職業(yè)技能持續(xù)培育的創(chuàng)新型科技教育企業(yè)。公司專注于前沿 技術基于云計算、大數(shù)據(jù)、以及智能化控制等高新技術開發(fā)的全新資源與服務平臺。公司借鑒發(fā)達國家先進的技術應用教學經(jīng)驗并結(jié)合中國國情,創(chuàng)新提出雙創(chuàng)雙元、雙元雙通理論模型,通過工程實踐中心這一創(chuàng)新載體,整合高校教育與產(chǎn)業(yè)實踐應用,基于云平臺的大數(shù)據(jù)反饋和自適應機制,打造形成以產(chǎn)業(yè)應用需求為引領,以崗位技能能力圖表為核心線索的智能化課程研發(fā)體系,將產(chǎn)業(yè)應用需求、高校教育過程以及課程研發(fā)機制、產(chǎn)教協(xié)同育人進行一體化聯(lián)動和融合,實現(xiàn)雙創(chuàng)實踐性應用人才智能化、生態(tài)化、個性化、本地化培育,為地方企業(yè)和高校提供優(yōu)質(zhì)的實踐性課程與人才服務。
第1章 初識Hadoop及HDFS分布式系統(tǒng)1
1.1 初識Hadoop1
1.1.1大數(shù)據(jù)概述1
1.1.2大數(shù)據(jù)技術2
1.1.3Hadoop簡介3
1.2 分布式文件系統(tǒng)(HDFS)6
1.2.1分布式文件系統(tǒng)6
1.2.2HDFS的定義7
1.3 Hadoop偽分布式環(huán)境搭建12
1.3.1Hadoop安裝的三種模式 12
1.3.2搭建的準備工作 12
1.3.3Hadoop相關配置12
1.3.4啟動Hadoop13
1.4 HDFS常用命令與應用13
1.4.1HDFS命令行基本操作 13
1.4.2HDFS Java API的核心類
和接口21
1.4.3基于Java API的編程實例 21
小結(jié)55
習題55
第2章 分布式協(xié)調(diào)服務ZooKeeper
和HDFS高可用性56
2.1 ZooKeeper的作用和基本概念56
2.1.1分布式應用概述56
2.1.2分布式應用的優(yōu)缺點57
2.1.3ZooKeeper 的概念和特點58
2.1.4ZooKeeper 的主要應用58
2.1.5ZooKeeper的架構(gòu)58
2.1.6數(shù)據(jù)模型與層次命名空間59
2.1.7Znode的類型59
2.2 ZooKeeper集群的搭建60
2.3 ZooKeeper操作與API編程69
2.3.1服務端常用命令 69
2.3.2客戶端連接ZooKeeper的
相關操作70
2.3.3使用Java API訪問
ZooKeeper75
2.3.4使用Java API編程
入門案例75
2.3.5使用Java API編程
官方案例解讀93
2.4 ZooKeeper原理分析105
2.4.1一致性協(xié)議Zab協(xié)議105
2.4.2Leader選舉106
2.5 高可用108
2.6 HDFS緩存108
2.7 HDFS完全分布式搭建115
2.8 HDFS高可用架構(gòu)搭建116
2.8.1HDFS的基本架構(gòu)116
2.8.2HDFS高可用架構(gòu)116
2.8.3高可用架構(gòu)搭建思路117
小結(jié)118
習題118
第3章 分布式并行計