大數據分布式計算課程是大數據方向應用統計專業碩士學生的專業必修課,通過本課程的學習使學生能夠掌握目前大數據挖掘領域常用的并行計算方法,加深學生對統計并行計算的理解,培養學生使用在現代并行架構下利用統計方法深入挖掘大數據中的數據結構并能解決一些實際問題的能力。
導語_點評_推薦詞
李豐 中央財經大學統計與數學學院碩士生導師,院長助理。瑞典斯德哥爾摩大學統計學系統計學博士。研究方向與興趣:大數據與復雜模型、貝葉斯推斷與統計計算、計量經濟與預測方法、多元模型等。曾獲國際貝葉斯協會青年旅行獎勵、瑞典Knut and Alice Wallenberg 基金會獎勵。任中國統計教育學會高等教育分會副秘書長。金融工程與風險管理國際研討會執行秘書等。
目錄
第1章 統計分析與并行計算
1.1 并行計算與并行計算機
1.2 統計計算的并行原理||以矩陣乘法為例
1.3 基于R 的單機并行計算
1.4 基于Python 的單機并行計算
1.5 大數據背景下的數據采集和存儲
1.6 參考文獻
第2章 Hadoop 基礎
2.1 Hadoop 歷史、生態系統
2.2 Hadoop 的分布式文件系統(HDFS)
2.3 MapReduce 工作原理
2.4 Hadoop 上運行MapReduce
2.5 MapReduce 實例: 分層隨機抽樣
2.6 MapReduce 實例: 聚類分析
2.7 參考文獻
第3章 基于Hadoop 的分布式算法和模型實現
3.1 R 中實現Hadoop 分布式計算
3.2 Mahout 與大數據機器學習
3.3 利用Mahout 進行數據挖掘
3.4 Mahout 實例: Logistics 回歸和隨機森林分類算法
3.5 Mahout 實例: 隨機森林的分布式實現
3.6 參考文獻
第4章 統計模型的MapReduce 實現詳解
4.1 泊松回歸模型: 付費搜索廣告分析
4.2 判別分析: 氣象因素對霧霾影響分析
4.3 分塊Logistics 回歸
4.4 文本分類
4.5 樸素貝葉斯模型
4.6 嶺回歸模型
4.7 推薦系統
4.8 參考文獻
第5章 分布式文件訪問與計算
5.1 Hive 基礎
5.2 HiveQL 數據定義(DDL)
5.3 HBase
5.4 Hive 實例: FoodMart 案例
5.5 Hive 實例: Hive Streaming 交互計算
5.6 參考文獻
第6章 Spark 與統計模型
6.1 Spark 簡介
6.2 Spark 工作原理介紹
6.3 Pyspark 命令介紹
6.4 Spark 實例: 通過Word Count 了解Spark 工作流程
6.5 Spark 實例: 二分類學習
6.6 Spark 實例: 決策樹模型
6.7 參考文獻
附錄A Hadoop 安裝運行
A.1 單機偽分布式安裝
A.2 全分布式集群
附錄B Mahout 安裝與運行
附錄C Hive 安裝運行
C.1 準備
C.2 安裝Hive
C.3 配置Hive
附錄D HBase 安裝運行
D.1 安裝配置HBase
D.2 啟動HBase
前言
本書的編寫受益于中央財經大學聯合中國人民大學、北京大學、中國科學院大學和首都經濟貿易大學五所高校與政府部門和產業界聯合共建的大數據分析碩士培養協同創新平臺。我有幸作為該平臺主要課程設計和講授的教師之一, 負責大數據分析方向研究生課程\大數據分布式計算" 的建設和教學。本教材是以該課程2014|2015 年的教學內容和講義輔以教學案例為藍本編寫的。
目前市面上與大數據相關的計算類書籍有很多, 但是均面向計算機相關專業人員。有的側重于大數據分布式平臺Hadoop 或者Spark 的架構, 有的側重于大數據計算相關計算機語言介紹, 有的側重于大數據平臺的系統開發, 但是針對大數據分析最為重要和骨髓部分之一的統計模型, 相關實踐類書籍還相對較少。
本書側重于統計和機器學習模型在大數據分布式平臺的應用, 從案例入手, 介紹常見統計模型的大數據分布式計算原理。基于單機共享內存背景開發的統計軟件很難直接應用于分布式存儲的海量數據。對于初學者而言, 在大數據平臺下, 即便是開發簡單的回歸模型或者邏輯斯蒂模型都非常困難, 更不用說復雜的統計、機器學習算法, 這直接阻礙了高效的統計模型在大數據中的開發和部署。
考慮到數據相關工作者在企業實際策略開發和建模中R 語言與Python 語言是基礎語言, 為了方便相關讀者快速入門, 本書的主要語言采用R 語言和Python 語言, 但是本書中提到的大數據建模思想是不受語言限制的, 讀者可以根據自己擅長的語言實現相關模型的大數據開發。
與傳統的大數據計算類書籍不同, 本書的側重點是統計模型的實際案例解決, 因此本書每章均附有較完整的統計案例。考慮到市面上對于大數據平臺的搭建和配置書籍已經很多,而且對于企業而言, 這樣的平臺往往已經很完善, 本書淡化了該部分, 感興趣的讀者可以參考相關書籍或者本書的附錄。
本書按照如下結構組織: 第1 章介紹大數據分布式計算的背景和基于R 語言和Python語言的單機并行原理, 讓讀者熟悉分布式的基本概念。第2 章介紹目前流行的大數據分布式計算框架Hadoop 的歷史、文件存儲系統以及大數據分布式計算的各個擊破原理, 即MapRe-duce。與Hadoop 相關的安裝配置參見附錄A。第3 章介紹現有大數據分布式平臺中常見的統計模型的原理以及案例分析。與之相關的Mahout 安裝和配置參見附錄B。第4 章以多個案例的形式介紹如何在大數據平臺開發常見統計模型。第5 章介紹分布式文件系統的訪問和操作。與此相關的Hive、HBase 的安裝參見附錄C 和附錄D。第6 章對學有余力的讀者介紹Spark 平臺下統計分析的基礎, 并配有PySpark 使用基礎和基于Scala 語言的案例。附錄E 介紹Spark 和Scala 的安裝和配置。
在此要特別感謝中國人民大學統計學院呂曉玲老師以及李天博、王小寧、丁維悅、曹昕、李榮慶、王張浩、王高斌同學在本書的編寫過程中對文字和內容的大力貢獻。感謝參加五校大數據分析方向研究生課程的同學對本書案例的貢獻, 他們是成慧敏、陳思聰、陳晞、劉利恒、劉智彬、魏詩韻、吳雅雯、辛思、張楚妍、張詩玉、趙哲匯、鄭巧筠、朱述政。沒有呂老師和幾位同學的協助, 就沒有《大數據分布式計算與案例》一書的最終及時成稿。感謝百度大數據部高級工程師康雁飛博士、中央財經大學統計與數學學院方劍和劉靜同學對本書的認真校對。
由于編寫時間倉促和本人水平有限, 書中的錯誤和紕漏一定有很多, 懇請讀者不吝指出以便作出修正。