Hadoop大數據技術與應用

楊治明 許桂秋

  • 出版商: 人民郵電
  • 出版日期: 2019-03-01
  • 定價: $330
  • 售價: 8.5$281
  • 語言: 簡體中文
  • 頁數: 287
  • 裝訂: 平裝
  • ISBN: 7115503532
  • ISBN-13: 9787115503534
  • 相關分類: Hadoop大數據 Big-data
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書採用理論與實踐相結合的方式,全面介紹了Hadoop大數據技術。主要內容包括初識Hadoop大數據技術、Hadoop環境配置,分佈式文件系統HDFS、資源調度框架YARN、分佈式計算框架MapReduce、大數據數據倉庫Hive、分佈式數據庫HBase、查詢大型半結構化數據集的語言Pig、分佈式日誌採集工具Flume、分佈式數據庫與傳統數據庫數據相互轉換工具Sqoop。

作者簡介

楊治明,教授,現任重慶科技學院數理與大數據學院院長,數據科學與大數據技術專業負責人。現任重慶市教委教育信息化專家委員會成員、重慶市人工智能技術創新戰略聯盟專家委員會成員。獲得國家級教學成果獎1項、重慶市高等教育教學成果獎二等獎、三等獎各1項。

目錄大綱

第1章初識Hadoop大數據技術1 
1.1大數據技術概述1 
1.1.1大數據產生的背景1 
1.1.2大數據的定義2 
1.1.3大數據技術的發展2 
1.2 Google的“三駕馬車” 3 
1.2.1 GFS的思想3 
1.2.2 MapReduce的思想4 
1.2.3 BigTable的思想6 
1.3 Hadoop概述8 
1.3.1 Hadoop對Google公司三篇論文思想的實現8 
1.3.2 Hadoop的發展歷史9 
1.3. 3 Hadoop版本的演變11 
1.3.4 Hadoop的發行版本12 
1.3.5 Hadoop的特點12 
1.4 Hadoop生態圈12 
1.5 Hadoop的典型應用場景與應用架構13 
1.5.1 Hadoop的典型應用場景13 
1.5.2 Hadoop的典型應用架構14 
習題15 


第2章Hadoop環境設置16 
2.1安裝前準備16 
2.1.1安裝虛擬機17 
2.1.2安裝Ubuntu操作系統20 
2.1.3關閉防火牆22 
2.1.4 SSH安裝22
2.1.5安裝Xshell及Xftp 22 
2.1.6安裝JDK 24 
2.1.7下載Hadoop並解壓25 
2.1.8克隆主機27 
2.2 Hadoop的安裝28 
2.2.1安裝單機模式28 
2.2.2安裝偽分佈式模式29 
2.2 .3安裝完全分佈式模式35 
習題41 
實驗搭建Hadoop偽分佈式模式環境42 


第3章HDFS 44 
3.1 HDFS簡介44 
3.2 HDFS的組成與架構45 
3.2.1 NameNode 45 
3.2.2 DataNode 46 
3.2.3 SecondaryNameNode 46 
3.3 HDFS的工作機制47 
3.3.1機架感知與副本冗餘存儲策略47 
3.3.2文件讀取49 
3.3.3文件寫入50 
3.3.4數據容錯52 
3.4 HDFS操作53 
3.4.1通過Web界面進行HDFS操作53 
3.4.2通過HDFS Shell進行HDFS操作54 
3.4.3通過HDFS API進行HDFS操作60 
3.5 HDFS的高級功能68 
3.5.1安全模式68 
3.5.2回收站69
3.5.3快照70 
3.5.4配額71 
3.5.5高可用性71 
3.5.6聯邦72 
習題74 
實驗1通過Shell命令訪問HDFS 74 
實驗2熟悉基於IDEA+Maven的Java開發環境77 
實驗3通過API訪問HDFS 86 


第4章YARN 90 
4.1 YARN產生的背景90 
4.2初識YARN 92 
4.3 YARN的架構93 
4.3.1 YARN架構概述93 
4.3.2 YARN中應用運行的機制94 
4.3.3 YARN中任務進度的監控94 
4.3. 4 MapReduce 1與YARN的組成對比95 
4.4 YARN的調度器95 
4.4.1先進先出調度器95 
4.4.2容器調度器96 
4.4.3公平調度器97 
4.4.4三種調度器的比較98 
習題98 


第5章MapReduce 99 
5.1 MapReduce概述99 
5.1.1 MapReduce是什麼99 
5.1.2 MapReduce的特點99 
5.1.3 MapReduce不擅長的場景100 
5.2 MapReduce編程模型100
5.2.1 MapReduce編程模型概述100 
5.2.2 MapReduce編程實例101 
5.3 MapReduce編程進階112 
5.3.1 MapReduce的輸入格式112 
5.3.2 MapReduce的輸出格式114 
5.3.3分區115 
5.3.4合併118 
5.4 MapReduce的工作機制119 
5.4.1 MapReduce作業的運行機制119 
5.4.2進度和狀態的更新120 
5.4.3 Shuffle 121 
5.5 MapReduce編程案例122 
5.5.1排序122 
5.5.2去重126 
5.5.3多表查詢127 
習題129 
實驗1分析和編寫WordCount程序130 
實驗2 MapReduce序列化、分區實驗131 
實驗3使用MapReduce求出各年銷售筆數、各年銷售總額134 
實驗4使用MapReduce統計用戶在搜狗上的搜索數據136 


第6章HBase、Hive、Pig 139 
6.1 HBase 139 
6.1.1行式存儲與列式存儲139 
6.1.2 HBase簡介140 
6.1.3 HBase的數據模型141 
6.1.4 HBase的物理模型143
6.1.5 HBase的系統架構144 
6.1.6 HBase的安裝147 
6.1.7訪問HBase 152 
6.2 Hive 157 
6.2.1安裝Hive 157 
6.2.2 Hive的架構與工作原理160 
6.2.3 Hive的數據類型與存儲格式163 
6.2.4 Hive的數據模型167 
6.2.5查詢數據169 
6.2.6用戶定義函數170 
6.3 Pig 171 
6.3.1 Pig概述171 
6.3.2安裝Pig 172 
6.3.3 Pig Latin編程語言172 
6.3.4 Pig代碼實例177 
6.3.5用戶自定義函數179 
習題181 
實驗1 HBase實驗——安裝和配置(可選) 181 
實驗2 HBase實驗——通過HBase Shell訪問HBase(可選) 185 
實驗3 HBase實驗——通過Java API訪問HBase 187 
實驗4 HBase實驗——通過Java API開發基於HBase的MapReduce程序189 
實驗5 Hive實驗——Metastore採用Local模式(MySQL數據庫)搭建Hive環境(可選) 191 
實驗6 Hive實驗——Hive常用操作193 
實驗7 Pig實驗——安裝和使用Pig(可選) 194
實驗8 Pig實驗——使用Pig Latin操作員工表和部門表195 


第7章Flume 198 
7.1 Flume產生的背景198 
7.2 Flume簡介198 
7.3 Flume的安裝199 
7.4 Flume的架構200 
7.5 Flume的應用201 
7.5.1 Flume的組件類型及其配置項201 
7.5.2 Flume的配置和運行方法206 
7.5.3 Flume配置示例207 
7.6 Flume的工作方式209 
習題210 
實驗1 Flume的配置與使用1——Avro Source + Memory Channel + Logger Sink 211 
實驗2 Flume的配置與使用2——Syslogtcp Source + Memory Channel + HDFS Sink 212 
實驗3 Flume的配置與使用3——Exec Source + Memory Channel + Logger Sink 213 


第8章Sqoop 214 
8.1 Sqoop背景簡介214 
8.2 Sqoop的基本原理215 
8.3 Sqoop的安裝與部署216 
8.3.1下載與安裝216 
8.3.2配置Sqoop 217 
8.4 Sqoop應用219 
8.4.1列出MySQL數據庫的基本信息219
8.4.2 MySQL和HDFS數據互導219 
8.4.3 MySQL和Hive數據互導220 
習題221 
實驗Sqoop常用功能的使用222 


第9章ZooKeeper 227 
9.1 ZooKeeper簡介227 
9.2 ZooKeeper的安裝228 
9.2.1單機模式228 
9.2 .2集群模式229 
9.3 ZooKeeper的基本原理231 
9.3.1 Paxos算法231 
9.3.2 Zab算法232 
9.3.3 ZooKeeper的架構232 
9.3.4 ZooKeeper的數據模型233 
9.4 ZooKeeper的簡單操作235 
9.4.1通過ZooKeeper Shell命令操作ZooKeeper 235 
9.4.2通過ZooInspector工具操作ZooKeeper 238 
9.4.3通過Java API操作ZooKeeper 238 
9.5 ZooKeeper的特性239 
9.5.1會話239 
9.5.2臨時節點240 
9.5.3順序節點240 
9.5.4事務操作241 
9.5.5版本號241 
9.5.6監視242 
9.6 ZooKeeper的應用場景243
9.6.1 Master選舉244 
9.6.2分佈式鎖245 
習題246 
實驗ZooKeeper的3種訪問方式246 


第10章Ambari 249 
10.1 Ambari簡介249 
10.1.1背景249 
10.1.2 Ambari的主要功能250 
10.2 Ambari的安裝250 
10.2.1安裝前準備250 
10.2.2安裝Ambari 254 
10.3利用Ambari管理Hadoop集群257 
10.3.1安裝與配置HDP集群258 
10.3.2節點的擴展264 
10.3.3啟用HA 267 
10.4 Ambari的架構和工作原理271 
10.4.1 Ambari的總體架構271 
10.4.2 Ambari Agent 272 
10.4.3 Ambari Server 272 
習題273 


第11章Mahout 274 
11.1 Mahout簡介274 
11.1.1什麼是Mahout 274 
11.1.2 Mahout能做什麼275 
11.2 Taste簡介276 
11.2.1 DataModel 276 
11.2.2 Similarity 277
11.2.3 UserNeighborhood 277 
11.2.4 Recommender 277 
11.2.5 RecommenderEvaluator 277 
11.2.6 RecommenderIRStatsEvaluator 278 
11.3使用Taste構建推薦系統278 
11.3.1創建Maven項目278 
11.3.2導入Mahout依賴278 
11.3.3獲取電影評分數據278 
11.3 .4編寫基於用戶的推薦279 
11.3.5編寫基於物品的推薦280 
11.3.6評價推薦模型281 
11.3.7獲取推薦的查准率和查全率281 
習題282 
實驗基於Mahout的電影推薦系統283 
綜合實驗搜狗日誌查詢分析(MapReduce+Hive綜合實驗) 284 
參考文獻287