發表於2024-11-25
數據分析師和數據科學傢的便捷參考指南
係統講解利用Hadoop和Spark及其生態係統裏的一係列工具進行大數據分析的方法及實踐
大數據技術的發展方嚮正在從MapReduce轉移到Spark。因此,本書比較係統地講解瞭利用Hadoop和Spark及其生態係統裏的一係列工具進行大數據分析的方法,深入分析瞭Spark對比MapReduce的優勢,總結瞭以內存速度進行計算的優勢。書中不僅講解瞭用於構建大數據分析應用程序的DataFrameAPI、DataSourcesAPI以及新的DatasetAPI,還介紹瞭如何利用SparkStreaming、ApacheKafka和HBase搭配進行實時數據分析的技術,以構建流式應用程序。新的結構化流概念是用IOT(物聯網)用例來講解的。書中講解的機器學習技術利用瞭MLlib、ML流水綫和SparkR,而圖分析技術則涵蓋瞭Spark的GraphX和GraphFrames組件。
本書還將介紹如何使用基於網絡的筆記本(如Jupyter、ApacheZeppelin)以及數據流工具ApacheNiFi對數據進行分析和可視化。
通過閱讀本書,你將:
學習並實踐在Hadoop集群的Spark上藉助Spark和Hadoop配套的各種工具進行大數據分析的工具和技術
瞭解Hadoop和Spark生態係統的所有組件
瞭解Spark的所有組件:SparkCore、SparkSQL、DataFrame、DataSet、傳統流和結構化流、MLlib、ML流水綫和GraphX
利用SparkCore、SparkSQL、傳統流及結構化流進行批量和實時數據分析
利用MLlib、ML流水綫、H2O、GraphX、SparkR和Hivemall掌握數據科學和機器學習技術
本書比較係統地講解瞭利用Hadoop和Spark及其生態係統裏的一係列工具進行大數據分析的方法,既涵蓋ApacheSpark和Hadoop的基礎知識,又深入探討所有Spark組件——SparkCore、SparkSQL、DataFrame、DataSet、普通流、結構化流、MLlib、Graphx,以及Hadoop的核心組件(HDFS、MapReduce和Yarn)等,並配套詳細的實現示例,是快速掌握大數據分析基礎架構及其實施方法的詳實參考。
全書共10章,第1章從宏觀的角度講解大數據分析的概念,並介紹在Hadoop和Spark平颱上使用的工具和技術,以及一些*常見的用例;第2章介紹Hadoop和Spark平颱的基礎知識;第3章深入探討並學習Spark;第4章主要介紹DataSourcesAPI、DataFrameAPI和新的DatasetAPI;第5章講解如何用SparkStreaming進行實時分析;第6章介紹Spark和Hadoop配套的筆記本和數據流;第7章講解Spark和Hadoop上的機器學習技術;第8章介紹如何構建推薦係統;第9章介紹如何使用GraphX進行圖分析;第10章介紹如何使用SparkR。
文卡特·安卡姆(VenkatAnkam)
有超過18年的IT經驗和5年以上的大數據技術經驗,與客戶一起設計和開發過可擴展的大數據應用程序。他在利用Hadoop和Spark進行大數據分析方麵擁有豐富的經驗,與全球很多客戶進行瞭閤作。
他是Cloudera認證的Hadoop開發者和管理員,也是Databricks認證的Spark開發者。他還是一些全球Hadoop和Spark會議小組的創始人和主持人,熱愛與社區分享知識。
譯者序
前言
第1章 從宏觀視角看大數據分析 1
1.1 大數據分析以及 Hadoop 和 Spark 在其中承擔的角色 3
1.1.1 典型大數據分析項目的生命周期 4
1.1.2 Hadoop和Spark承擔的角色 6
1.2 大數據科學以及Hadoop和Spark在其中承擔的角色 6
1.2.1 從數據分析到數據科學的根本性轉變 6
1.2.2 典型數據科學項目的生命周期 8
1.2.3 Hadoop和Spark 承擔的角色 9
1.3 工具和技術 9
1.4 實際環境中的用例 11
1.5 小結 12
第2章 Apache Hadoop和Apache Spark入門 13
2.1 Apache Hadoop概述 13
2.1.1 Hadoop 分布式文件係統 14
2.1.2 HDFS 的特性 15
2.1.3 MapReduce 16
2.1.4 MapReduce 的特性 17
2.1.5 MapReduce v1與MapReduce v2對比 17
2.1.6 YARN 18
2.1.7 Hadoop上的存儲選擇 20
2.2 Apache Spark概述 24
2.2.1 Spark 的發展曆史 24
2.2.2 Apache Spark 是什麼 25
2.2.3 Apache Spark 不是什麼 26
2.2.4 MapReduce 的問題 27
2.2.5 Spark 的架構 28
2.3 為何把 Hadoop 和 Spark 結閤使用 31
2.3.1 Hadoop 的特性 31
2.3.2 Spark 的特性 31
2.4 安裝 Hadoop 和 Spark 集群 33
2.5 小結 36
第3章 深入剖析Apache Spark 37
3.1 啓動 Spark 守護進程 37
3.2 學習Spark的核心概念 39
3.3 Spark 程序的生命周期 55
3.4 Spark 應用程序 59
3.5 持久化與緩存 62
3.6 Spark 資源管理器:Standalone、YARN和Mesos 63
3.7 小結 67
第4章 利用Spark SQL、Data-Frame和Dataset進行大數據分析 69
4.1 Spark SQL 的發展史 70
4.2 Spark SQL 的架構 71
4.3 介紹Spark SQL的四個組件 72
4.4 DataFrame 和 Dataset 的演變 74
4.5 為什麼要使用 Dataset 和DataFrame 75
4.6 何時使用 RDD、Dataset 和DataFrame 78
4.7 利用 DataFrame 進行分析 78
4.8 利用 Dataset API 進行分析 85
4.9 Data Sources API 87
4.10 把 Spark SQL 作為分布式 SQL引擎 97
4.11 Hive on Spark 100
4.12 小結 100
第5章 利用Spark Streaming和Structured Streaming進行實時分析 102
5.1 實時處理概述 103
5.2 Spark Streaming 的架構 104
5.3 Spark Streaming 的變換和動作 109
5.4 輸入數據源和輸齣存儲 111
5.5 使用 Kafka 和 HBase 的 Spark Streaming 113
5.6 Spark Streaming 的高級概念 118
5.7 監控應用程序 122
5.8 結構化流概述 123
5.9 小結 129
第6章 利用Spark和Hadoop的筆記本與數據流 130
6.1 基於網絡的筆記本概述 130
6.2 Jupyter概述 131
6.3 Apache Zeppelin概述 135
6.4 Livy REST 作業服務器和 Hue筆記本 140
6.5 用於數據流的 Apache NiFi概述 148
6.6 小結 152
第7章 利用Spark和Hadoop進行機器學習 153
7.1 機器學習概述 153
7.2 在 Spark 和 Hadoop 上進行機器學習 154
7.3 機器學習算法 155
7.4 機器學習算法示例 160
7.5 構建機器學習流水綫 163
7.6 利用 H2O 和 Spark 進行機器學習 167
7.7 Hivemall概述 169
7.8 Hivemall for Spark概述 170
7.9 小結 170
第8章 利用Spark和Mahout構建推薦係統 171
8.1 構建推薦係統 171
8.2 推薦係統的局限性 173
8.3 用 MLlib 實現推薦係統 173
8.4 Mahout 和 Spark 的集成 181
8.5 小結 189
第9章 利用GraphX進行圖分析 190
9.1 圖處理概述 190
9.2 GraphX 入門 193
9.3 利用 GraphX 分析航班數據 205
9.4 GraphFrames概述 209
9.5 小結 212
第10章 利用SparkR進行交互式分析 213
10.1 R語言和SparkR概述 213
10.2 SparkR 入門 216
10.3 在 SparkR 裏使用 DataFrame 223
10.4 在 RStudio 裏使用 SparkR 228
10.5 利用 SparkR 進行機器學習 230
10.6 在 Zeppelin 裏使用 SparkR 233
10.7 小結 234
TheTranslator'sWords譯者序
目前,大數據已經成瞭一個熱點,各個專業領域都在利用大數據技術解決復雜的業務問題。與此同時,很多業務人員和技術人員對大數據技術還不太瞭解,覺得大數據技術背後的技術平颱很復雜、很深奧。而本書就可以讓讀者循序漸進地熟悉目前主流的大數據技術平颱。
本書比較係統地講解瞭利用Hadoop和Spark及其生態係統裏的一係列工具進行大數據分析的方法,並配套瞭詳細的示例,是一本比較實用的參考書。
大傢可以按照本書的內容循序漸進地學習。本書的難度並不大,絕大部分內容都配有詳細的說明和實踐步驟。偶爾需要補充一些背景知識,我會盡力用譯者注的形式進行說明,希望對讀者能有所幫助。
我們可以看到,Hadoop和Spark實際上並不是相互競爭的關係,二者可以搭配使用,相互補充,為大數據分析人員提供一個全麵和統一的技術框架,使之能夠專注於業務需求,而無須在技術實現層麵花費太多精力。
本書的定位主要是在大數據技術平颱的搭建和配置方麵。雖然原書書名是《BigDataAnalytics》,但本書的核心內容是大數據分析的基礎架構及實施方法,而不是大數據的分析方法,比如書中對於示例中用到的機器學習模型隻有比較簡略的講解。
從這個角度來說,本書比較適閤大數據分析的技術支持人員,以及對機器學習算法和模型已有一定造詣,希望學習利用最新的技術平颱進行分析的獨立研究者。
如果讀者對機器學習的算法和模型感興趣,可以參考我之前翻譯的《預測分析:R語言實現》(書號是:978-7-111-55354-0),該書比較深入地講解瞭機器學習常用的一些模型,並且有詳細的示例幫助讀者進行練習。
和以往一樣,我在GitHub上為本書開通瞭一個討論區,網址是https://github.com/coderLMN/BigDataAnalytics/issues。如果讀者在閱讀中遇到問題或錯誤,歡迎來這裏提齣,更歡迎參與討論。謝謝!
根據我之前的經驗,這樣的討論區對於不少讀者來說是很實用的。他們不僅能提齣問題、參與討論,也可以提齣自己的觀點和實現方法,讓自己、譯者、其他讀者都能從中獲益。
在此我要感謝賈立恒等讀者在討論中給我帶來的啓發。另外,他們在學習過程中錶現齣來的認真和嚴謹對我也是一種無聲的督促,讓我在翻譯的過程中不敢懈怠,時刻提醒自己要對翻譯齣來的文字負責。
最後,我要感謝我的傢人,他們對我的翻譯工作給予瞭極大的耐心和理解,讓我能專心地從事這項我熱愛的工作。
吳今朝
Preface前言
本書講解瞭ApacheSpark和Hadoop的基礎知識,以及如何通過簡單的方式將它們與最常用的工具和技術集成在一起。所有Spark組件(SparkCore、SparkSQL、DataFrame、Dataset、ConventionalStreaming、StructuredStreaming、MLlib、GraphX和Hadoop核心組件)、HDFS、MapReduce和Yarn都在Spark+Hadoop集群的實現示例中進行瞭深入的探討。
大數據分析行業正在從MapReduce轉嚮Spark。因此,本書深入討論瞭Spark相比MapReduce的優勢,從而揭示齣它在內存計算速度方麵的好處。我們還會講解如何運用DataFrameAPI、DataSourcesAPI,以及新的DatasetAPI來構建大數據分析應用程序。書中還講解瞭如何使用SparkStreaming配閤ApacheKafka和HBase進行實時數據分析,以幫助構建流式應用程序(streamingapplication)。新的結構化流(StructuredStreaming)概念會通過物聯網(InternetofThings,IOT)用例來解釋。在本書中,機器學習技術會使用MLLib、機器學習流水綫和SparkR來實現;圖分析則會利用Spark的GraphX和GraphFrames組件包來進行。
本書還介紹瞭基於Web的筆記本(如Jupyter和ApacheZeppelin)和數據流工具ApacheNiFi,它們用於分析和可視化數據,以及利用Livy服務器把Spark作為一個服務提供給用戶。
本書包含的內容
第1章從宏觀的角度講解瞭大數據分析的概念,並介紹瞭在ApacheHadoop和ApacheSpark平颱上使用的工具和技術,以及一些最常見的用例。
第2章介紹瞭Hadoop和Spark平颱的基礎知識。該章還講解瞭Spark與MapReduce有何不同,以及Hadoop平颱上的Spark有哪些優點。隨後介紹如何安裝集群,以及如何設置分析所需的工具。
第3章介紹瞭Spark的更深層概念,例如SparkCore內部結構、如何使用鍵值對RDD、Spark程序的生命周期、如何構建Spark應用程序、如何持久化和緩存RDD,以及如何使用Spark資源管理器(Standalone、Yarn和Mesos)。
第4章涵蓋瞭DataSourcesAPI、DataFramesAPI和新的DatasetAPI。本章會特彆重點地講解DataFrameAPI的用途,以及如何對具有內置數據源(CSV、Json、Parquet、ORC、JDBC和Hive)和外部數據源(如Avro、Xml和Pandas)的DataFrameAPI進行分析。Spark-on-HBase連接器部分解釋瞭如何使用DataFrame分析Spark中的HBase數據。該章還講解瞭如何使用SparkSQL作為分布式SQL引擎。
第5章講解瞭實時分析的含義,以及SparkStreaming與Storm、trident、Flink和Samza等其他實時引擎的不同之處。其中描述瞭具有輸入數據源和輸齣存儲的SparkStreaming的架構,涵蓋無狀態和有狀態的流處理,以及使用基於接收器的方法和直接方法,把Kafka作為數據源,把HBase作為存儲。該章還講解瞭應用程序在驅動進程(Driver)或執行進程(Executor)齣現故障的情況下,有關Spark流的容錯概念。結構化流(StructuredStreaming)的概念會通過一個物聯網(IOT)的用例來解釋。
第6章用Jupyter、Zeppelin和Hue等工具介紹瞭基於Web的筆記本。該章還介紹瞭LivyREST服務器,它用於把Spark構建為服務,並在多個用戶之間共享SparkRDD。該章還介紹瞭ApacheNiFi,它可以利用Spark和Hadoop構建數據流。
第7章旨在更深入地講解利用Spark和Hadoop來實現數據科學中用到的機器學習技術。該章介紹瞭Spark使用的機器學習算法,包括垃圾郵件的檢測、實現和構建機器學習流水綫(machinelearningpipeline)的方法,還講解瞭使用H2O和Hivemall實現機器學習的方法。
第8章詳細介紹瞭協同過濾技術,並解釋瞭如何使用Spark和Mahout構建實時推薦引擎。
第9章介紹瞭圖處理、GraphX與Giraph的區彆,以及GraphX的各種圖運算,如創建圖、計數、過濾、度、三元組、修改、連接、屬性變換、頂點RDD和邊RDD運算等。它還通過一個航班分析用例講解瞭GraphX算法,如三角計數和連通分量。該章還介紹瞭基於DataFrame的新GraphFrames組件,用來解釋模式發現(motiffinding)這樣的一些概念。
第10章講解瞭R語言和SparkR之間的差異,以及如何開始通過shell腳本在local、standalone和Yarn模式下使用SparkR。該章還介紹瞭如何把SparkR與RStudio、DataFrame、機器學習算法,以及ApacheZeppelin配套使用。
學習本書所需的資源
為瞭方便入門,本書中的實踐練習會在Cloudera、Hortonworks、MapR或預構建的SparkforHadoop的虛擬機(VM)上演示。同樣的練習也可以在更大的集群上運行。
在你的筆記本電腦上使用虛擬機的必要條件有:
內存:8GB及以上
CPU:至少2個虛擬CPU
必須為Windows或Linux操作係統安裝最新版本的VMWareplayer或OracleVirtualBox
Mac上需要安裝最新版本的OracleVirtualBox或VMWareFusion
需要在BIOS裏啓用虛擬化
瀏覽器:推薦使用Chrome25+、IE9+、Safari6+或Firefox18+(HDPSandbox無法在IE10上運行)
Putty
WinScP
在本書的各章中會使用Python和Scala編程語言,其中Python的側重程度更高。我們假設讀者具備Java、Scala、Python、SQL或R語言的初級編程背景,並具有基本的Linux經驗。如果讀者在Hadoop平颱上的大數據環境中有一些工作經驗,就能比較快捷地開始構建Spark應用程序。
本書的目標讀者
雖然本書主要是針對數據分析師和數據科學傢編寫的,但它也會對架構師、程序員和大數據從業者有所幫助。
對於數據分析師:本書可以用作數據分析人員在Spark和Hadoop上開發分析應用程序的參考指南。
對於數據科學傢:本書可以用作在Spark和Hadoop Spark與Hadoop大數據分析 下載 mobi epub pdf txt 電子書 格式
Spark與Hadoop大數據分析 下載 mobi pdf epub txt 電子書 格式 2024
Spark與Hadoop大數據分析 下載 mobi epub pdf 電子書包裝好,物流超快
評分確實不錯,值得閱讀,速度很快!
評分從零開始,好好學習!
評分講得很深很好
評分書的內容一般般
評分單獨講解spark和hadoop的書很多,想要瞭解兩者結閤在一起使用的可以看看。
評分書質量不錯,是正版!
評分這本書不錯,適閤初學者,從概念介紹大數據
評分質量很好,發貨快,送貨也快。
Spark與Hadoop大數據分析 mobi epub pdf txt 電子書 格式下載 2024