本書以Hadoop 3.3.0為核心,涵蓋Hadoop生態(tài)系統(tǒng)的常用組件,主要介紹各組件的架構原理、Shell命令、常用API及編程等,并配有較多例題。全書共7章,內容包含Hadoop概述、Hadoop偽分布式安裝、Hadoop分布式文件系統(tǒng)HDFS、分布式計算框架MapReduce、分布式數據庫HBase、數據倉庫Hive和內存計算框架Spark,第2~7章還設計了相關實驗。
本書可以作為高等院校大數據、計算機、應用統(tǒng)計等相關專業(yè)的教材,也可作為Hadoop愛好者的入門教程或自學參考用書。
本書配有電子課件,歡迎選用本書作教材的教師登錄www.cmpedu.com注冊后下載,或加微信13910750469索取。
大數據時代的來臨,帶來了信息技術的巨大變革,并深刻影響著人們生活和社會生產的方方面面。Hadoop是一個開源的、可運行于大規(guī)模集群上的分布式存儲和計算的軟件框架,用戶可以在不了解分布式底層細節(jié)的情況下開發(fā)分布式程序,并能充分利用集群的威力進行高速運算和存儲。大數據的核心技術就是Hadoop及其生態(tài)系統(tǒng)的常用組件,包括HBase、Hive和Spark等。
目前市面上雖然已有較多關于Hadoop的書籍,但是這些書籍大多是基于Hadoop 2.X,而且偏重理論講述,內容較多,學習難度較大,容易打擊初學者的學習積極性,讓其難以入門。本書以Hadoop 3.3.0為核心,涵蓋Hadoop生態(tài)系統(tǒng)的常用組件,內容新穎,可操作性強,講解通俗易懂,能使讀者在較短的時間內掌握Hadoop大數據技術。
本書特色
1.容易入門
相對于其他書籍,本書增加Linux基礎知識和Linux基本命令,不熟悉Linux的讀者也容易上手;對Hadoop及其他相關軟件的安裝和使用過程進行了詳細描述,幫助讀者渡過安裝和使用相關軟件的難關。
2.版本新
隨著時間的推移,Hadoop及其生態(tài)系統(tǒng)的常用組件也在不斷發(fā)展,版本不斷更新,本書采用的軟件版本較新,如Hadoop 3.3.0、HBase 2.2.2、Hive 3.1.2、Spark 3.2.1等。
3.較多的應用實例
本書提供了較多的應用實例,以便幫助讀者理論聯系實際,快速地掌握Hadoop及其生態(tài)系統(tǒng)的常用組件的編程技術。
4.圖文并茂
“一圖勝千言”,全書共有兩百多幅插圖,用于展示語言難以描述的內容。
適合閱讀本書的讀者
(1)高等院校、中職學校的師生。
(2)Hadoop大數據技術初學者。
(3)Hadoop大數據應用開發(fā)人員。
致謝
在本書的編寫過程中,得到了廈門大學林子雨副教授的大力幫助,還得到了廣東時匯信息科技有限公司和廣東泰迪智能科技股份有限公司的幫助,在此一并表示衷心的感謝。非常感謝機械工業(yè)出版社吉玲編輯,她專業(yè)細致的工作方式,給編者留下了深刻的印象。
前言由于編者水平有限,編寫時間倉促,書中的錯誤和疏漏在所難免,懇請廣大讀者提出寶貴意見和建議。聯系郵箱:lkf547@163.com。
編者于廣東工業(yè)大學
前言
第1章Hadoop概述
1.1大數據簡介
1.2Hadoop簡介
1.3Hadoop特性
1.4Hadoop核心組件
1.4.1HDFS
1.4.2MapReduce
1.4.3YARN
1.5Hadoop生態(tài)系統(tǒng)
1.5.1HBase
1.5.2Hive
1.5.3Pig
1.5.4Spark
1.5.5ZooKeeper
1.5.6Sqoop
1.5.7Flume
1.5.8Mahout
1.5.9Ambari
1.6本章小結
習題
第2章Hadoop偽分布式安裝
2.1Linux操作系統(tǒng)
2.1.1概述
2.1.2Linux的組成
2.1.3Linux的內核版本與發(fā)行版本
2.1.4Linux基本命令
2.2CentOS的安裝
2.2.1安裝VMware Workstation
2.2.2在VMware上安裝CentOS 7
2.2.3配置CentOS 7
2.3Hadoop偽分布式安裝與配置
2.3.1安裝WinSCP
2.3.2安裝JDK
2.3.3安裝Hadoop
2.4本章小結
習題
實驗Hadoop偽分布式安裝與配置
第3章Hadoop分布式文件系統(tǒng)HDFS
3.1HDFS的架構和原理
3.1.1計算機集群結構
3.1.2HDFS的假設前提和設計目標
3.1.3HDFS的相關概念
3.1.4HDFS體系結構
3.1.5HDFS存儲原理
3.2HDFS Shell
3.3HDFS Java API
3.3.1搭建Linux操作系統(tǒng)下的Eclipse開發(fā)環(huán)境
3.3.2HDFS Java API常用的類
3.3.3HDFS Java API 編程
3.4本章小結
習題
實驗HDFS基本命令的使用和HDFS的Java編程
第4章分布式計算框架MapReduce
4.1認識MapReduce
4.1.1分布式并行編程
4.1.2MapReduce核心思想
4.1.3MapReduce運行環(huán)境
4.1.4Hadoop內置數據類型
4.2MapReduce工作流程
4.2.1MapReduce工作流程概述
4.2.2Shuffle過程分析
4.3MapReduce入門示例:WordCount
4.3.1WordCount程序任務
4.3.2準備被統(tǒng)計的文件
4.3.3WordCount執(zhí)行過程分析
4.3.4WordCount編程實踐
4.4MapReduce應用實例
4.4.1求平均值
4.4.2簡單查詢功能的實現
4.5本章小結
習題
實驗簡單排序的實現
第5章分布式數據庫HBase
5.1概述
5.1.1BigTable簡介
5.1.2HBase簡介
5.1.3HBase具有的特點
5.2HBase數據模型
5.2.1數據模型概述
5.2.2數據模型的相關概念
5.3HBase系統(tǒng)架構
5.4HBase偽分布式安裝
5.4.1安裝并配置環(huán)境變量
5.4.2配置HBase參數
5.4.3驗證HBase
5.5HBase Shell
5.5.1HBase Shell常用命令
5.5.2HBase Shell應用實例
5.6HBase Java API
5.6.1HBase Java API 簡介
5.6.2HBase Java API 編程
5.7本章小結
習題
實驗HBase編程實踐
第6章數據倉庫Hive
6.1概述
6.1.1數據倉庫簡介
6.1.2Hive簡介
6.1.3Hive與關系型數據庫的區(qū)別
6.1.4Hive系統(tǒng)架構
6.2Hive偽分布式安裝
6.2.1MySQL的安裝和配置
6.2.2Hive的安裝和配置
6.3Hive編程基礎
6.3.1Hive的數據類型
6.3.2數據庫相關操作
6.3.3表相關操作
6.3.4表中數據的加載
6.3.5HiveQL基本查詢
6.3.6Hive函數
6.4Hive編程實例
6.4.1雇員表統(tǒng)計
6.4.2詞頻統(tǒng)計
6.5本章小結
習題
實驗Hive的編程實踐
第7章內存計算框架Spark
7.1Spark基礎知識
7.1.1Spark簡介
7.1.2Spark生態(tài)系統(tǒng)
7.1.3Spark運行架構
7.2Scala基礎知識
7.2.1Scala簡介
7.2.2Scala安裝
7.2.3Scala編程
7.3Spark偽分布式安裝
7.3.1Spark的安裝模式
7.3.2Spark的安裝
7.4RDD編程基礎
7.4.1Spark Shell的啟動和退出
7.4.2RDD創(chuàng)建
7.4.3常用的RDD操作
7.4.4RDD編程實例
7.5IDEA的安裝和使用
7.5.1IDEA的安裝
7.5.2IDEA的使用
7.5.3獨立應用程序實例
7.6本章小結
習題
實驗Spark Shell交互式編程
參考文獻