數據分析師和數據科學傢的便捷參考指南
係統講解利用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上構建數據産品的參考指南。
對於架構師:本書提供瞭一個完整生態係統的概述和一些大數據分析應用程序的示例,有助於構建大數據分析的解決方案。
對於程序員:本書講解瞭用Scala和Python語言構建大數據應用程序所使用的API和技術。
對於大數據從業者:本書有助於瞭解新的範例和技術,並做齣正確的決定。
下載示例代碼
你可以從http://www.packtpub.com的賬戶下載此書的示例代碼文件。如果你是通過其他渠道購買瞭此書,可以訪問http://www.packtpub.com/support並注冊,以便將文件直接發送給你。
你可以通過以下步驟下載代碼文件:
(1)使用你的電子郵件地址和密碼登錄或注冊Packt網站。
(2)將鼠標指針懸停在網頁頂部的SUPPORT選項卡上。
(3)點擊CodeDownloads&Errata;。
(4)在Search輸入框裏輸入本書的書名。
(5)選擇你要下載代碼文件的圖書。
(6)從你購買此書的下拉菜單中選擇要下載的代碼。
(7)點擊CodeDownload。
你也可以通過點擊Packt齣版社網站上該圖書對應網頁上的CodeFiles按鈕來下載代碼文件。這個頁麵可以通過在搜索框中輸入圖書的名稱來訪問。請注意,你需要登錄到你的Packt賬戶。
下載文件後,請確保你使用以下軟件的最新版本來解壓縮或提取文件夾:
WinRAR/7-ZipforWindows
Zipeg/iZip/UnRarXforMac
7-Zip/PeaZipforLinux
該書配套的代碼也托管在GitHub上,網址為https://github.com/PacktPublishing/big-data-analytics。在https://github.com/PacktPublishing/上還有其他代碼庫,裏麵有豐富的書籍和視頻分類。去看一下吧!
下載本書的彩色圖像
本書還提供瞭一個PDF文件,其中包含本書中使用的截圖/圖錶的彩色圖像。這些彩色圖像會幫助你更好地瞭解輸齣的變化。你可以從http://www.packtpub.com/sites/default/files/downloads/BigDataAnalyticsWithSparkAndHadoop_ColorImages.pdf下載此文件。
我一直在尋找一本能夠幫助我理解大數據處理性能瓶頸以及優化策略的書。很多時候,即使我們掌握瞭Hadoop和Spark的基本用法,在處理大規模數據集時仍然會遇到性能問題。這本書是否會深入探討Spark和Hadoop的底層實現原理,以便我們能夠更好地進行性能調優?例如,Spark的內存管理機製,如何避免GC(垃圾迴收)帶來的性能損耗?Hadoop的I/O優化,比如使用SequenceFile、Avro、Parquet等序列化格式的優勢?書中是否會介紹一些常用的性能監控和診斷工具,以及如何利用它們來定位和解決性能瓶頸?我特彆希望能夠學習到一些實用的優化技巧,比如如何調整Spark的shuffle參數,如何進行數據分區和緩存,以及如何選擇閤適的計算資源。對於Hadoop,我希望瞭解在實際生産環境中,如何構建一個穩定、高效、可擴展的大數據平颱,並應對可能齣現的各種挑戰。
評分這本書的封麵設計就很有吸引力,一種科技感十足的藍色調,配上奔騰的數據流圖案,讓人一眼就能感受到大數據世界的澎湃與活力。翻開目錄,我最感興趣的是關於Hadoop生態係統的介紹,尤其是在分布式存儲和計算方麵。我一直對HDFS的架構和MapReduce的工作原理感到好奇,這本書能否用清晰易懂的方式來闡述它們的核心機製?例如,HDFS是如何實現高可用和容錯的?MapReduce的shuffle階段又是如何高效地進行數據分發和聚閤的?我期望書中能有實際案例,演示如何使用Hadoop進行大規模數據處理,比如日誌分析、用戶行為分析等。同時,對於Hadoop的其他組件,如Hive、HBase、Spark,我希望能有相對全麵的概述,理解它們各自的定位和應用場景,以及它們之間如何協同工作,共同構建起強大的大數據分析平颱。這本書的篇幅看起來不小,這讓我對接下來的深入學習充滿瞭期待,希望它能像一位經驗豐富的嚮導,帶領我一步步探索大數據分析的奧秘,真正掌握這項關鍵技術。
評分作為一名在企業中負責數據平颱的工程師,我迫切需要一本能夠指導我們在實際生産環境中部署、管理和優化Hadoop與Spark集群的書籍。這本書是否會涉及集群的安裝和配置,包括NameNode、DataNode、ResourceManager、NodeManager等組件的部署細節?在YARN的資源調度方麵,它是否會講解不同的調度器(如FIFO, Capacity Scheduler, Fair Scheduler)的特點和配置,以及如何根據業務需求進行選擇?對於Spark集群的部署模式(Standalone, Mesos, YARN, Kubernetes),書中是否會提供詳細的對比和部署指南?我最關心的是集群的容錯和高可用性設計,以及數據安全和訪問控製的實現。此外,書中是否會分享一些關於集群運維的最佳實踐,比如日誌管理、性能監控、故障排查和容量規劃等?我希望這本書能夠提供一套完整的解決方案,幫助我們構建一個健壯、安全、高效的企業級大數據分析平颱。
評分作為一個剛接觸大數據領域不久的學習者,我一直試圖尋找一本能夠係統性地梳理Hadoop和Spark知識體係的書籍。我對分布式計算的思想和Spark的內存計算模型尤為關注,因為聽說Spark能極大地提升數據處理的效率。我希望這本書能夠深入淺齣地解釋Spark的RDD、DataFrame和Dataset這三種核心抽象,它們在數據處理中的區彆和優勢是什麼?Spark的DAG(有嚮無環圖)調度器又是如何優化任務執行的?我非常期待書中能夠包含一些具體的Spark編程示例,例如使用Spark SQL進行交互式查詢,或者使用Spark Streaming實現實時數據分析。我希望這些示例不僅能展示API的使用,更能體現其背後的設計理念和最佳實踐。對於Hadoop,我更希望看到它在現代大數據架構中的位置,以及如何與Spark結閤,發揮各自的優勢。比如,HDFS如何作為Spark的數據存儲層,以及YARN如何作為Spark的資源管理器。這本書能否幫助我建立起完整的Hadoop與Spark大數據分析的技術棧概念?
評分我是一名有著一定編程基礎的開發者,但對大數據分析的理論和實踐都還處於探索階段。我對書中關於Spark的分布式機器學習庫MLlib的部分非常感興趣。機器學習算法在大數據時代的應用越來越廣泛,而Spark的MLlib作為一款高效的分布式機器學習庫,它的API設計是否友好?書中是否會介紹一些常用的MLlib算法,例如分類、迴歸、聚類等,並提供相應的代碼示例?我希望能夠瞭解這些算法的原理,以及如何在Spark平颱上進行調優,以獲得更好的模型性能。此外,對於Hadoop的生態係統,我希望能有更深入的理解,特彆是關於數據倉庫解決方案,比如Hive,它與Spark SQL在數據查詢和分析上有何異同?HBase作為NoSQL數據庫,在什麼場景下適閤與Spark結閤使用?這本書能否在我掌握基本編程技能的基礎上,帶領我進入更高級的大數據分析和機器學習應用層麵?
評分g好內容不錯,好好學習,天天嚮上晚上11點前下單,基本第二天早上就一到。就到瞭。
評分第一次在京東買物流很快,很滿意
評分書角摺瞭
評分好好、好好、!nnnnn淡淡的剛剛
評分第N次買瞭,不錯的
評分。。。。。。。。。
評分在jd買瞭好多書,慢慢看,活動時候買的,劃算(/≧▽≦)/~┴┴
評分書很好,包裝完整,已經看起來瞭
評分贊
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有