關(guān)于我們
書單推薦
新書推薦
|
大數(shù)據(jù)技術(shù)
本書從大數(shù)據(jù)分析角度入手, 首先介紹了不同的大數(shù)據(jù)處理模式與代表性的處理系統(tǒng), 其次對(duì)大數(shù)據(jù)分析所應(yīng)用的數(shù)據(jù)挖掘、 機(jī)器學(xué)習(xí)的理論工具給予了介紹, 最后詳細(xì)介紹了典型的大數(shù)據(jù)技術(shù)IBM InfoSphere BigInsights。
本書由3篇共25章組成。 第1篇大數(shù)據(jù)系統(tǒng)基礎(chǔ), 由第1章概述和第2章大數(shù)據(jù)基礎(chǔ)組成。 第2篇大數(shù)據(jù)分析理論基礎(chǔ), 由第3章到第10章組成, 主要介紹了一些概率與統(tǒng)計(jì)方面的基礎(chǔ)知識(shí)、 數(shù)據(jù)挖掘的基本技術(shù)以及機(jī)器學(xué)習(xí)的常用概率化工具。 第3篇大數(shù)據(jù)技術(shù), 由第11章到第25章組成, 全面介紹了IBM InfoSphere BigInsights各個(gè)組件和基本應(yīng)用。
本書可作為高等學(xué)校大數(shù)據(jù)專業(yè)方向以及計(jì)算機(jī)科學(xué)技術(shù)、 軟件工程、 物聯(lián)網(wǎng)工程等信息科學(xué)技術(shù)類專業(yè)的本科教材, 也可作為相關(guān)專業(yè)的技術(shù)人員的參考資料。
信息時(shí)代, 大量的數(shù)據(jù)以前所未有的速度源源不斷地產(chǎn)生。 這是由于物聯(lián)網(wǎng)、 云計(jì)算以及智能設(shè)備的普及等方面信息技術(shù)的發(fā)展所致, 包括互聯(lián)網(wǎng)、 分布式系統(tǒng)等在內(nèi)的各種信息系統(tǒng)以及運(yùn)行在各種信息系統(tǒng)之上的多種應(yīng)用系統(tǒng), 其所采集、 產(chǎn)生、 處理和存儲(chǔ)的數(shù)據(jù)全方位地服務(wù)于社會(huì)、 經(jīng)濟(jì)等各個(gè)層面。 這些數(shù)據(jù)以其量級(jí)巨大、 生成速度極快并且種類繁多的特點(diǎn)造就了現(xiàn)今人們所說的“大數(shù)據(jù)”。
“大數(shù)據(jù)”概念不是突然出現(xiàn)的, 而是信息技術(shù)發(fā)展的結(jié)果, 大數(shù)據(jù)是新信息技術(shù)的寶藏。
大數(shù)據(jù)中隱藏著巨大的機(jī)會(huì)和價(jià)值, 將給許多領(lǐng)域帶來變革性的發(fā)展, 因此大數(shù)據(jù)研究領(lǐng)域吸引了產(chǎn)業(yè)界、 政府和學(xué)術(shù)界的廣泛關(guān)注。 目前, 人們已意識(shí)到, 數(shù)據(jù)分析正日益成為信息經(jīng)濟(jì)的關(guān)鍵因素, 發(fā)現(xiàn)數(shù)據(jù)中新的內(nèi)涵, 并提供個(gè)性化服務(wù)才能使企業(yè)處于經(jīng)濟(jì)競(jìng)爭的有利地位。
相較于傳統(tǒng)的數(shù)據(jù), 人們將大數(shù)據(jù)的特征總結(jié)為5個(gè)“V”, 即體量大(Volume)、 速度快(Velocity)、 模態(tài)多(Variety)、 難辨識(shí)(Veracity)和價(jià)值密度低(Value)。 這五個(gè)特征都對(duì)信息技術(shù)帶來了巨大挑戰(zhàn), 同時(shí)也產(chǎn)生了應(yīng)對(duì)這些挑戰(zhàn)的大數(shù)據(jù)系統(tǒng), 其中以Apache Hadoop為典型代表的技術(shù)架構(gòu), 以及數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)等人工智能技術(shù)在大數(shù)據(jù)方面的應(yīng)用正在逐漸克服這些挑戰(zhàn)。 為了適應(yīng)大數(shù)據(jù)發(fā)展, 深入研究大數(shù)據(jù)系統(tǒng)及其應(yīng)用, 我們結(jié)合多年的科學(xué)研究成果編寫了本書。
從系統(tǒng)構(gòu)成的角度來看, 可以將大數(shù)據(jù)系統(tǒng)分解為三個(gè)層次: 基礎(chǔ)設(shè)施層、 計(jì)算層和應(yīng)用層, 這種分層結(jié)構(gòu)對(duì)于大數(shù)據(jù)系統(tǒng)的分布式演進(jìn)具有非常重要的意義。
1.本書的組成及各篇章內(nèi)容簡介
本書由3篇共25章組成。 本書從大數(shù)據(jù)概念入手, 較為詳細(xì)地介紹了大數(shù)據(jù)系統(tǒng)的基本架構(gòu)和大數(shù)據(jù)的層次, 介紹了大數(shù)據(jù)分析所要應(yīng)用的理論工具, 以IBM InfoSphere BigInsights為主線介紹基于Apache Hadoop各生態(tài)系統(tǒng)的基本應(yīng)用。
(1) 第1篇: 大數(shù)據(jù)系統(tǒng)基礎(chǔ)。
本篇由第1章概述和第2章大數(shù)據(jù)基礎(chǔ)組成。 第1章介紹了大數(shù)據(jù)特性, 給出了大數(shù)據(jù)的幾種定義并深入討論了大數(shù)據(jù)計(jì)算系統(tǒng)帶來的挑戰(zhàn), 以及大數(shù)據(jù)挖掘在多個(gè)領(lǐng)域的價(jià)值。 第2章介紹了大數(shù)據(jù)的基礎(chǔ)架構(gòu)和層次, 大數(shù)據(jù)風(fēng)險(xiǎn)涉及的數(shù)據(jù)安全、 數(shù)據(jù)隱私、 安全成本等問題, 以及大數(shù)據(jù)的一些應(yīng)用案例。
(2) 第2篇: 大數(shù)據(jù)分析理論基礎(chǔ)。
本篇由第3章到第10章組成, 主要介紹了一些概率與統(tǒng)計(jì)方面的基礎(chǔ)知識(shí)、 數(shù)據(jù)挖掘的基本技術(shù)以及機(jī)器學(xué)習(xí)的常用概率化工具。
第3章介紹了概率方面的基礎(chǔ)知識(shí), 也介紹了隨機(jī)變量的變換、 蒙特卡洛逼近和信息論的基礎(chǔ)知識(shí)。
第4章著重介紹了數(shù)據(jù)挖掘的基本概念、 數(shù)據(jù)挖掘的對(duì)象以及數(shù)據(jù)挖掘系統(tǒng)的體系結(jié)構(gòu)、 數(shù)據(jù)挖掘的功能與方法、 數(shù)據(jù)挖掘的過程, 還介紹了決策樹、 分類挖掘方法中的神經(jīng)網(wǎng)絡(luò)和統(tǒng)
計(jì)等方法。
第5章主要介紹了關(guān)聯(lián)挖掘與聚類的基本概念與基本方法, 包括關(guān)聯(lián)挖掘的基本方法、 基于劃分的聚類的kmeans方法、 基于層次的聚類的基本思想和算法。
第6章介紹了狄利克雷多項(xiàng)式模型, 其中包括似然度、 先驗(yàn)分布、 后驗(yàn)分布以及后驗(yàn)預(yù)測(cè)分布; 還介紹了樸素貝葉斯分類器模型, 包括模型擬合和預(yù)測(cè)模型的應(yīng)用等。
第7章介紹了機(jī)器學(xué)習(xí)中的一個(gè)非常重要的模型——高斯模型。 該模型是機(jī)器學(xué)習(xí)中的基本模型; 同時(shí)介紹了高斯判決分析, 主要包括二次判別分析、 線性判別分析(LDA)、 最大似然估計(jì)(MLE)的判決分析以及防止過擬合的策略等知識(shí)。 這些知識(shí)在機(jī)器學(xué)習(xí)中應(yīng)用非常廣泛, 如在分類和聚類中都得到了廣泛應(yīng)用。
第8章主要介紹了線性回歸中的規(guī)范模型、 最大似然估計(jì)、 魯棒線性回歸、 嶺回歸和貝葉斯線性回歸。 線性回歸是統(tǒng)計(jì)學(xué)和(監(jiān)督)機(jī)器學(xué)習(xí)的有力工具。 當(dāng)以核函數(shù)或其他形式的基函數(shù)展開式進(jìn)行擴(kuò)展時(shí), 它還可以對(duì)非線性關(guān)系進(jìn)行建模。
第9章介紹了邏輯回歸模型的擬合, 其中包括最大似然估計(jì)(MLE)、 最速下降算法、 牛頓法、 迭代加權(quán)最小二乘法(IRLS)、 擬牛頓法(變尺度法), 還介紹了貝葉斯邏輯回歸、 在線學(xué)習(xí)及其隨機(jī)優(yōu)化方面的常用在線學(xué)習(xí)算法。
第10章討論了廣義線性模型, 常見的高斯、 伯努利、 均勻、 伽馬等分布大多被稱為指數(shù)函數(shù)簇的廣義分布類, 可以輕易地應(yīng)用任一指數(shù)函數(shù)成員作為類的條件密度來建立生成分類器; 介紹了主成分分析與奇異值分解, 這對(duì)高維數(shù)據(jù)的降維與低維重構(gòu)是非常重要的。
(3) 第3篇: 大數(shù)據(jù)技術(shù)。
本篇是本書需要重點(diǎn)學(xué)習(xí)的部分, 由第11章到第25章組成。 本篇以IBM InfoSphere BigInsights為主線, 全面介紹Hadoop的主要組件。 這些組件包括分布式文件系統(tǒng)(HDFS), Hadoop的編程模型MapReduce, 大數(shù)據(jù)查詢語言JAQL, 大數(shù)據(jù)倉庫Hive與HBase, MapReduce編碼的更高級(jí)別的編程環(huán)境Pig, Hadoop與結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)間傳送批量數(shù)據(jù)的工具Sqoop, 旨在收集、 匯總與將來自不同源的日志數(shù)據(jù)移動(dòng)到中央位置的一種分布式系統(tǒng)Flume, 管理Hadoop工作流的工具Oozie, 用于管理集群同步的工具ZooKeeper, 以及Hadoop的機(jī)器學(xué)習(xí)組件Mahout。
第11章詳細(xì)地介紹了Hadoop的基礎(chǔ)知識(shí), 還介紹了Hadoop的安裝與部署。 由于本書是在IBM InfoSphere BigInsights環(huán)境中學(xué)習(xí)大數(shù)據(jù)技術(shù)的, 因此其需要在Linux環(huán)境下安裝、 部署和使用。 通過對(duì)Hadoop基礎(chǔ)知識(shí)的學(xué)習(xí)與掌握, 為進(jìn)一步學(xué)習(xí)與深入應(yīng)用大數(shù)據(jù)技術(shù)奠定良好的基礎(chǔ)。
第12章介紹了大數(shù)據(jù)系統(tǒng)中的一個(gè)主要系統(tǒng)——InfoSphere BigInsights, 它是基于Hadoop開源代碼而開發(fā)的, 可以幫助企業(yè)和機(jī)構(gòu)理解與分析大量的非結(jié)構(gòu)化信息, 可以在常用的低成本硬件上并行運(yùn)行。
第13章介紹了Hadoop HDFS的架構(gòu)、 Hadoop的文件塊、 常用的HDFS文件命令基本操作。
第14章介紹了NoSQL的概念與特點(diǎn), 還介紹了MongoDB及其在Windows系統(tǒng)上的安裝和簡單的操作與命令。 NoSQL是消除了標(biāo)準(zhǔn)化的SQL的應(yīng)用, NoSQL數(shù)據(jù)庫和管理系統(tǒng)無關(guān), 是無模式的數(shù)據(jù)庫, 而且它不是基于單一模型的, 每個(gè)數(shù)據(jù)庫根據(jù)其目標(biāo)功能不同而采用不同模型。 MongoDB是一個(gè)跨平臺(tái)、 面向文檔的數(shù)據(jù)庫, 具有高性能、 高可用性和簡單的可伸縮性。
第15章介紹了面向列的HBase數(shù)據(jù)庫, 還介紹了具有高可擴(kuò)展性的Cassandra的數(shù)據(jù)庫及其安裝與基本操作。 Cassandra提供了一個(gè)Cassandra查詢語言Shell(cqlsh), 允許用戶與它進(jìn)行溝通。 應(yīng)用cqlsh, 可以進(jìn)行定義模式、 插入數(shù)據(jù), 并且執(zhí)行查詢。
第16章介紹了MapReduce的工作原理及其在終端和Web控制臺(tái)上的運(yùn)行。 同時(shí)較為詳細(xì)地介紹了MapReduce的編程原理, 給出了一個(gè)電影推薦數(shù)據(jù)的MapReduce處理。 MapReduce是一個(gè)編程模型和相關(guān)實(shí)現(xiàn), 用于集群上以并行、 分布式算法處理和生成的大型數(shù)據(jù)集。 一般來說, MapReduce程序處理三個(gè)階段的數(shù)據(jù): map、 shuffle和reduce。
第17章介紹了JAQL和JAQL訪問JSON的數(shù)組和記錄。 JAQL是JavaScript Object Notation或JSON查詢語言。 JAQL為用戶提供簡單的聲明性的語法來處理大型結(jié)構(gòu)化和非傳統(tǒng)的數(shù)據(jù), 可以使用JAQL在分布式文件系統(tǒng)中執(zhí)行諸如選擇、 過濾、 聯(lián)合和分組數(shù)據(jù)等操作。 另外, JAQL還允許在表達(dá)式中編寫和應(yīng)用用戶定義的函數(shù)。 對(duì)于并行功能, JAQL重新編寫了高級(jí)查詢以便進(jìn)行低層MapReduce作業(yè)的操作。
第18章介紹了Hive架構(gòu)與工作流、 數(shù)據(jù)模型、 構(gòu)件及數(shù)據(jù)文件格式。 Hive是Hadoop數(shù)據(jù)倉庫, Hive支持類似于SQL的聲明性語言HiveQL所表達(dá)的查詢。 這些語言被編譯進(jìn)用Hadoop執(zhí)行的MapReduce作業(yè)。 Hive數(shù)據(jù)模型包含數(shù)據(jù)庫(Databases)、 表(Tables)、 分區(qū)(Partitions)和儲(chǔ)桶或聚類(Buckets或Clusters)這些組件。 Hive數(shù)據(jù)文件格式主要有RCFile和ORCFile, 這些格式可以有效地提升Hadoop中數(shù)據(jù)存儲(chǔ)和訪問關(guān)系數(shù)據(jù)的性能。
第19章介紹了Pig編程語言和Pig基本應(yīng)用。 Pig是一種高級(jí)編程語言, 用于分析大型數(shù)據(jù)集。 Pig由Pig Latin編程語言和運(yùn)行環(huán)境兩個(gè)組件構(gòu)成。 Pig有兩個(gè)執(zhí)行模式: 本地模式和MapReduce模式。 在本地模式中, Pig運(yùn)行在單個(gè)的JVM上并使用本地文件系統(tǒng), 這個(gè)模式僅適合于用Pig分析小數(shù)據(jù)集; 在MapReduce模式下, 將Pig Latin編寫的查詢轉(zhuǎn)換為MapReduce作業(yè), 在Hadoop集群上運(yùn)行。
第20章介紹了BigSheets的界面, 給出了7個(gè)練習(xí), 使讀者能夠熟練掌握BigSheets的基本應(yīng)用。 BigSheets使用了類似電子表格的界面, 可以建模、 過濾、 合并和統(tǒng)計(jì)從多個(gè)源頭采集的數(shù)據(jù)。
第21章主要介紹了Big SQL框架、 Big SQL的基本應(yīng)用、 Big SQL命令行界面(JSqsh)的使用, 使用Eclipse處理Big SQL, 創(chuàng)建項(xiàng)目和SQL腳本文件, 創(chuàng)建并執(zhí)行查詢, 查詢Big SQL數(shù)據(jù)與從BigSheets導(dǎo)出的數(shù)據(jù)以及處理非傳統(tǒng)數(shù)據(jù)。 Big SQL表可以包含復(fù)雜的數(shù)據(jù)類型, 如結(jié)構(gòu)和數(shù)組, 此外, 還有幾個(gè)基礎(chǔ)存儲(chǔ)支持機(jī)制, 包括分隔文件、 序列文件格式的Hive表、 RCFile格式等。
第22章介紹了Hadoop中的Sqoop, 它主要用于從Teradata、 Oracle等數(shù)據(jù)庫中提取結(jié)構(gòu)化數(shù)據(jù)。 Sqoop旨在支持從結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)系統(tǒng)向HDFS批量導(dǎo)入數(shù)據(jù)。 Sqoop是基于連接器架構(gòu)的, 該架構(gòu)支持插件以此提供與新的外部系統(tǒng)連接, 數(shù)據(jù)倉庫連接器、 文檔系統(tǒng)連接器和關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)連接器分別從數(shù)據(jù)倉庫、 文檔系統(tǒng)和RDBMS中導(dǎo)入/導(dǎo)出數(shù)據(jù)。
第23章介紹了Flume的流與源、 Flume的基本架構(gòu)與代理。 Flume是一個(gè)工具/服務(wù)器/數(shù)據(jù)采集機(jī)制, 可用于收集匯總并將大量的流數(shù)據(jù)從各種源傳輸?shù)郊惺降臄?shù)據(jù)存儲(chǔ)區(qū)。 Flume具有不同級(jí)別的可靠性, 即使在多個(gè)節(jié)點(diǎn)發(fā)生故障的情況下也可保證交付。 Flume在源與接收器間傳送數(shù)據(jù)。 Flume接收器包括HDFS和HBase。 Flume也可以用于傳輸事件數(shù)據(jù), 包括網(wǎng)絡(luò)流量數(shù)據(jù)、 社交媒體網(wǎng)站產(chǎn)生的數(shù)據(jù)和電子郵件信息等。
第24章首先簡要地介紹了R語言的特性以及Big R提供的功能, 其次介紹了R語言的一些基礎(chǔ)知識(shí), 給出了一些編程示例。 R語言是功能強(qiáng)大的可視化圖形工具, 可用于業(yè)務(wù)分析、 科學(xué)研究、 商業(yè)智能、 軟件開發(fā)和統(tǒng)計(jì)報(bào)告等多種專業(yè)領(lǐng)域。
第25章簡要地介紹了Oozie、 ZooKeeper和Mahout, 給出了Mahout的幾個(gè)示例, 可以采用Mahout實(shí)現(xiàn)機(jī)器學(xué)習(xí)的常規(guī)應(yīng)用。 Oozie是Hadoop的工作流調(diào)度程序, 它包含工作流引擎和協(xié)調(diào)器引擎兩個(gè)部分。 Oozie為不同類型的操作提供了支持。 ZooKeeper是一個(gè)開源的Apache項(xiàng)目, 它提供了集中化的基礎(chǔ)設(shè)施和服務(wù), 能使跨集群進(jìn)行同步。 ZooKeeper維護(hù)大集群環(huán)境中所需的公共對(duì)象。 Mahout是用于生成分布式或可擴(kuò)展機(jī)器學(xué)習(xí)算法的免費(fèi)實(shí)現(xiàn), 主要集中在協(xié)同過濾、 聚類和分類領(lǐng)域。 其中許多實(shí)現(xiàn)使用了Apache Hadoop平臺(tái)。
2. 教學(xué)建議
本書作為教材, 篇幅及內(nèi)容較多, 需要較多的課時(shí)進(jìn)行教學(xué)。 建議在實(shí)際教學(xué)中將本書的內(nèi)容分為理論教學(xué)與實(shí)驗(yàn)教學(xué)兩個(gè)方面進(jìn)行, 其中理論教學(xué)課時(shí)為48(或32)學(xué)時(shí), 實(shí)驗(yàn)教學(xué)為48學(xué)時(shí), 共計(jì)96(或80)學(xué)時(shí)。
在教學(xué)中可以根據(jù)具體的教學(xué)目標(biāo)對(duì)本書的內(nèi)容予以篩選, 如開設(shè)了“數(shù)據(jù)挖掘”“機(jī)器學(xué)習(xí)”以及“模式識(shí)別”課程的專業(yè)可以跳過第2篇, 僅將第2篇作為這些課程的參考內(nèi)容來擴(kuò)展學(xué)生的知識(shí)面。 對(duì)于沒有開設(shè)上述課程的專業(yè), 教師在具體教學(xué)中可簡單地講授第2篇的基本概念和重要結(jié)論, 具體數(shù)學(xué)推導(dǎo)可以跳過。
本書中有大量的操作, 并提供了這些操作的代碼與示例運(yùn)行結(jié)果的界面。 示例代碼用方
框包圍起來, 代碼也出現(xiàn)在了界面截圖上, 在應(yīng)用這些代碼進(jìn)行驗(yàn)證時(shí), 請(qǐng)將兩者結(jié)合起來一同使用。
本書可作為高等學(xué)校大數(shù)據(jù)專業(yè)方向以及計(jì)算機(jī)科學(xué)技術(shù)、 軟件工程、 物聯(lián)網(wǎng)工程等信息科學(xué)技術(shù)類專業(yè)的本科教材, 也可作為從事相關(guān)專業(yè)的技術(shù)人員的參考資料。
本書由曾憲武統(tǒng)稿。 曾憲武編著了第1、 2篇, 第3篇中第13章到第24章; 包淑萍編著了第3篇中第11、 12、 25章。 本書中示例與代碼的編寫與調(diào)試工作由徐美嬌、 侯孝振、 倪振宇、 衣麗萍同學(xué)完成。 本書在編著過程中得到了青島科技大學(xué)物聯(lián)網(wǎng)工程教研室老師的大力協(xié)助, 也得到了西安電子科技大學(xué)出版社副總編毛紅兵老師的關(guān)懷與幫助, 在此表示衷心的感謝。
由于編著者的水平有限, 書中難免有不當(dāng)之處, 敬請(qǐng)讀者給予批評(píng)指正!
第1篇 大數(shù)據(jù)系統(tǒng)基礎(chǔ)
第1章 概述 2
1.1 大數(shù)據(jù)發(fā)展現(xiàn)狀與歷史 2
1.1.1 國外發(fā)展現(xiàn)狀 2
1.1.2 國內(nèi)發(fā)展現(xiàn)狀 3
1.1.3 大數(shù)據(jù)發(fā)展歷史 4
1.2 大數(shù)據(jù)定義 5
1.3 大數(shù)據(jù)應(yīng)用 6
1.4 大數(shù)據(jù)挑戰(zhàn) 7
1.5 大數(shù)據(jù)機(jī)器學(xué)習(xí) 9
1.5.1 數(shù)據(jù)流學(xué)習(xí) 9
1.5.2 深度學(xué)習(xí) 9
1.5.3 增量學(xué)習(xí)和集成學(xué)習(xí) 10
1.5.4 粒度計(jì)算 11
1.6 大數(shù)據(jù)與Hadoop生態(tài)系統(tǒng) 11
1.6.1 數(shù)據(jù)存儲(chǔ)層——HDFS和HBase 12
1.6.2 數(shù)據(jù)處理層 13
1.6.3 數(shù)據(jù)查詢層——Pig、 JAQL和Hive 14
1.6.4 數(shù)據(jù)訪問層——數(shù)據(jù)提。⊿qoop、 Flume和Chukwa) 15
1.6.5 數(shù)據(jù)流——Storm和Spark 17
1.6.6 存儲(chǔ)管理——HCatalog 18
1.6.7 數(shù)據(jù)分析 19
1.6.8 管理層——協(xié)同與工作流(ZooKeeper、 Avro和Oozie) 20
1.6.9 管理層——系統(tǒng)部署(Ambari、 Whirr、 BigTop和Hue) 21
1.7 Hadoop的發(fā)行版本 22
1.7.1 IBM InfoSphere BigInsights 22
1.7.2 Cloudera 22
1.7.3 Hortonworks數(shù)據(jù)平臺(tái) 23
1.7.4 Amazon Elastic MapReduce 23
1.7.5 MapR 24
1.7.6 GreenPlum’s Pivotal HD 24
1.7.7 Oracle大數(shù)據(jù)設(shè)備 24
1.7.8 Windows Azure HDInsight 24
小結(jié) 25
思考與練習(xí)題 25
第2章 大數(shù)據(jù)基礎(chǔ) 26
2.1 大數(shù)據(jù)架構(gòu)的演進(jìn)及其層次 26
2.2 數(shù)據(jù)生成 27
2.2.1 數(shù)據(jù)源 28
2.2.2 數(shù)據(jù)屬性 29
2.3 大數(shù)據(jù)類型概述 29
2.3.1 大數(shù)據(jù)類型 29
2.3.2 非結(jié)構(gòu)化數(shù)據(jù)典型例子 30
2.4 數(shù)據(jù)獲取 30
2.4.1 數(shù)據(jù)采集與數(shù)據(jù)傳輸 31
2.4.2 數(shù)據(jù)預(yù)處理 33
2.5 數(shù)據(jù)存儲(chǔ) 34
2.5.1 云計(jì)算 34
2.5.2 數(shù)據(jù)管理框架 35
2.6 數(shù)據(jù)分析 38
2.6.1 數(shù)據(jù)分析的目的和分類 38
2.6.2 常用的數(shù)據(jù)分析方法 39
2.7 大數(shù)據(jù)分析 40
2.7.1 結(jié)構(gòu)化數(shù)據(jù)分析 40
2.7.2 文本分析 40
2.7.3 Web數(shù)據(jù)分析 41
2.7.4 多媒體數(shù)據(jù)分析 42
2.7.5 社交網(wǎng)絡(luò)數(shù)據(jù)分析 42
2.7.6 移動(dòng)數(shù)據(jù)分析 44
2.7.7 移動(dòng)商業(yè)智能 44
小結(jié) 45
思考與練習(xí)題 45
第2篇 大數(shù)據(jù)分析理論基礎(chǔ)
第3章 概率與統(tǒng)計(jì)概要 48
3.1 概率論簡介 48
3.1.1 離散隨機(jī)變量 48
3.1.2 基本規(guī)則 48
3.1.3 貝葉斯法則 49
3.1.4 獨(dú)立和條件獨(dú)立 50
3.1.5 連續(xù)隨機(jī)變量 50
3.1.6 分位數(shù) 51
3.1.7 均值與方差 51
3.2 常用的離散分布 52
3.2.1 二項(xiàng)式分布與伯努利分布 52
3.2.2 多項(xiàng)式分布與Multinoulli分布 52
3.2.3 泊松分布 53
3.2.4 經(jīng)驗(yàn)分布 53
3.3 常見的連續(xù)分布 54
3.3.1 高斯(正態(tài))分布 54
3.3.2 退化概率密度函數(shù) 54
3.3.3 拉普拉斯分布 55
3.3.4 伽馬分布 55
3.3.5 貝塔分布 56
3.3.6 帕累托分布 56
3.4 聯(lián)合概率分布 57
3.4.1 協(xié)方差與相關(guān) 57
3.4.2 多變量高斯分布 58
3.4.3 多變量的t分布 58
3.4.4 狄利克雷分布 58
3.5 隨機(jī)變量的變換 59
3.5.1 線性變換 59
3.5.2 通用變換 59
3.5.3 中心極限定理 61
3.6 蒙特卡洛逼近 61
3.6.1 MC方法 62
3.6.2 圓周率的蒙特卡洛積分估計(jì) 62
3.6.3 蒙特卡洛逼近的精度 62
小結(jié) 63
思考與練習(xí)題 63
第4章 數(shù)據(jù)挖掘基礎(chǔ) 66
4.1 數(shù)據(jù)挖掘的基本概念 66
4.1.1 數(shù)據(jù)挖掘的含義 66
4.1.2 數(shù)據(jù)挖掘?qū)ο? 67
4.1.3 數(shù)據(jù)挖掘系統(tǒng)的體系結(jié)構(gòu) 68
4.2 數(shù)據(jù)挖掘的功能與方法 69
4.2.1 數(shù)據(jù)挖掘的功能 69
4.2.2 數(shù)據(jù)挖掘的過程 72
4.3 決策樹 74
4.3.1 基本概念 74
4.3.2 決策樹的算法與工作流程 75
4.4 分類挖掘 76
4.4.1 貝葉斯分類與樸素貝葉斯分類 76
4.4.2 k近鄰方法 77
小結(jié) 78
思考與練習(xí)題 78
第5章 關(guān)聯(lián)挖掘與聚類 79
5.1 關(guān)聯(lián)挖掘 79
5.1.1 基本概念 79
5.1.2 關(guān)聯(lián)挖掘問題、 類型與基本方法 80
5.2 聚類 81
5.2.1 聚類的基本概念 81
5.2.2 基于劃分的聚類 85
5.2.3 基于層次的聚類 86
小結(jié) 87
思考與練習(xí)題 88
第6章 離散數(shù)據(jù)的生成模型 89
6.1 貝塔二項(xiàng)式模型 89
6.1.1 似然度 89
6.1.2 先驗(yàn)分布 89
6.1.3 后驗(yàn)分布 90
6.1.4 后驗(yàn)預(yù)測(cè)分布 91
6.2 狄利克雷多項(xiàng)式模型 91
6.2.1 似然度 91
6.2.2 先驗(yàn)分布 92
6.2.3 后驗(yàn)分布 92
6.2.4 后驗(yàn)預(yù)測(cè)分布 93
6.3 樸素貝葉斯分類器 93
6.3.1 模型擬合 93
6.3.2 預(yù)測(cè)模型的應(yīng)用 94
小結(jié) 95
思考與練習(xí)題 95
第7章 高斯模型 97
7.1 高斯模型基礎(chǔ) 97
7.2 高斯判決分析 99
7.3 聯(lián)合高斯分布的推理 103
7.4 線性高斯系統(tǒng) 107
7.5 MVN的參數(shù)推斷 110
7.5.1 μ的后驗(yàn)分布 110
7.5.2 Σ的后驗(yàn)分布 111
7.5.3 μ與Σ的后驗(yàn)分布 112
小結(jié) 116
思考與練習(xí)題 116
第8章 線性回歸 119
8.1 規(guī)范模型 119
8.2 最大似然估計(jì)(最小平方) 119
8.3 魯棒線性回歸 121
8.4 嶺回歸 123
8.5 貝葉斯線性回歸 125
8.5.1 后驗(yàn)分布計(jì)算 125
8.5.2 后驗(yàn)預(yù)測(cè)計(jì)算 126
8.5.3 σ2未知時(shí)的貝葉斯推理 126
小結(jié) 128
思考與練習(xí)題 128
第9章 邏輯回歸 132
9.1 規(guī)范模型 132
9.2 模型擬合 132
9.2.1 MLE 133
9.2.2 最速下降 133
9.2.3 牛頓法 135
9.2.4 迭代加權(quán)最小二乘法(IRLS) 135
9.2.5 擬牛頓法(變尺度法) 136
9.2.6 正則化 137
9.2.7 多類邏輯回歸 137
9.3 貝葉斯邏輯回歸 139
9.3.1 拉普拉斯逼近 139
9.3.2 BIC推導(dǎo) 140
9.3.3 邏輯回歸的高斯逼近 140
9.3.4 后驗(yàn)預(yù)測(cè)逼近 141
9.3.5 殘差分析(異常值檢測(cè)) 144
9.4 在線學(xué)習(xí)與隨機(jī)優(yōu)化 144
9.4.1 在線學(xué)習(xí)與遺憾最小化 145
9.4.2 隨機(jī)優(yōu)化與風(fēng)險(xiǎn)最小化 145
9.4.3 LMS算法 147
9.4.4 感知算法 147
9.4.5 貝葉斯觀點(diǎn) 148
小結(jié) 148
思考與練習(xí)題 149
第10章 廣義線性模型與指數(shù)函數(shù)簇 151
10.1 指數(shù)函數(shù)簇 151
10.1.1 定義 151
10.1.2 對(duì)數(shù)配分函數(shù) 153
10.1.3 指數(shù)函數(shù)簇的MLE 154
10.1.4 指數(shù)函數(shù)簇的貝葉斯分析 155
10.1.5 指數(shù)函數(shù)簇的最大熵推導(dǎo) 157
10.2 廣義線性模型(GLMs) 158
10.2.1 基礎(chǔ)知識(shí) 158
10.2.2 ML和MAP估計(jì) 160
10.3 概率回歸 160
10.4 排序?qū)W習(xí) 162
10.4.1 逐點(diǎn)的方法 163
10.4.2 成對(duì)法 163
10.4.3 成列法 164
10.4.4 排序的損失函數(shù) 165
10.5 主成分分析(PCA)與奇異值分解 166
10.5.1 主成分分析 166
10.5.2 奇異值分解 169
小結(jié) 170
思考與練習(xí) 171
第3篇 大數(shù)據(jù)技術(shù)
第11章 Hadoop基礎(chǔ) 174
11.1 大數(shù)據(jù)與Hadoop 174
11.2 Hadoop框架的主要組件 175
11.3 用Hadoop分析大數(shù)據(jù) 176
11.4 Hadoop分布式文件系統(tǒng)與集群 179
11.4.1 HDFS 179
11.4.2 Hadoop集群 180
11.5 通用并行文件系統(tǒng)(IBM GPFS) 181
11.6 MapReduce引擎——JobTracker與TaskTracker 182
11.7 Hadoop的云端托管 183
11.8 Hadoop的工作階段與安裝部署 184
11.8.1 工作階段 184
11.8.2 安裝部署 184
11.8.3 常用模式安裝 186
小結(jié) 192
思考與練習(xí)題 193
第12章 IBM InfoSphere BigInsights 194
12.1 IBM InfoSphere BigInsights簡介與環(huán)境 194
12.1.1 幾個(gè)角色 194
12.1.2 參考架構(gòu) 196
12.2 生產(chǎn)環(huán)境的硬件規(guī)格及加速器 200
12.2.1 硬件要求 200
12.2.2 IBM大數(shù)據(jù)加速器 200
12.3 管理大數(shù)據(jù)環(huán)境——概述與入門練習(xí) 202
小結(jié) 212
思考與練習(xí)題 213
第13章 Hadoop分布式文件系統(tǒng) 214
13.1 Hadoop分布式文件系統(tǒng)(HDFS)基本知識(shí)及架構(gòu) 214
13.1.1 NameNode 215
13.1.2 DataNode與輔助NameNode 215
13.1.3 JobTracker與TaskTracker 217
13.2 其他文件系統(tǒng)與Hadoop的文件塊 217
13.3 HDFS文件命令 218
13.4 Hadoop分布式文件系統(tǒng)的基本操作 222
13.4.1 初步操作 222
13.4.2 Hadoop分布式文件系統(tǒng)的終端操作與行命令界面 224
13.4.3 Hadoop分布式文件系統(tǒng)的Web控制臺(tái)操作 230
小結(jié) 235
思考與練習(xí)題 235
第14章 NoSQL數(shù)據(jù)管理與MongoDB 236
14.1 NoSQL數(shù)據(jù)管理 236
14.1.1 文檔模型 236
14.1.2 鍵/值模型 238
14.1.3 列或?qū)捔心P? 238
14.1.4 圖存儲(chǔ)模型 239
14.2 一致性或最終一致性與NoSQL的優(yōu)點(diǎn) 240
14.3 MongoDB 242
14.3.1 MongoDB的基本概念 242
14.3.2 MongoDB的一致性和可用性 245
14.4 在Windows上安裝MongoDB 246
14.5 管道與MongoDB常用操作 247
14.5.1 MongoDB中的管道 247
14.5.2 副本在MongoDB中的工作 248
14.5.3 分拆 249
14.5.4 分拆轉(zhuǎn)儲(chǔ)MongoDB數(shù)據(jù) 250
小結(jié) 251
思考與練習(xí)題 252
第15章 HBase與Cassandra 253
15.1 HDFS與HBase 253
15.1.1 HBase簡介 253
15.1.2 HDFS與HBase的比較 254
15.1.3 HBase架構(gòu) 254
15.1.4 HBase數(shù)據(jù)模型 255
15.1.5 HBase映射 256
15.2 Cassandra 259
15.2.1 Cassandra概要 259
15.2.2 Cassandra中的數(shù)據(jù)復(fù)制與組件 260
15.2.3 Cassandra查詢語言與數(shù)據(jù)模型 261
15.3 Cassandra安裝與操作 263
15.3.1 Cassandra預(yù)安裝設(shè)置 263
15.3.2 cqlsh啟動(dòng)與命令 267
15.3.3 Cassandra文檔化Shell命令 269
小結(jié) 279
思考與練習(xí)題 280
第16章 MapReduce 281
16.1 MapReduce概要 281
16.2 MapReduce基本工作原理及應(yīng)用 282
16.2.1 基本工作原理 282
16.2.2 MapReduce編程示例——電影推薦 284
16.2.3 MapReduce中JobTracker的運(yùn)用 285
16.3 運(yùn)行MapReduce程序 286
16.3.1 啟動(dòng)FuleSystem(fs) Shell 286
16.3.2 在終端運(yùn)行MapReduce程序 287
16.3.3 在Web控制臺(tái)上運(yùn)行MapReduce程序 292
16.3.4 MapReduce的用戶界面 295
小結(jié) 297
思考與練習(xí)題 297
第17章 JAQL——基于JSON的查詢語言 298
17.1 概述 298
17.2 用JAQL訪問JSON的數(shù)組和記錄 299
17.2.1 設(shè)置與運(yùn)行JAQL 299
17.2.2 JAQL的常見用法和語法 302
17.2.3 JAQL的輸入/輸出 305
17.2.4 常見的JAQL基本應(yīng)用 306
實(shí)驗(yàn)一 核心運(yùn)算符的操作 324
實(shí)驗(yàn)二 核心運(yùn)算符的應(yīng)用 325
小結(jié) 325
思考與練習(xí)題 336
第18章 Hive——Hadoop數(shù)據(jù)倉庫 327
18.1 概述 327
18.2 Hive構(gòu)件及數(shù)據(jù)文件格式 330
18.2.1 Hive構(gòu)件 330
18.2.2 Hive數(shù)據(jù)文件格式 331
18.3 用Hive訪問Hadoop數(shù)據(jù) 332
18.3.1 訪問Hive BeeLine 命令行界面(CLI) 333
18.3.2 使用Hive中的數(shù)據(jù)庫 333
18.4 Hive中的表 339
18.5 Hive運(yùn)算符和函數(shù) 342
18.6 Hive DML 344
18.6.1 裝載數(shù)據(jù) 345
18.6.2 運(yùn)行查詢 347
18.6.3 導(dǎo)出數(shù)據(jù) 352
18.6.4 EXPLAIN 354
18.7 使用Hive數(shù)據(jù)倉庫 354
18.7.1 Hive存儲(chǔ)格式 354
18.7.2 HiveQL——數(shù)據(jù)操作 362
18.7.3 查詢 365
18.7.4 Hive的內(nèi)置函數(shù) 369
小結(jié) 370
思考與練習(xí)題 371
第19章 Pig——高級(jí)編程環(huán)境 372
19.1 概述 372
19.2 Pig編程語言 374
19.2.1 Pig編程步驟 374
19.2.2 Pig Latin 374
19.2.3 特殊數(shù)據(jù)類型 375
19.2.4 數(shù)據(jù)類型 377
19.3 Pig基本應(yīng)用的驗(yàn)證與練習(xí) 379
19.4 Pig關(guān)系運(yùn)算符的驗(yàn)證 384
19.5 Pig評(píng)估函數(shù)的驗(yàn)證 386
19.6 Pig中的腳本格式與本地模式中的Pig 390
19.6.1 腳本格式 390
19.6.2 本地模式 391
19.6.3 Grunt Shell命令 394
19.6.4 Grunt Shell實(shí)用命令 394
小結(jié) 397
思考與練習(xí)題 398
第20章 BigSheets 399
20.1 創(chuàng)建InfoSphere BigInsights項(xiàng)目 400
20.2 通過創(chuàng)建子工作簿來裁剪數(shù)據(jù) 400
20.3 從兩個(gè)工作簿中組合數(shù)據(jù) 402
20.4 通過分組數(shù)據(jù)創(chuàng)建列 403
20.5 在BigSheets圖中查看數(shù)據(jù) 404
20.6 在圖表中可視化結(jié)果和優(yōu)化結(jié)果 404
20.7 從工作簿中導(dǎo)出數(shù)據(jù) 406
小結(jié) 407
思考與練習(xí)題 408
第21章 Big SQL——IBM NoSQL 409
21.1 概述 409
21.2 Big SQL的基本應(yīng)用 411
21.2.1 啟動(dòng)VMware鏡像 411
21.2.2 連接IBM Big SQL服務(wù)器 413
21.2.3 使用Big SQL命令行界面(JSqsh) 415
21.2.4 發(fā)送JSqsh命令以及進(jìn)行Big SQL查詢 423
21.3 使用Eclipse處理Big SQL 428
21.3.1 啟動(dòng)Web控制臺(tái)驗(yàn)證BigInsights服務(wù)的開啟和運(yùn)行 429
21.3.2 在Eclipse中創(chuàng)建一個(gè)Big SQL連接 230
21.4 創(chuàng)建項(xiàng)目和SQL腳本文件 435
21.5 創(chuàng)建并執(zhí)行查詢 438
21.6 查詢Big SQL的結(jié)構(gòu)化數(shù)據(jù) 439
21.7 查詢Big SQL的數(shù)據(jù)與從BigSheets導(dǎo)出的數(shù)據(jù) 446
21.7.1 查詢Big SQL的數(shù)據(jù) 446
21.7.2 用Big SQL處理從BigSheets導(dǎo)出的數(shù)據(jù) 448
21.8 處理非傳統(tǒng)數(shù)據(jù) 449
21.8.1 注冊(cè)SerDe 450
21.8.2 創(chuàng)建、 填充以及查詢使用SerDe的表 450
小結(jié) 451
思考與練習(xí)題 452
第22章 Sqoop——從異構(gòu)數(shù)據(jù)源導(dǎo)入數(shù)據(jù) 453
22.1 概述 453
22.2 導(dǎo)入表 455
22.3 導(dǎo)出 461
22.4 創(chuàng)建并維護(hù)Sqoop作業(yè) 462
22.5 Sqoop——Codegen工具 464
22.6 Sqoop——eval 465
22.7 Sqoop——數(shù)據(jù)庫清單 466
22.8 Sqoop——表清單 467
小結(jié) 467
思考與練習(xí)題 467
第23章 Flume——大數(shù)據(jù)實(shí)時(shí)流 469
23.1 概述 469
23.2 Apache Flume的流與源 470
23.2.1 Flume中的數(shù)據(jù)流 471
23.2.2 流/日志數(shù)據(jù) 471
23.3 Flume的基本架構(gòu)與代理的其他組件 472
23.3.1 Flume的基本架構(gòu) 472
23.3.2 Flume代理的其他組件 473
23.4 Apache Flume的環(huán)境 474
23.4.1 命名組件 474
23.4.2 Source、 Sink和Channel的描述 475
23.5 HDFS的put命令及其HDFS存在的問題 476
23.5.1 put命令 476
23.5.2 HDFS具有的問題 477
實(shí)驗(yàn) 使用Flume將數(shù)據(jù)移動(dòng)到HDFS中 477
小結(jié) 481
思考與練習(xí)題 482
第24章 R編程——可視化與圖形工具 483
24.1 概述 483
24.2 R語言入門 483
24.2.1 在Windows系統(tǒng)中安裝R語言 483
24.2.2 使用R語言進(jìn)行數(shù)據(jù)圖表繪制 488
小結(jié) 497
思考與練習(xí)題 498
第25章 Hadoop的其他組件——Oozie、 ZooKeeper和Mahout 499
25.1 Hadoop工作流調(diào)度程序Oozie簡介 499
25.2 ZooKeeper——跨集群的同步化 500
25.2.1 Apache ZooKeeper簡介 500
25.2.2 ZooKeeper在Hadoop中的地位 501
25.2.3 分布式應(yīng)用程序的挑戰(zhàn) 501
25.2.4 ZooKeeper的工作 502
25.2.5 ZooKeeper的益處與架構(gòu) 502
25.2.6 分層命名空間 504
25.2.7 znode的類型、 會(huì)話與Watches(手表) 505
25.3 Mahout——Hadoop的機(jī)器學(xué)習(xí) 505
25.3.1 Apache Mahout簡介 505
25.3.2 Mahout的特點(diǎn) 506
25.3.3 Mahout的應(yīng)用 507
25.3.4 Mahout中的機(jī)器學(xué)習(xí) 507
小結(jié) 511
思考與練習(xí)題 512
參考文獻(xiàn) 513
你還可能感興趣
我要評(píng)論
|