Spark大數據分析:核心概念、技術及實踐 Spark大数据分析:核心概念、技术及实践

穆罕默德·古勒 (Mohammed Guller)

  • 出版商: 機械工業
  • 出版日期: 2017-05-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 249
  • 裝訂: 平裝
  • ISBN: 7111565614
  • ISBN-13: 9787111565611
  • 相關分類: Spark大數據 Big-dataData Science
  • 下單後立即進貨 (約4週~6週)

商品描述

本書是關於大數據和Spark的一個簡明手冊。它將助你學習如何用Spark來完成很多大數據分析任務,其中覆蓋了高效利用Spark所需要知道的重要主題:如何使用SparkShell進行交互式數據分析、如何編寫Spark應用、如何在Spark中對大規模數據進行交互分析、如何使用SparkStreaming處理高速數據流、如何使用Spark進行機器學習、如何使用Spark進行圖處理、如何使用集群管理員部署Spark、如何監控Spark應用等。本書還對其他配合Spark一起使用的大數據技術進行了介紹,包括HDFS、Avro、Parquet、Kafka、Cassandra、HBase、Mesos等。本書也對機器學習和圖的概念進行了介紹。

作者簡介

穆罕默德·古勒(Mohammed Guller),Glassbeam的首席架構師,主要負責高級分析和預測分析產品的開發。
他是大數據和Spark專家,經常受邀在與大數據相關的會議上發表演講。
他對於新產品構建、大數據分析和機器學習充滿熱情。加入Glassbeam之前,Mohammed是創始人,並曾就職於IBM和幾個高科技創業公司,成功主導了諸多創新技術產品從概念到發布的全過程。

趙斌,主要從事運維開發、測試開發方面的工作,有豐富的實戰經驗。關注後台開發技術和各種編程語言,對機器學習有濃厚的興趣。
馬景,互聯網開發工程師,畢業於北京航空航天大學。關注領域:數據分析與可視化,以及互聯網開發。他還是果殼網和數盟網翻譯組成員,曾參與翻譯、校對Coursera課程及開源書籍《數據+設計》。

目錄大綱

譯者序
前言
致謝

第1章大數據技術一覽1 
1.1Hadoop2 
1.1.1HDFS3 
1.1.2MapReduce5 
1.1.3Hive5 
1.2數據序列化6 
1.2.1Avro6 
1.2.2Thrift6 
1.2.3ProtocolBuffers7 
1.2.4SequenceFile7 
1.3列存儲7 
1.3.1RCFile8 
1.3. 2ORC8 
1.3.3Parquet9 
1.4消息系統9 
1.4.1Kafka10 
1.4.2ZeroMQ11 
1.5NoSQL12 
1.5.1Cassandra13 
1.5.2HBase13 
1.6分佈式SQL查詢引擎14 
1.6.1Impala14 
1.6.2Presto14 
1.6.3ApacheDrill15 
1.7總結15 

第2章Scala編程16 
2.1函數式編程16 
2.1.1函數17 
2.1.2不可變數據結構18
2.1.3一切皆表達式19 
2.2Scala基礎19 
2.2.1起步20 
2.2.2基礎類型20 
2.2.3變量21 
2.2.4函數21 
2.2.5類24 
2.2.6單例24 
2.2.7樣本類25 
2.2.8模式匹配25 
2.2.9操作符26 
2.2.10特質26 
2.2.11元組27 
2.2.12Option類型27 
2.2.13集合28 
2.3一個單獨的Scala應用程序32 
2.4總結32 

第3章SparkCore33 
3.1概述33 
3.1.1主要特點33 
3.1.2理想的應用程序36 
3.2總體架構37 
3.2.1worker37 
3.2.2集群管理員38 
3.2.3驅動程序38 
3.2.4執行者38 
3.2.5任務38 
3.3應用運行38 
3.3.1術語38 
3.3.2應用運行過程39 
3.4數據源39 
3.5API40 
3.5.1SparkContext40 
3.5.2RDD41
3.5.3創建RDD42 
3.5.4RDD操作43 
3.5.5保存RDD52 
3.6惰性操作53 
3.7緩存54 
3.7.1RDD的緩存方法55 
3.7.2RDD緩存是可容錯的56 
3.7.3緩存內存管理56 
3.8Spark作業56 
3.9共享變量57 
3.9.1廣播變量57 
3.9.2累加器58 
3.10總結59 

第4章使用Sparkshell進行交互式數據分析60 
4.1起步60 
4.1.1下載60 
4.1.2解壓61 
4.1.3運行61 
4.2REPL命令62 
4.3把Sparkshell當成Scalashell使用62 
4.4數值分析63 
4.5日誌分析64 
4.6總結68 

第5章編寫Spark應用69 
5.1Spark中的HelloWorld69 
5.2編譯並運行應用72 
5.2.1sbt72 
5.2.2編譯代碼73 
5.2.3運行應用73 
5.3監控應用75 
5.4調試應用75 
5.5總結76 

第6章SparkStreaming77
6.1SparkStreaming簡介78 
6.1.1SparkStreaming是一個Spark類庫78 
6.1.2總體架構78 
6.1.3數據流來源78 
6.1.4接收器79 
6.1.5目的地79 
6.2API79 
6.2.1StreamingContext80 
6.2.2SparkStreaming應用基本結構82 
6.2.3DStream82 
6.2.4創建DStream83 
6.2.5處理數據流84 
6.2.6輸出操作88 
6.2.7窗口操作91 
6.3一個完整的SparkStreaming應用93 
6.4總結98 

第7章SparkSQL99 
7.1SparkSQL簡介99 
7.1.1和其他Spark庫集成100 
7.1.2可用性100 
7.1.3數據源100 
7.1.4數據處理接口100 
7.1.5與Hive的互操作性101 
7.2性能101 
7.2.1磁盤I/O101 
7.2.2分區102 
7.2.3列存儲102 
7.2.4內存中的列式緩存102 
7.2.5行跳過102 
7.2.6謂詞下推102
7.2.7查詢優化103 
7.3應用104 
7.3.1ETL104 
7.3.2數據可視化104 
7.3.3分佈式JDBC/ODBCSQL查詢引擎105 
7.3.4數據倉庫105 
7.4API106 
7.4.1關鍵抽象106 
7.4.2創建DataFrame109 
7.4. 3在程序中使用SQL/HiveQL處理數據114 
7.4.4使用DataFrameAPI處理數據115 
7.4.5保存DataFrame131 
7.5內置函數133 
7.5.1聚合操作134 
7.5.2集合操作134 
7.5.3日期/時間134 
7.5.4數學135 
7.5.5字符串135 
7.5.6窗口135 
7.6UDF和UDAF135 
7.7一個交互式分析的例子135 
7.8使用SparkSQLJDBC服務器進行交互式分析142 
7.9總結145 

第8章使用Spark進行機器學習146 
8.1機器學習簡介146 
8.1.1特徵147 
8.1.2標籤147 
8.1.3模型148 
8.1.4訓練數據148 
8.1.5測試數據149
8.1.6機器學習應用149 
8.1.7機器學習算法151 
8.1.8超參數160 
8.1.9模型評價160 
8.1.10機器學習的主要步驟162 
8.2Spark機器學習庫162 
8.3MLlib概覽163 
8.3.1與其他Spark庫集成163 
8.3.2統計工具163 
8.3.3機器學習算法163 
8.4MLlibAPI164 
8.4.1數據類型164 
8.4.2算法和模型166 
8.4.3模型評價181 
8.5MLlib示例應用184 
8.5.1數據集184 
8.5 .2目標184 
8.5.3代碼184 
8.6SparkML186 
8.6.1ML數據集187 
8.6.2Transformer187 
8.6.3Estimator187 
8.6.4Pipeline188 
8.6.5PipelineModel188 
8.6.6Evaluator188 
8.6.7網格搜索189 
8.6.8CrossValidator189 
8.7SparkML示例應用189 
8.7.1數據集190 
8.7.2目標190
8.7.3代碼190 
8.8總結195 

第9章使用Spark進行圖處理196 
9.1圖簡介196 
9.1.1無向圖197 
9.1.2有向圖197 
9.1.3有向多邊圖197 
9.1.4屬性圖197 
9.2 GraphX簡介198 
9.3GraphXAPI199 
9.3.1數據抽象199 
9.3.2創建圖200 
9.3.3圖屬性202 
9.3.4圖操作符204 
9.4總結217 

第10章集群管理員218 
10.1獨立集群管理員218 
10.1.1架構219 
10.1.2建立一個獨立集群219 
10.1.3在獨立集群中運行Spark應用221 
10.2ApacheMesos223 
10.2.1架構223 
10.2.2建立一個Mesos集群224 
10.2.3在Mesos集群上運行Spark應用224 
10.3YARN226 
10.3. 1架構226 
10.3.2在YARN集群上運行Spark應用228 
10.4總結”一228
 
第11章監控229 
11.1監控獨立集群229
11.1.1監控Spark master229 
11.1.2監控Spark worker232 
11.2監控Spark應用233 
11.2.1監控一個應用所運行的作業234 
11.2.2監控一個作業的不同階段235 
11.2.3監控一個階段中的任務236 
11.2. 4監控RDD存儲238 
11.2.5監控環境243 
11.2.6監控執行者244 
11.2.7監控Spark流應用244 
11.2.8監控SparkSQL查詢246 
11.2.9監控SparkSQLJDBC/ODBC服務器246 
11.3總結247 
參考文獻248