spark學習及環境配置

http://dblab.xmu.edu.cn/blog/spark/算法

子雨大數據之Spark入門教程

大數據技術原理與應用

子雨大數據之Spark入門
掃一掃訪問本博客
【版權聲明】博客內容由廈門大學數據庫實驗室擁有版權,未經容許,請勿轉載!版權全部,侵權必究!編程

Spark最初誕生於美國加州大學伯克利分校(UC Berkeley)的AMP實驗室,是一個可應用於大規模數據處理的快速、通用引擎。2013年,Spark加入Apache孵化器項目後,開始得到迅猛的發展,現在已成爲Apache軟件基金會最重要的三大分佈式計算系統開源項目之一(即Hadoop、Spark、Storm)。Spark最初的設計目標是使數據分析更快——不只運行速度快,也要能快速、容易地編寫程序。爲了使程序運行更快,Spark提供了內存計算,減小了迭代計算時的IO開銷;而爲了使編寫程序更爲容易,Spark使用簡練、優雅的Scala語言編寫,基於Scala提供了交互式的編程體驗。雖然,Hadoop已成爲大數據的事實標準,但其MapReduce分佈式計算模型仍存在諸多缺陷,而Spark不只具有Hadoop MapReduce所具備的優勢,且解決了Hadoop MapReduce的缺陷。Spark正以其結構一體化、功能多元化的優點逐漸成爲當今大數據領域最熱門的大數據計算平臺。

Spark支持使用Scala、Java、Python和R語言進行編程。因爲Spark採用Scala語言進行開發,所以,建議採用Scala語言進行Spark應用程序的編寫。Scala是一門現代的多範式編程語言,平滑地集成了面向對象和函數式語言的特性,旨在以簡練、優雅的方式來表達經常使用編程模式。Scala語言的名稱來自於「可伸展的語言」,從寫個小腳本到創建個大系統的編程任務都可勝任。Scala運行於Java平臺(JVM,Java 虛擬機)上,併兼容現有的Java程序。
數組

可是,Scala編程語言的學習曲線相對比較陡峭,尤爲是,目前不少高校教學大多采用Java等面嚮對象語言,而Scala則融入了許多函數式編程思惟,面向對象編程和函數式編程,是兩種大相徑庭的編程風格,所以,給教師和學生學習Scala語言形成了很大的障礙。數據結構

筆者做爲「中國高校大數據課程公共服務平臺」的建設者和負責人,一直致力於爲全國高校教師和學生快速學習大數據知識提供輔助,下降大數據知識學習門檻,大幅節約大數據學習時間,加快推進全國高校大數據課程的大規模普及。「中國高校大數據課程公共服務平臺」(平臺主頁)目前已經成長爲國內高校大數據教學知名品牌,年訪問量超過100萬次,爲教師和學生提供了大數據教學資源一站式服務,包括課程教材、講義PPT、學習指南、備課指南、授課視頻、實驗指南、技術資料和師資培訓等。在2013年5月到2016年9月,平臺重點建設了與《大數據技術原理與應用》(教材官網)入門級大數據教材配套的各類教學資源,爲高校開設大數據導論課程奠基了較好的基礎。架構

可是,《大數據技術原理與應用》課程只能做爲導論級課程,高校課程體系還應該包括更多高級課程,好比機器學習、Spark、NoSQL、R語言、Hadoop高級編程、流數據處理、大數據應用與案例等。所以,從2016年9月開始,筆者開始帶領廈門大學數據庫實驗室團隊,建設「Spark入門教程」教學資源,做爲大數據學習探路先鋒,尋找出一條學習Spark技術的捷徑,下降學習難度,節省學習時間,輔助高校教師順利開設Spark課程。機器學習

本教程採用Scala語言編寫Spark應用程序,在知識安排上,首先學習Scala編程,而後再學習Spark應用程序開發。編程語言

廈門大學研究生課程《大數據處理技術Spark》

歡迎點擊這裏訪問林子雨老師主講廈門大學研究生課程《大數據處理技術Spark》2017春季學期班級主頁,包含講義PPT等資料分佈式

Spark課程綜合實驗案例

案例1:淘寶雙11數據分析與預測

Spark課程實驗案例:淘寶雙11數據分析與預測課程案例,由廈門大學數據庫實驗室團隊開發,旨在知足全國高校大數據教學對實驗案例的迫切需求。本案例涉及數據預處理、存儲、查詢和可視化分析等數據處理全流程所涉及的各類典型操做,涵蓋Linux、MySQL、Hadoop、Hive、Sqoop、Eclipse、ECharts、Spark等系統和軟件的安裝和使用方法。案例適合高校(高職)大數據教學,能夠做爲學生學習大數據課程後的綜合實踐案例。經過本案例,將有助於學生綜合運用大數據課程知識以及各類工具軟件,實現數據全流程操做。各個高校能夠根據本身教學實際需求,對本案例進行補充完善。
點擊這裏訪問案例主頁ide

案例2:Spark+Kafka構建實時分析Dashboard

大數據課程實驗案例:Spark+Kafka構建實時分析Dashboard案例,由廈門大學數據庫實驗室團隊開發,旨在知足全國高校大數據教學對實驗案例的迫切需求。本案例涉及數據預處理、消息隊列發送和接收消息、數據實時處理、數據實時推送和實時展現等數據處理全流程所涉及的各類典型操做,涵蓋Linux、Spark、Kafka、Flask、Flask-SocketIO、Highcharts.js、sockert.io.js、PyCharm等系統和軟件的安裝和使用方法。案例適合高校(高職)大數據教學,能夠做爲學生學習大數據課程後的綜合實踐案例。經過本案例,將有助於學生綜合運用大數據課程知識以及各類工具軟件,實現數據全流程操做。各個高校能夠根據本身教學實際需求,對本案例進行補充完善。
點擊這裏訪問案例主頁
2017暑假Spark師資培訓班

點擊這裏報名參加2017年8月7日-13日第6期全國高校大數據課程教師培訓交流班(Spark高級研修班,貴陽)

[教程目錄]

從2016年10月31日開始連載,歡迎關注。

第一部分:快學Scala

第一章 Scala簡介
第二章 Scala安裝
第三章 Scala基礎
第1節 聲明值和變量
第2節 基本數據類型和操做
第3節 Range
第4節 打印語句
第5節 讀寫文件
第四章 控制結構
第1節 if條件表達式
第2節 while循環
第3節 for循環
第五章 數據結構
第1節 數組
第2節 列表
第3節 元組
第4節 集
第5節 映射
第6節 迭代器
第六章 類
第七章 對象
第八章 繼承
第九章 特質
第十章 模式匹配
第十一章 函數式編程
第1節 函數定義和高階函數
第2節 針對集合的操做
第2.1節 遍歷操做
第2.2節 map操做和flatMap操做
第2.3節 filter操做
第2.4節 reduce操做
第2.5節 fold操做
第3節 函數式編程實例WordCount

Spark有不一樣的版本,並且版本一直在升級,咱們只要學習其中一個版本便可。截至2017年3月,Spark已經更新到2.0以上版本。
下面的第二部分是Spark速成(Spark2.1.0版本),第三部分是Spark速成(Spark1.6.2版本),讀者能夠選擇其中一個版本學習,建議學習最新2.1.0版本。

第二部分:Spark速成(Spark2.1.0版本)

Spark官網截至2017年3月發佈的最新版本是Spark2.1.0,建議讀者學習Spark2.1.0版本。
第1章 Spark的設計與運行原理
1.1 Spark簡介
1.2 Spark運行架構
1.3 RDD的設計與運行原理
1.4 Spark的部署模式
第2章 Spark的安裝與使用
2.1 Spark的安裝與使用
2.2 第一個Spark應用程序:WordCount
2.3 使用開發工具Intellij idea編寫Spark應用程序
2.3.1 使用開發工具Intellij idea編寫Spark應用程序(Scala+Maven)
2.3.2 使用開發工具Intellij idea編寫Spark應用程序(Scala+SBT)
2.4 使用開發工具Eclipse編寫Spark應用程序
2.4.1 使用開發工具Eclipse編寫Spark應用程序(Scala+Maven)
2.4.2 使用開發工具Eclipse編寫Spark應用程序(Scala+SBT)
2.5 Spark集羣環境搭建
2.6 在集羣上運行Spark應用程序
第3章 Spark編程基礎
3.1 RDD編程
3.2 鍵值對RDD
3.3 共享變量
3.4 數據讀寫
3.4.1 文件數據讀寫
3.4.2 讀寫HBase數據

第4章 Spark SQL
4.1 Spark SQL簡介
4.2 DataFrame與RDD的區別
4.3 DataFrame的建立
4.4 從RDD轉換獲得DataFrame
[第4.5節 讀取和保存數據]
4.5.1 讀寫Parquet(DataFrame)
4.5.2 經過JDBC鏈接數據庫(DataFrame)
4.5.3 鏈接Hive讀寫數據

第5章 Spark Streaming
5.1 流計算簡介
5.2 Spark Streaming簡介
第5.3節 DStream操做
5.3.1 DStream操做概述
第5.3.2節 輸入源
第5.3.2.1節 基本輸入源
5.3.2.1.1 文件流
5.3.2.1.2 套接字流
5.3.2.1.3 RDD隊列流
第5.3.2.2節 高級數據源
5.3.2.2.1 Apache Kafka
5.3.2.2.2 Apache Flume
5.3.3 轉換操做
5.3.4 輸出操做

第6章 Spark MLlib
6.1 Spark MLlib簡介
6.2 機器學習工做流
6.2.1 機器學習工做流(ML Pipelines) 
6.2.2 構建一個機器學習工做流
6.3 特徵抽取、轉化和選擇
6.3.1 特徵抽取:TF-IDF
6.3.2 特徵抽取:Word2Vec
6.3.3 特徵抽取:CountVectorizer
6.3.4 特徵變換:標籤和索引的轉化
6.3.5 特徵選取:卡方選擇器
6.4 分類與迴歸
6.4.1 邏輯斯蒂迴歸分類器
6.4.2 決策樹分類器
6.5 聚類算法
6.4.1 KMeans聚類算法
6.4.2 高斯混合模型(GMM)聚類算法
6.6 推薦算法
6.5.1 協同過濾算法
6.7 機器學習參數調優
6.7.1 模型選擇和超參數調整

第7章 Spark GraphX
7.1 圖計算簡介
7.2 Spark GraphX 簡介
7.3 Spark GraphX 圖操做
7.4 Spark GraphX算法實例

Spark速成(Spark2.1.0版本),未完,待續……

第三部分:Spark速成(Spark1.6.2版本)

本部份內容是Spark1.6.2版本,建議學習上面第二部分的Spark2.1.0版本。
第一章 Spark簡介
第二章 Spark安裝
第三章 Spark運行架構
第四章 RDD的設計與運行原理
第五章 Spark的部署模式
第六章 第一個Spark應用程序:WordCount
第七章 RDD編程
[第八章] 鍵值對RDD
[補充] 共享變量
第九章 數據讀寫
[第9.1節] 文件數據讀寫
第9.2節 讀寫HBase數據
[第十章] Spark SQL
第10.1節 Spark SQL簡介
第10.2節 DataFrame
第10.2.1節 DataFrame與RDD的區別
第10.2.2節 DataFrame的建立
第10.2.3節 從RDD轉換獲得DataFrame
第10.2.4節 讀取和保存數據
第10.2.4.1節 讀寫Parquet
第10.2.4.2節 經過JDBC鏈接數據庫
第10.2.4.3節 鏈接Hive讀寫數據

[第十一章]Spark Streaming
第11.1節 流計算簡介
第11.2節 Spark Streaming簡介
第11.3節 DStream操做
第11.3.0節 DStream操做概述
第11.3.1節 輸入源
第11.3.1.1節 基本輸入源
第11.3.1.1.1節 文件流
第11.3.1.1.2節 套接字流
第11.3.1.1.3節 RDD隊列流
第11.3.1.2節 高級數據源
第11.3.1.2.1節 Apache Kafka
第11.3.2節 轉換操做
第11.3.3節 輸出操做

第十二章 Spark MLlib
第12.1節 Spark MLlib簡介
第12.2節 spark.mllib庫
第12.2.1節 MLlib基本數據類型(1)
第12.2.2節 MLlib基本數據類型(2)
第12.2.3節 基本的統計工具(1)
第12.2.4節 基本的統計工具(2)
第12.2.5節 降維操做
第12.2.5.1節 奇異值分解(SVD)
第12.2.5.2節 主成分分析(PCA)
第12.2.6節 分類與迴歸
第12.2.6.1節 邏輯斯蒂迴歸的分類器
第12.2.6.2節 決策樹分類器
第12.2.6.3節 支持向量機SVM分類器
第12.2.7節 推薦算法
第12.2.7.1節 協同過濾算法
第12.2.8節 聚類算法
第12.2.8.1節 KMeans聚類算法

第12.3節 spark.ml庫
第12.3.1節 工做流
第12.3.1.1節 機器學習工做流
第12.3.1.2節 構建一個機器學習工做流
第12.3.2節 特徵抽取、轉化和選擇
第12.3.2.1節 特徵抽取:TF-IDF
第12.3.2.2節 特徵抽取:CountVectorizer
第12.3.2.3節 特徵抽取:Word2Vec
第12.3.2.4節 標籤和索引的轉化
第12.3.3節 分類與迴歸
第12.3.3.1節 邏輯斯蒂迴歸的分類器
第12.3.3.2節 決策樹分類器

(備註:前面咱們都是在單機或僞分佈式環境下操做,如今能夠嘗試在真正的分佈式集羣環境下運行Spark,因爲Spark集羣下編程會致使複雜性大大增長,因此,下面內容能夠自由選擇是否學習)
第十三章 Spark集羣
第13.1 Spark集羣環境搭建
第13.2 在集羣上運行Spark應用程序
(以上是Spark1.6.2教程全部內容,再也不繼續更新,請學習第二部分的Spark2.1.0版本教程)

相關文章
相關標籤/搜索