帶你入門Spark(資源整理)
Spark入門學習資源:Spark入門系列實驗課程。
一、Spark簡介
Spark是UC Berkeley AMP lab開發的一個集群計算的框架,類似於Hadoop,但有很多的區別。最大的優化是讓計算任務的中間結果可以存儲在內存中,不需要每次都寫入HDFS,更適用於需要迭代的MapReduce演算法場景中,可以獲得更好的性能提升。例如一次排序測試中,對100TB數據進行排序,Spark比Hadoop快三倍,並且只需要十分之一的機器。Spark集群目前最大的可以達到8000節點,處理的數據達到PB級別,在互聯網企業中應用非常廣泛。
二、Spark理論導讀
學習spark前推薦的理論文章:
2.1 大數據技術生態介紹
寫的很好的一篇大數據技術生態圈介紹文章,層次條理分明,內容詳盡。推薦必讀。
2.2 誰在使用Spark?
這個頁面列舉了部分使用Spark的公司和組織,有使用場景的介紹,可做簡單了解。
2.3 Spark與Hadoop對比
這篇介紹是我看到過最詳盡的,講到很多Spark基本原理和對比Hadoop的優勢,推薦必讀。
三、Spark入門實踐教程
有很多想要學習Spark的小夥伴都在自學,實驗樓最近整理了一系列的spark入門教程,並提供線上配套的練習環境,希望對Spark學習者有所幫助~
Spark線上實驗環境:
Spark生態圈(圖來自這裡):下面依照上圖,對Spark入門系列課程做介紹。3.1 Spark 講堂之 SQL 入門
Spark SQL 是一個分散式查詢引擎,在這個教程里你可以學習到 Spark SQL 的基礎知識和常用 API 用法,了解常用的數學和統計函數。最後將通過一個分析股票價格與石油價格關係的實例進一步學習如何利用 Spark SQL 分析數據。
3.2 Spark 講堂之 Streaming 入門
Spark Streaming 適用於實時處理流式數據。該教程帶你學習 Spark Streaming 的工作機制,了解 Streaming 應用的基本結構,以及如何在 Streaming 應用中附加 SQL 查詢。
Streaming圖:
3.3 Spark 講堂之 MLlib 入門
這個教程你可以了解到 Spark 的 MLlib 庫相關知識,掌握 MLlib 的幾個基本數據類型,並且可以動手練習如何通過機器學習中的一些演算法來推薦電影。
3.4 Spark 講堂之 GraphX 入門
GraphX是Spark用於解決圖和並行圖計算問題的新組件。GraphX通過RDD的擴展,在其中引入了一個新的圖抽象,即頂點和邊帶有特性的有向多重圖,提供了一些基本運算符和優化了的Pregel API,來支持圖計算。
3.5 Spark 講堂之 GraphX 圖演算法
GraphX包含了一些用於簡化圖分析任務的的圖計算演算法。你可以通過圖操作符來直接調用其中的方法。這個教程中講解這些演算法的含義,以及如何實現它們。
3.6 Spark 講堂之 SparkR 入門
SparkR是一個提供輕量級前端的R包,集成了Spark的分散式計算和存儲等特性。這個教程將以較為輕鬆的方式帶你學習如何在SparkR中創建和操作DataFrame,如何應用SQL查詢和機器學習演算法等。
3.7 Spark 講堂之 DataFrame 入門
DataFrame讓Spark具備了處理大規模結構化數據的能力,在比原有的RDD轉化方式更加易用、計算性能更好。這個教程通過一個簡單的數據集分析任務,講解DataFrame的由來、構建方式以及一些常用操作。
3.8 Spark 講堂之 DataFrame 詳解
這個教程通過更加深入的講解,使用真實的數據集,並結合實際問題分析過程作為引導,旨在讓Spark學習者掌握DataFrame的高級操作技巧,如創建DataFrame的兩種方式、UDF等。
3.9 Sqoop 數據遷移工具
Sqoop 是大數據環境中重要的是數據轉換工具,這個教程對Sqoop 的安裝配置進行了詳細的講解,並列舉了Sqoop 在數據遷移過程中基本操作指令。
以上9個教程比較適合有一定的Spark基礎的人學習。
3.10 Spark 大數據動手實驗
這個教程是一個系統性的教程,總共15個小節,帶你親身體驗Spark大數據分析的魅力,課程中可以實踐:
Spark,Scala,Python,Spark Streaming,SparkSQL,MLlib,GraphX,IndexedRDD,SparkR,Tachyon,KeystoneML,BlinkDB等技術點,無疑是學習Spark最快的上手教程!這個教程較為系統,非常適合零基礎的人進行學習。
希望以上10個教程可以幫助想入門Spark的人技術更上一層樓。
推薦閱讀:
※自己寫的編譯器一般幾個符號表比較合適?
※句柄是什麼?
※XAML與XML的關係與語法的區別,學習wpf應該怎麼學?學XML用什麼教材比較好?