Hadoop大數(shù)據(jù)原理與應用實驗教程
定 價:49 元
- 作者:徐魯輝
- 出版時間:2020/1/1
- ISBN:9787560655437
- 出 版 社:西安電子科技大學出版社
- 中圖法分類:TP274
- 頁碼:344
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書作為《Hadoop大數(shù)據(jù)原理與應用》(本書作者編寫,西安電子科技大學出版社出版)的配套實驗教程,系統(tǒng)介紹了Hadoop生態(tài)系統(tǒng)中各個開源組件的相關(guān)知識和實踐技能。全書分為“基礎(chǔ)實驗篇”和“拓展實驗篇”兩篇,共10章,涉及數(shù)據(jù)采集、數(shù)據(jù)存儲與管理、數(shù)據(jù)處理與分析等大數(shù)據(jù)應用生命周期中各階段典型組件的部署、使用和基礎(chǔ)編程方法。“基礎(chǔ)實驗篇”內(nèi)容包括部署全分布模式Hadoop集群、實戰(zhàn)HDFS、MapReduce編程、部署ZooKeeper集群和實戰(zhàn)ZooKeeper、部署全分布模式HBase集群和實戰(zhàn)HBase、部署本地模式Hive和實戰(zhàn)Hive;“拓展實驗篇”內(nèi)容包括部署Spark集群和Spark編程、實戰(zhàn)Sqoop、實戰(zhàn)Flume、實戰(zhàn)Kafka。
本書內(nèi)容翔實,案例豐富,操作過程詳盡,并配有完整的立體化資源,既可作為高等院校研究生、本科生的大數(shù)據(jù)技術(shù)原理與應用課程的實驗指導書,也可作為教師參考書,同時也可供相關(guān)技術(shù)人員參考。(相關(guān)資源可在西安電子科技大學出版社網(wǎng)站下載。)
大數(shù)據(jù)時代的到來,帶來了信息技術(shù)發(fā)展的巨大變革,并深刻影響著社會生產(chǎn)和人民生活的方方面面。全球范圍內(nèi),世界各國政府均高度重視大數(shù)據(jù)技術(shù)的研究與產(chǎn)業(yè)發(fā)展,紛紛把大數(shù)據(jù)上升為國家戰(zhàn)略加以重點推進。大數(shù)據(jù)已經(jīng)成為企業(yè)和社會關(guān)注的重要戰(zhàn)略資源,越來越多的行業(yè)面臨著海量數(shù)據(jù)存儲和分析的挑戰(zhàn)。
Hadoop由道格·卡丁(Doug Cutting)創(chuàng)建,起源于開源項目網(wǎng)絡(luò)搜索引擎Apache Nutch,于2008年1月成為Apache頂級項目。Hadoop是一個開源的、可運行于大規(guī)模集群上的分布式存儲和計算的軟件框架,它具有高可靠、彈性可擴展等特點,非常適合處理海量數(shù)據(jù)。Hadoop實現(xiàn)了分布式文件系統(tǒng)HDFS和分布式計算框架MapReduce等功能,允許用戶可以在不了解分布式系統(tǒng)底層細節(jié)的情況下,使用簡單的編程模型輕松編寫出分布式程序,將其運行于計算機集群上,完成對大規(guī)模數(shù)據(jù)集的存儲和分析。目前,Hadoop在業(yè)內(nèi)得到了廣泛應用,已經(jīng)是公認的大數(shù)據(jù)通用存儲和分析平臺,許多廠商都圍繞Hadoop提供開發(fā)工具、開源軟件、商業(yè)化工具和技術(shù)服務,例如谷歌、雅虎、微軟、淘寶等都支持Hadoop。另外,還有一些專注于Hadoop的公司,例如Cloudera、Hortonworks和MapR都可以提供商業(yè)化的Hadoop支持。
未來5~10年,我國大數(shù)據(jù)產(chǎn)業(yè)將會處于高速發(fā)展時期,社會亟需高校培養(yǎng)一大批大數(shù)據(jù)相關(guān)專業(yè)人才。自2016年以來,我國新增的大數(shù)據(jù)類專業(yè)包括“數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)”本科專業(yè)(080910T)、“數(shù)據(jù)管理與應用”本科專業(yè)(120108T)、“大數(shù)據(jù)技術(shù)與應用”?茖I(yè)(610215),以適應地方產(chǎn)業(yè)發(fā)展對戰(zhàn)略性新興產(chǎn)業(yè)的人才需求。因此,學會使用大數(shù)據(jù)通用存儲和分析平臺Hadoop及其生態(tài)系統(tǒng)對于未來適應新一代信息技術(shù)產(chǎn)業(yè)的發(fā)展具有重要的意義。
實踐教學是高等院校知識創(chuàng)新和人才培養(yǎng)的重要環(huán)節(jié),因此,實驗實訓類教材建設(shè)在學生能力培養(yǎng)中發(fā)揮著不可或缺的重要作用。本書面向Hadoop生態(tài)系統(tǒng),以企業(yè)需求為導向,緊緊圍繞大數(shù)據(jù)應用的閉環(huán)流程展開講述,引導學生進行大數(shù)據(jù)技術(shù)的初級實踐,旨在使讀者掌握Hadoop的架構(gòu)設(shè)計和Hadoop的運用能力。
本書分為上篇“基礎(chǔ)實驗篇”和下篇“拓展實驗篇”,共10章,涉及數(shù)據(jù)采集、數(shù)據(jù)存儲與管理、數(shù)據(jù)處理與分析等大數(shù)據(jù)應用生命周期中各階段典型組件的部署、使用和基礎(chǔ)編程方法。在“基礎(chǔ)實驗篇”中,實驗1介紹了Linux基本命令、vim編輯器、Java基本命令、SSH安全通信協(xié)議、Hadoop基礎(chǔ)知識等先修技能,然后詳細講述了部署全分布模式Hadoop集群的全過程,并附加了偽分布模式Hadoop集群的部署過程;實驗2介紹了分布式文件系統(tǒng)HDFS的體系架構(gòu)、文件存儲原理、接口等基礎(chǔ)知識,詳細演示了如何通過HDFS Web UI和HDFS Shell命令使用HDFS以及HDFS Java API編程,并附加了如何搭建HDFS NameNode HA環(huán)境;實驗3在介紹了分布式計算框架MapReduce編程思想、作業(yè)執(zhí)行流程的基礎(chǔ)上,講述了如何編寫MapReduce程序,并附加了在Windows平臺上開發(fā)MapReduce程序和使用MapReduce統(tǒng)計對象中某些屬性的案例;實驗4介紹了分布式協(xié)調(diào)框架ZooKeeper的系統(tǒng)模型、工作原理等基本知識,詳細演示了如何部署ZooKeeper集群以及通過ZooKeeper Shell命令使用ZooKeeper,并附加了ZooKeeper編程實踐;實驗5介紹了分布式數(shù)據(jù)庫HBase的數(shù)據(jù)模型、體系架構(gòu)、接口等基礎(chǔ)知識,詳細演示了如何部署全分布模式HBase集群以及通過HBase Web UI和HBase Shell使用HBase,并附加了HBase編程實踐;實驗6介紹了數(shù)據(jù)倉庫Hive的體系架構(gòu)、數(shù)據(jù)類型、文件格式、數(shù)據(jù)模型、函數(shù)、接口等基礎(chǔ)知識,詳細演示了如何部署本地模式Hive以及通過Hive Shell使用Hive,并附加了Hive編程實踐。在“拓展實驗篇”中,實驗7介紹了內(nèi)存型計算框架Spark的生態(tài)系統(tǒng)、體系架構(gòu)、計算模型、RDD原理等基礎(chǔ)知識,詳細演示了如何部署SparkStandalone集群以及Spark簡單編程;實驗8介紹了數(shù)據(jù)遷移工具Sqoop的功能、體系架構(gòu)、接口等基礎(chǔ)知識,詳細演示了如何安裝Sqoop和使用Sqoop Shell完成數(shù)據(jù)的導入導出操作;實驗9介紹了日志采集工具Flume的功能、體系架構(gòu)、接口等基礎(chǔ)知識,詳細演示了如何安裝、配置Flume以及使用Flume高效進行海量日志的收集、聚合和移動;實驗10介紹了分布式流平臺Kafka的功能、體系架構(gòu)、Kafka Shell、Kafka API,詳細演示了如何部署Kafka集群以及通過Kafka Shell使用Kafka進行生產(chǎn)和消費消息。
為了方便讀者整體把握各個實驗,本書在每個實驗的一開始先給出該實驗的知識地圖。根據(jù)我們近幾年的教學實踐,建議根據(jù)本書為大數(shù)據(jù)技術(shù)原理與應用課程增加16學時的上機實踐課,可根據(jù)具體情況靈活安排本書實驗項目。
本書面向高等院校計算機、大數(shù)據(jù)、人工智能等相關(guān)專業(yè)的研究生、本科生,可以作為專業(yè)核心課程大數(shù)據(jù)技術(shù)原理與應用的輔助實驗教材。本書是《Hadoop大數(shù)據(jù)原理與應用》教材的配套實驗教程,兩本書配套使用,可以達到更好的學習效果。此外,本書也可以作為現(xiàn)有其他大數(shù)據(jù)教材的實驗教材或輔助教材。
本書由校企聯(lián)合完成,實驗1由安徽信息工程學院李月軍編寫,實驗2由鄭州升達經(jīng)貿(mào)管理學院周湘貞編寫,實驗3由國信藍橋教育科技(北京)股份有限公司顏群工程師編寫,實驗4~10由西京學院徐魯輝編寫。此外,李月軍和周湘貞還參與了本書全部架構(gòu)設(shè)計和部分審閱工作。全書由國信藍橋教育科技(北京)股份有限公司大數(shù)據(jù)專家唐友剛主審,由西京學院徐魯輝負責策劃、審校和定稿。
本書與配套教材《Hadoop大數(shù)據(jù)原理與應用》擁有完整的立體化資源,包括教學大綱、授課計劃、教案、PPT、源代碼、在線題庫、實驗大綱、實驗指導書、實驗視頻、項目案例庫等教學資源,提供全方位的免費服務。讀者可通過以下三種方式免費在線瀏覽或下載全部配套資源:教材官方網(wǎng)站https://dzxxgcx.xijing.edu.cn/xkzy/zxkc.htm/pabigdata/ index.asp,教材官方云班課“Hadoop大數(shù)據(jù)原理與應用教材云班課”(邀請碼5962412),教材官方GitHub網(wǎng)站https://github.com/xuluhuixijing/pabigdata。
本書中關(guān)于圖形界面元素代替符號的約定如表1所示。
表1 本書圖形界面元素代替符號約定
文字描述 代替符號 舉 例
按鈕 邊框+陰影+底紋 “確定”按鈕可簡化為確定
菜單項 『 』 菜單項“文件”可簡化為『File』
連續(xù)選擇菜單項及子菜單項 → 選擇『File』→『New』→『Java Project』
下拉框、單選框、復選框選項 [ ] 復選框選項“啟用用戶”可簡化為[啟用用戶]
窗口名 【 】 例如,進入窗口【Properties for HDFSExample】
提示信息 “ ” 例如,否則會出現(xiàn)錯誤信息“bash: ****: command not found...”
本書中各實驗所使用軟件的名稱、版本、發(fā)布日期及下載地址如表2所示。
表2 本書使用軟件的名稱、版本、發(fā)布日期及下載地址
序號 軟件名稱 軟件版本 發(fā)布日期 下載地址 安裝文件名
1 VMware Workstation Pro VMware Workstation 12.5.7 Pro
for Windows 2017.6.22 https://www.vmware.com/products
/workstationpro.html VMwareworkstation
full12.5.75813279.
exe
2 CentOS CentOS 7.6.1810 2018.11.26 https://www.centos.org/download/ CentOS7x86_64
DVD1810.iso
3 Java Oracle
JDK 8u191 2018.10.16 http://www.oracle.com/technetwork
/java/javase/downloads/index.html jdk8u191linuxx64.
tar.gz
4 Hadoop Hadoop 2.9.2 2018.11.19 http://hadoop.apache.org
/releases.html hadoop2.9.2.tar.gz
5 Eclipse Eclipse IDE 201809 for Java evelopers 2018.9 https://www.eclipse.org/downloads
/packages eclipsejava201809
linuxgtkx86_64.
tar.gz
6 ZooKeeper ZooKeeper 3.4.13 2018.7.15 http://zookeeper.apache.org
/releases.html zookeeper3.4.13.
tar.gz
7 HBase HBase 1.4.10 2019.6.10 https://hbase.apache.org
/downloads.html hbase1.4.10bin.tar.gz
8 MySQL Connector
/J MySQL Connector/J 5.1.48 2019.7.29 https://dev.mysql.com/downloads
/connector/j/ mysqlconnectorjava
5.1.48.tar.gz
續(xù)表
序號 軟件名稱 軟件版本 發(fā)布日期 下載地址 安裝文件名
9 MySQL Community Server MySQL Community 5.7.27 2019.7.22 http://dev.mysql.com/get/mysql57
communityreleaseel711.noarch.
rpm mysql57community
releaseel711.noarch.
rpm(Yum Repository)
10 Hive Hive 2.3.4 2018.11.7 https://hive.apache.org
/downloads.html apachehive2.3.4
bin.tar.gz
11 Spark Spark 2.3.3 2019.2.15 https://spark.apache.org
/downloads.html spark2.3.3binhaoop
2.7.tgz
12 Sqoop Sqoop 1.4.7 2017.12 http://www.apache.org
/dyn/closer.lua/sqoop/ sqoop1.4.7.bin_
hadoop2.6.0.tar.gz
13 Flume Flume 1.9.0 2019.1.8 http://flume.apache.org
/download.html apacheflume1.9.0
bin.tar.gz
14 Kafka Kafka 2.1.1 2019.2.15 http://kafka.apache.org
/downloads kafka_2.122.1.1.tgz
本書在編寫過程中得到了很多人的幫助。國信藍橋教育科技(北京)股份有限公司高校合作部項目經(jīng)理單寶軍在教材編寫方面提供了幫助,西京學院校長黃文準、西京學院信息工程學院院長郭建新、副院長烏偉在學院政策方面提供了支持,西安電子科技大學出版社李惠萍編輯對本書的出版提出了很多意見和建議,在此一并表示衷心感謝。
本書在撰寫的過程中參考了部分國內(nèi)外教材、專著、論文和開源社區(qū)資源,在此也向這些文獻作者一并致謝。由于作者水平和能力有限,書中難免有疏漏與不足之處,衷心希望廣大同行和讀者批評指正。
上篇 基礎(chǔ)實驗篇
實驗1 部署全分布模式Hadoop集群 2
1.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 3
1.2 實驗原理 3
1.2.1 Linux基本命令 3
1.2.2 vim編輯器 6
1.2.3 Java基本命令 7
1.2.4 SSH安全通信協(xié)議 8
1.2.5 Hadoop 8
1.3 實驗步驟 12
1.3.1 規(guī)劃部署 12
1.3.2 準備機器 14
1.3.3 準備軟件環(huán)境 14
1.3.4 獲取和安裝Hadoop 22
1.3.5 配置全分布模式Hadoop集群 22
1.3.6 關(guān)閉防火墻 30
1.3.7 格式化文件系統(tǒng) 31
1.3.8 啟動和驗證Hadoop 32
1.3.9 關(guān)閉Hadoop 41
1.3.10 實驗報告要求 42
1.4 拓展訓練——部署偽分布模式
?Hadoop集群 42
1.4.1 規(guī)劃部署 43
1.4.2 準備機器 43
1.4.3 準備軟件環(huán)境 44
1.4.4 下載和安裝Hadoop 47
1.4.5 配置Hadoop 47
1.4.6 格式化文件系統(tǒng) 49
1.4.7 啟動和驗證偽分布模式
Hadoop集群 49
1.4.8 關(guān)閉偽分布模式Hadoop集群 54
思考與練習題 55
參考文獻 55
實驗2 實戰(zhàn)HDFS 57
2.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 57
2.2 實驗原理 58
2.2.1 初識HDFS 58
2.2.2 HDFS的體系架構(gòu) 58
2.2.3 HDFS文件的存儲原理 60
2.2.4 HDFS接口 64
2.3 實驗步驟 70
2.3.1 啟動Hadoop集群 70
2.3.2 使用 HDFS Shell 71
2.3.3 使用HDFS Web UI 72
2.3.4 搭建HDFS的開發(fā)環(huán)境Eclipse 73
2.3.5 使用HDFS Java API編程 75
2.3.6 關(guān)閉Hadoop集群 87
2.3.7 實驗報告要求 87
2.4 拓展訓練——?搭建HDFS
NameNode HA 88
思考與練習題 92
參考文獻 92
實驗3 MapReduce編程 94
3.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 94
3.2 實驗原理 95
3.2.1 MapReduce的編程思想 95
3.2.2 MapReduce的作業(yè)執(zhí)行流程 97
3.2.3 MapReduce Web 98
3.2.4 MapReduce Shell 98
3.2.5 MapReduce Java API 99
3.3 實驗步驟 99
3.3.1 啟動Hadoop集群 99
3.3.2 搭建MapReduce的
開發(fā)環(huán)境Eclipse 100
3.3.3 編寫并運行MapReduce程序
WordCount 100
3.3.4 練習使用MapReduce Shell命令 111
3.3.5 練習使用MapReduce Web UI
界面 112
3.3.6 關(guān)閉Hadoop集群 113
3.3.7 實驗報告要求 113
3.4 拓展訓練 113
3.4.1 在Windows平臺上開發(fā)
MapReduce程序 113
3.4.2 MapReduce編程實踐:使用
MapReduce統(tǒng)計對象中的
某些屬性 117
思考與練習題 122
參考文獻 122
實驗4 部署ZooKeeper集群和實戰(zhàn)
ZooKeeper 123
4.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 123
4.2 實驗原理 124
4.2.1 ZooKeeper的系統(tǒng)模型 124
4.2.2 ZooKeeper的工作原理 128
4.2.3 部署ZooKeeper 131
4.2.4 ZooKeeper的四字命令 134
4.2.5 ZooKeeper Shell 135
4.2.6 ZooKeeper Java API 137
4.3 實驗步驟 139
4.3.1 規(guī)劃ZooKeeper集群 139
4.3.2 部署ZooKeeper集群 140
4.3.3 啟動ZooKeeper集群 143
4.3.4 驗證ZooKeeper集群 144
4.3.5 使用ZooKeeper的四字命令 144
4.3.6 使用ZooKeeper Shell的
常用命令 146
4.3.7 關(guān)閉ZooKeeper集群 151
4.3.8 實驗報告要求 151
4.4 拓展訓練 152
4.4.1 搭建ZooKeeper的
開發(fā)環(huán)境Eclipse 152
4.4.2 ZooKeeper編程實踐——
ZooKeeper文件系統(tǒng)的增刪改查 152
4.4.3 ZooKeeper編程實踐——
循環(huán)監(jiān)聽 160
思考與練習題 162
參考文獻 163
實驗5 部署全分布模式HBase集群和
實戰(zhàn)HBase 164
5.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 164
5.2 實驗原理 165
5.2.1 初識HBase 165
5.2.2 HBase的數(shù)據(jù)模型 165
5.2.3 HBase的體系架構(gòu) 169
5.2.4 部署HBase 172
5.2.5 HBase接口 174
5.3 實驗步驟 178
5.3.1 規(guī)劃全分布模式HBase集群 178
5.3.2 部署全分布模式HBase集群 179
5.3.3 啟動全分布模式HBase集群 183
5.3.4 驗證全分布模式HBase集群 184
5.3.5 使用HBase Shell和HBase
Web UI 186
5.3.6 關(guān)閉全分布模式HBase集群 189
5.3.7 實驗報告要求 189
5.4 拓展訓練 190
5.4.1 搭建HBase的開發(fā)環(huán)境Eclipse 190
5.4.2 HBase編程實踐:HBase表的
增刪改 190
思考與練習題 192
參考文獻 192
實驗6 部署本地模式Hive和實戰(zhàn)Hive 194
6.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 194
6.2 實驗原理 195
6.2.1 初識Hive 195
6.2.2 Hive的體系架構(gòu) 196
6.2.3 Hive的數(shù)據(jù)類型 198
6.2.4 Hive的文件格式 199
6.2.5 Hive的數(shù)據(jù)模型 200
6.2.6 Hive函數(shù) 201
6.2.7 部署Hive 205
6.2.8 Hive接口 208
6.3 實驗步驟 211
6.3.1 規(guī)劃Hive 211
6.3.2 部署本地模式Hive 213
6.3.3 驗證Hive 223
6.3.4 使用Hive Shell 224
6.3.5 實驗報告要求 227
6.4 拓展訓練 228
6.4.1 搭建Hive的開發(fā)環(huán)境Eclipse 228
6.4.2 Hive編程實踐:操縱Hive
數(shù)據(jù)庫和表 228
思考與練習題 235
參考文獻 236
下篇 拓展實驗篇
實驗7 部署Spark集群和Spark編程 238
7.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 238
7.2 實驗原理 239
7.2.1 初識Spark 239
7.2.2 Spark的體系架構(gòu) 241
7.2.3 Spark的計算模型 246
7.2.4 RDD的設(shè)計與運行原理 247
7.2.5 Spark集群部署 250
7.2.6 Spark接口 252
7.3 實驗步驟 255
7.3.1 規(guī)劃SparkStandalone集群 255
7.3.2 手工部署SparkStandalone集群 257
7.3.3 啟動SparkStandalone集群 261
7.3.4 驗證SparkStandalone集群 261
7.3.5 使用Spark Web UI、Spark Shell和
Spark API 261
7.3.6 關(guān)閉SparkStandalone集群 267
思考與練習題 268
參考文獻 268
實驗8 實戰(zhàn)Sqoop 269
8.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 269
8.2 實驗原理 270
8.2.1 初識Sqoop 270
8.2.2 Sqoop的體系架構(gòu) 271
8.2.3 安裝Sqoop 272
8.2.4 Sqoop Shell 273
8.2.5 Sqoop API 277
8.3 實驗步驟 277
8.3.1 規(guī)劃安裝 277
8.3.2 安裝和配置Sqoop 279
8.3.3 驗證Sqoop 281
8.3.4 使用Sqoop Shell 281
思考與練習題 301
參考文獻 301
實驗9 實戰(zhàn)Flume 302
9.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 302
9.2 實驗原理 303
9.2.1 初識Flume 303
9.2.2 Flume的體系架構(gòu) 304
9.2.3 安裝Flume 306
9.2.4 Flume Shell 307
9.2.5 Flume API 309
9.3 實驗步驟 309
9.3.1 規(guī)劃安裝 309
9.3.2 安裝和配置Flume 310
9.3.3 驗證Flume 311
9.3.4 使用Flume 311
思考與練習題 318
參考文獻 318
實驗10 實戰(zhàn)Kafka 319
10.1 實驗目的、實驗環(huán)境和實驗內(nèi)容 319
10.2 實驗原理 320
10.2.1 初識Kafka 320
10.2.2 Kafka的體系架構(gòu) 321
10.2.3 安裝Kafka 323
10.2.4 Kafka Shell 325
10.2.5 Kafka API 326
10.3 實驗步驟 326
10.3.1 規(guī)劃Kafka集群 326
10.3.2 部署Kafka集群 327
10.3.3 啟動Kafka集群 329
10.3.4 驗證Kafka集群 330
10.3.5 使用Kafka Shell 330
10.3.6 關(guān)閉Kafka集群 334
思考與練習題 334
參考文獻 334