《大數(shù)據(jù)基礎與應用》共分為12章,第1章介紹了大數(shù)據(jù)產生的背景、大數(shù)據(jù)的結構與特征、大數(shù)據(jù)相關概念、大數(shù)據(jù)可視化、大數(shù)據(jù)相關工具與發(fā)展前景。第2~9章為基礎知識部分,介紹了大數(shù)據(jù)的生態(tài)系統(tǒng)全貌,重點對計算平臺Hadoop、分布式文件系統(tǒng)HDFS、計算框架MapReduce、開源數(shù)據(jù)庫HBase、典型工具NoSQL、集群計算Spark、流計算Storm和分布式協(xié)調系統(tǒng)Zookeeper等相關技術進行了詳細介紹,通過實例使讀者具備解決實際問題的能力。第10~12章為典型應用案例部分,介紹了大數(shù)據(jù)分析應用系統(tǒng)的開發(fā)過程,涵蓋了數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)轉換和結果顯示的整個交互式大數(shù)據(jù)處理和分析流程。
《大數(shù)據(jù)基礎與應用》內容豐富、條理清晰、示例指導性強,讀者可以通過章后的習題對所學內容作進一步鞏固,熟練掌握大數(shù)據(jù)基本原理、工程應用場景及實驗分析技巧。
《大數(shù)據(jù)基礎與應用》適合作為大中專院校數(shù)據(jù)科學與大數(shù)據(jù)專業(yè)、計算機類專業(yè)的教材,也可以作為讀者自學或者科研技術人員的參考書。
配套資源:電子課件
本書特色:
本書按照讀者學習的一般規(guī)律由淺入深、循序漸進,并配以大量的圖片說明和實例講解。
讀者可以通過章后的習題對所學內容作進一步鞏固,熟練掌握大數(shù)據(jù)基本原理、工程應用場景及實驗分析技巧。
三個典型應用案例部分涵蓋了數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)轉換和結果顯示的整個交互式大數(shù)據(jù)處理和分析流程。
近年來,大數(shù)據(jù)浪潮洶涌來襲,與互聯(lián)網(wǎng)一樣,這不僅是信息技術領域的革命,更是在全球范圍加速企業(yè)創(chuàng)新、引領社會變革的利器,F(xiàn)代管理學之父德魯克說過,預測未來最好的方法,就是去創(chuàng)造未來。而大數(shù)據(jù)戰(zhàn)略正是當下領航全球的先機。大數(shù)據(jù)指一般的軟件工具難以捕捉、管理和分析的大容量數(shù)據(jù)。大數(shù)據(jù)之大,并不僅在于容量之大,更在于其通過對海量數(shù)據(jù)的交換、整合和分析,發(fā)現(xiàn)新的知識、創(chuàng)造新的價值,帶來大知識大科技大利潤和大發(fā)展。
數(shù)據(jù)科學與大數(shù)據(jù)技術專業(yè),簡稱數(shù)科或大數(shù)據(jù)專業(yè),旨在培養(yǎng)具有大數(shù)據(jù)思維、運用大數(shù)據(jù)思維研究及分析的高層次大數(shù)據(jù)人才,掌握計算機理論和大數(shù)據(jù)處理技術,從數(shù)據(jù)管理、系統(tǒng)開發(fā)、海量數(shù)據(jù)分析與挖掘三個層面系統(tǒng)地培養(yǎng)學生掌握大數(shù)據(jù)應用中的各種典型問題的解決辦法,提升學生解決實際問題的能力。
基本內容
本書共分為12章,各章主要內容如下。
第1章主要對大數(shù)據(jù)產生的背景、大數(shù)據(jù)的結構與特征、大數(shù)據(jù)相關概念、大數(shù)據(jù)可視化、大數(shù)據(jù)處理相關工具與發(fā)展前景進行了介紹。通過第1章的學習,讀者能夠初步掌握大數(shù)據(jù)的基本知識,熟悉大數(shù)據(jù)處理與分析的操作環(huán)境及可視化方法,為后面的進一步學習打下堅實的基礎。
第2章主要介紹了分布式計算平臺Hadoop及其基礎知識、Hadoop發(fā)展史、Hadoop體系結構等,讓讀者對Hadoop有一個簡單的認識,了解如何在Hadoop上開發(fā)和運行處理海量數(shù)據(jù)的應用。
第3章首先介紹分布式文件系統(tǒng)的基本概念、結構和設計需求,然后介紹HDFS,詳細闡述它的重要概念、體系結構、存儲原理和讀寫過程,最后介紹了一些HDFS編程實踐方面的知識。
第4章著重介紹了MapReduce分而治之,迭代匯總的處理海量數(shù)據(jù)的并行編程模型和計算框架,讓讀者了解MapReduce的數(shù)據(jù)類型與格式、序列化、數(shù)據(jù)分片、MapReduce的架構與接口類,通過單詞計數(shù)程序將上述知識點串聯(lián)并闡述MapReduce的思想。
第5章詳細地介紹了HBase開源數(shù)據(jù)庫,HBase的安裝與配置、常用API、HBase架構及實現(xiàn)原理等,使讀者快速對HBase有一個全方面的了解。
第6章著重介紹了NoSQL的基礎,一致性策略、數(shù)據(jù)分區(qū)與放置策略、數(shù)據(jù)復制與容錯、數(shù)據(jù)緩存等,結合NoSQL典型應用工具,結合實例簡明扼要地敘述了NoSQL的基本應用。
第7章闡述了Spark生態(tài)系統(tǒng)全貌,包含SparkSQL、Spark Streaming、GraphX、MLlib等,了解Spark的功能、特點以及場景應用。通過對Spark的安裝部署,基本操作和運行模式,并通過編程實例來加深了解運用Spark的相關知識。
第8章首先介紹了Storm流計算的基本概念和需求,闡述了流計算的處理流程、應用場景、Storm的設計思想和架構設計,最后介紹了Spark Streaming及其應用實例。
第9章介紹了分布式協(xié)調系統(tǒng)Zookeeper概念及其主要特征和數(shù)據(jù)模型、Zookeeper的安裝和配置、Zookeeper API的簡單使用、Zookeeper shell的操作,最后介紹了一個選舉案例讓讀者更深入地了解Zookeeper的作用及應用。
第10章通過銷售數(shù)據(jù)分析系統(tǒng)的應用案例,介紹了大數(shù)據(jù)分析應用系統(tǒng)的完整開發(fā)過程,涵蓋了數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)轉換和結果顯示的整個流程。
第11章介紹了在Hadoop平臺上進行交互式數(shù)據(jù)處理的方法,然后介紹了利用Hive 基本工具進行實時交互式大數(shù)據(jù)的處理和分析。
第12章介紹了協(xié)同推薦算法的基本概念和幾種典型分類。利用Spark MLlib實現(xiàn)了協(xié)同過濾推薦算法及協(xié)同交互過程。
本書特點
本書編者長期給本科生和研究生講授數(shù)據(jù)庫、數(shù)據(jù)挖掘、物聯(lián)網(wǎng)和云計算等與大數(shù)據(jù)相關的課程,有著豐富的教學實踐和科研經(jīng)驗。本書內容條理清晰,并按照讀者學習的一般規(guī)律由淺入深、循序漸進,并配以大量的圖片說明和實例講解,能夠使讀者快速地了解和掌握大數(shù)據(jù)原理及應用案例。
讀者對象
● 大數(shù)據(jù)基礎知識的初學者。
● 具有一定大數(shù)據(jù)基礎并希望更深入了解、掌握大數(shù)據(jù)原理與應用的中級讀者。
本書適合作為大中專院校數(shù)據(jù)科學與大數(shù)據(jù)專業(yè)、計算機類專業(yè)的教材,也可作為從事大數(shù)據(jù)挖掘等工作的科研或者工程技術人員的參考書。
本書由趙國生、王健和宋一兵主編。哈爾濱師范大學趙國生主要負責第1~8章,哈爾濱理工大學王健負責第9、10章,宋一兵負責第11、12章。參加本書編寫工作的還有管殿柱、王獻紅、李文秋,學生曲曉峰、張慧、蔣欣洋、陳炫慧、賀敬、張志敏等為本書做了大量輔助性工作,在此一并感謝。
本書得到了以下項目的支持:國家自然科學基金項目可生存系統(tǒng)的自主認知模式研究(61202458)、國家自然科學基金項目基于認知循環(huán)的任務關鍵系統(tǒng)可生存性自主增長模型與方法(61403109)、高等學校博士點基金項目(20112303120007)、哈爾濱市科技創(chuàng)新人才研究專項(2016RAQXJ036)和黑龍江省自然科學基金(F2017021)。
雖然編者在編寫本書的過程中力求敘述準確、完善,但由于水平有限,書中欠妥之處在所難免,希望讀者將對本書的意見和建議告訴我們。
前言
第1章初識大數(shù)據(jù)
1.1大數(shù)據(jù)產生的背景
1.2大數(shù)據(jù)的結構與特征
1.2.1大數(shù)據(jù)的結構
1.2.2大數(shù)據(jù)的特征
1.3大數(shù)據(jù)相關概念
1.3.1大數(shù)據(jù)關鍵技術
1.3.2數(shù)據(jù)類型與數(shù)據(jù)管理
1.3.3數(shù)據(jù)倉庫
1.3.4數(shù)據(jù)挖掘
1.4大數(shù)據(jù)可視化
1.4.1什么是數(shù)據(jù)可視化
1.4.2數(shù)據(jù)可視化的工具與方法
1.4.3數(shù)據(jù)可視化的建模
1.4.4數(shù)據(jù)可視化分類
1.5大數(shù)據(jù)相關工具
1.5.1Hadoop
1.5.2R語言
1.5.3Python語言
1.5.4RapidMiner
1.5.5Tableau
1.6大數(shù)據(jù)時代的新機遇
1.6.1數(shù)據(jù)價值
1.6.2應用價值
1.6.3發(fā)展前景
1.7本章小結
1.8習題
第2章大數(shù)據(jù)處理架構Hadoop
2.1Hadoop簡介
2.2Hadoop發(fā)展史及特點
2.3Hadoop體系結構
2.3.1HDFS體系結構
2.3.2MapReduce體系結構
2.4配置Linux環(huán)境
2.4.1安裝VMware12虛擬機
2.4.2部署CentOS 64位操作系統(tǒng)
2.4.3配置網(wǎng)絡
2.4.4Linux終端
2.5Hadoop環(huán)境搭建
2.5.1JDK安裝和測試
2.5.2Hadoop安裝和配置
2.5.3SSH免密碼配置
2.6Hadoop關鍵組件
2.6.1HDFS
2.6.2HBase
2.6.3MapReduce
2.6.4Hive
2.6.5Pig
2.6.6Mahout
2.6.7ZooKeeper
2.6.8Flume
2.6.9Sqoop
2.6.10Ambari
2.7本章小結
2.8習題
第3章分布式文件系統(tǒng)HDFS
3.1HDFS概念
3.1.1HDFS簡介
3.1.2HDFS相關概念
3.2HDFS體系結構
3.3HDFS文件存儲機制
3.4HDFS的數(shù)據(jù)讀寫過程
3.4.1讀數(shù)據(jù)的過程
3.4.2寫數(shù)據(jù)的過程
3.5HDFS應用實踐
3.5.1HDFS常用命令
3.5.2HDFS的Web界面
3.5.3HDFS常用Java API及應用實例
3.6本章小結
3.7習題
第4章計算系統(tǒng)MapReduce
4.1MapReduce概述
4.1.1MapReduce簡介
4.1.2MapReduce 數(shù)據(jù)類型與格式
4.1.3數(shù)據(jù)類型Writable接口
4.1.4Hadoop序列化與反序列化機制
4.2MapReduce架構
4.2.1數(shù)據(jù)分片
4.2.2MapReduce的集群行為
4.2.3MapReduce作業(yè)執(zhí)行過程
4.3MapReduce接口類
4.3.1MapReduce輸入的處理類
4.3.2MapReduce輸出的處理類
4.4MapReduce應用案例單詞計數(shù)
程序
4.4.1WordCount代碼分析
4.4.2WordCount處理過程
4.5本章小結
4.6習題
第5章分布式數(shù)據(jù)庫HBase
5.1初識HBase
5.1.1HBase的來源
5.1.2HBase的特點
5.1.3HBase的系統(tǒng)架構
5.2HBase安裝與配置
5.2.1HBase運行模式分類
5.2.2Hbase的安裝
5.2.3HBase基本API實例
5.2.4HBase Shell工具使用
5.3Hbase的存儲結構
5.3.1存儲結構中重要模塊
5.3.2HBase物理存儲和邏輯視圖
5.3.3數(shù)據(jù)坐標
5.4HBase的實現(xiàn)原理
5.4.1Hbase的讀寫流程
5.4.2表和Region
5.4.3Region的定位
5.5HBase表結構設計
5.5.1列族定義
5.5.2表設計原則
5.5.3Rowkey設計
5.6本章小結
5.7習題
第6章NoSQL數(shù)據(jù)庫
6.1NoSQL簡介
6.1.1NoSQL的含義
6.1.2NoSQL的產生
6.1.3NoSQL的特點
6.2NoSQL技術基礎
6.2.1一致性策略
6.2.2數(shù)據(jù)分區(qū)與放置策略
6.2.3數(shù)據(jù)復制與容錯技術
6.2.4數(shù)據(jù)的緩存技術
6.3NoSQL的類型
6.3.1鍵值存儲
6.3.2列存儲
6.3.3面向文檔存儲
6.3.4圖形存儲
6.4NoSQL典型工具
6.4.1Redis
6.4.2CouchDB
6.5本章小結
6.6習題
第7章集群計算Spark
7.1深入理解Spark
7.1.1Spark簡介
7.1.2Spark與Hadoop差異
7.1.3Spark的適用場景
7.1.4Spark成功案例
7.2Spark的安裝與配置
7.2.1安裝模式
7.2.2Spark的安裝
7.2.3啟動并驗證Spark
7.3Spark程序的運行模式
7.3.1Spark on Yarn-cluster
7.3.2Spark on Yarn-client
7.4Spark編程實踐
7.4.1啟動Spark Shell
7.4.2Spark RDD基本操作
7.4.3Spark應用程序
7.5Spark的三個典型應用案例
7.5.1詞頻數(shù)統(tǒng)計
7.5.2人口的平均年齡
7.5.3搜索頻率最高的K個關鍵詞
7.6本章小結
7.7習題
第8章流計算Storm
8.1流計算概述
8.1.1流計算的概念
8.1.2流計算與Hadoop
8.1.3流計算框架
8.2開源流計算框架Storm
8.2.1Storm簡介
8.2.2Storm的特點
8.2.3Storm的設計思想
8.2.4Storm的框架設計
8.3實時計算處理流程
8.3.1數(shù)據(jù)實時采集和計算
8.3.2數(shù)據(jù)查詢服務
8.4典型的流引擎Spark Streaming
8.4.1Spark Streaming
8.4.2Storm和Spark Streaming框架
對比
8.5流計算的應用案例電商
實時銷售額的監(jiān)控
8.5.1技術架構
8.5.2技術實現(xiàn)
8.5.3項目預案
8.6本章小結
8.7習題
第9章分布式協(xié)調系統(tǒng)ZooKeeper
9.1ZooKeeper概述
9.1.1ZooKeeper簡介
9.1.2ZooKeeper數(shù)據(jù)模型
9.1.3ZooKeeper特征
9.1.4ZooKeeper工作原理
9.2ZooKeeper的安裝和配置
9.2.1安裝ZooKeeper
9.2.2配置ZooKeeper
9.2.3運行ZooKeeper
9.3ZooKeeper的簡單操作及步驟
9.4ZooKeeper Shell操作
9.4.1ZooKeeper服務命令
9.4.2ZooKeeper客戶端命令
9.5ZooKeeper API操作
9.6ZooKeeper應用案例Master
選舉
9.6.1使用場景及結構
9.6.2編碼實現(xiàn)
9.7本章小結
9.8習題
第10章銷售數(shù)據(jù)分析系統(tǒng)
10.1數(shù)據(jù)采集
10.1.1在Windows下安裝JDK
10.1.2在Windows下安裝Eclipse
10.1.3將WebCollector項目導入
Eclipse
10.1.4在Windows下安裝MySQL
10.1.5連接JDBC
10.1.6運行爬蟲程序
10.2在HBase集群上準備數(shù)據(jù)
10.2.1將數(shù)據(jù)導入到MySQL
10.2.2將MySQL表中的數(shù)據(jù)導入到HBase
表中
10.3安裝Phoenix中間件
10.3.1Phoenix架構
10.3.2解壓安裝Phoenix
10.3.3Phoenix環(huán)境配置
10.3.4使用Phoenix
10.4基于Web的前端開發(fā)
10.4.1將Web前端項目導入Eclipse
10.4.2安裝Tomcat
10.4.3在Eclipse中配置Tomcat
10.4.4在Web瀏覽器中查看執(zhí)行
結果
10.5本章小結
10.6習題
第11章交互式數(shù)據(jù)處理
11.1數(shù)據(jù)預處理
11.1.1查看數(shù)據(jù)
11.1.2數(shù)據(jù)擴展
11.1.3數(shù)據(jù)過濾
11.1.4數(shù)據(jù)上傳
11.2創(chuàng)建數(shù)據(jù)倉庫
11.2.1創(chuàng)建數(shù)據(jù)倉庫的基本命令
11.2.2創(chuàng)建Hive區(qū)分表
11.3數(shù)據(jù)分析
11.3.1基本統(tǒng)計
11.3.2用戶行為分析
11.3.3實時數(shù)據(jù)
11.4本章小結
11.5習題
第12章協(xié)同過濾推薦系統(tǒng)
12.1推薦算法概述
12.1.1基于人口統(tǒng)計學的推薦
12.1.2基于內容的推薦
12.1.3基于協(xié)同過濾的推薦
12.2協(xié)同過濾推薦算法分析
12.2.1基于用戶的協(xié)同過濾推薦
12.2.2基于物品的協(xié)同過濾推薦
12.3Spark MLlib推薦算法應用
12.3.1ALS算法原理
12.3.2ALS的應用設計
12.4本章小結
12.5習題
附錄課后習題答案
參考文獻