1. 程式人生 > >大資料學習筆記之三十 Spark介紹之一

大資料學習筆記之三十 Spark介紹之一

Spark簡介


  主要用來加快資料分析的執行和讀寫速度


  基於MapReduce演算法實現的分散式計算,在擁有Hadoop MapReduce所有優點的基礎上,其任務的中間結果還可以儲存在記憶體中,查詢速度快


  處理迭代演算法(機器學習、圖挖掘演算法)和互動式資料探勘演算法方面具有較大優勢


  核心概念是RDD,彈性分散式資料集


   彈性,在計算過程中,當遇到記憶體不足時,它可以與硬碟進行資料交換,雖然在某種程度上程式要降低效能,但可以保證計算的順利進行


   分散式的,它可以分佈在多臺機器上進行平行計算


   表示已分割槽、不可改變的能夠被並行操作的資料集合


   RDD資料集的操作結束都可以儲存至記憶體,下一個操作內容從記憶體中讀取


   不同的資料格式對應不同的RDD


 BDAS


  大資料時代資料處理目標


   通過對歷史資料低延時互動式處理,從而更快地作出決策,例如一個站點緩慢的原因


   通過對流式資料的快速處理,從而可以作出實時決策,例如實時監測並阻止蠕蟲


   通過對複雜資料的處理,從而作出更好、更準確的決策,例如異常檢測、趨勢分析等


  常見的開源分析棧


   主要關注儲存在磁碟上的大型資料集,雖然在批處理上具有較多的優化,但處理速度相對較慢


  目標是將批處理、互動式處理和流處理在一個堆疊中實現,能夠比較容易地開發複雜的演算法,並且與目前開源的Hadoop/HDFS相相容


  結構


   資源管理層


    實現基礎設施框架的共享、資料中心的多級程式


   資料管理層


    基礎框架間有效的資料共享


   資料處理層


    記憶體資料處理以及處理的時間、質量和成本


   應用層


    主要包括新的應用


 RDD


  在保留MapReduce等資料流模型框架的優點同時(自動容錯、本地優化分配、可擴充套件性),使得使用者可以明確地將一部分資料快取在記憶體中,以加速這部分資料之後的查詢和計算過程


  提供了一種高度限制的共享記憶體,但是這些限制可以使得自動容錯的開支變得很低


  使用一種稱為血統的容錯機制,即每一個RDD都包含關於它是如何從其他RDD變換過來的以及如何重建某一塊資料的資訊


  通用的迭代平行計算的框架,使得使用者能夠顯示地控制計算的中間結果,然後將其自由地運用於之後的計算


  基本概念


   只讀、分割槽記錄的集合。RDD只能基於在穩定物理儲存中的資料集和其他已有的RDD上執行確定性操作來建立


   RDD不需要物化,RDD含有如何從其他RDD衍生出本RDD的相關資訊,據此可以從物理儲存的資料計算出相應的RDD分割槽


   依賴的分類


    narrow dependency


     如果RDD的每個分割槽最多隻能被一個Child RDD的一個分割槽使用


     可以支援在同一個cluster node上以管道形式執行多個命令


     恢復更加有效,只需要重新計算丟失的父分割槽就行,而且可以並行地在多個節點進行重計算


    wide dependency


     如果多個Child RDD分割槽都可以依賴


     需要所有父分割槽都是可用的,可能還需要呼叫類似MapReduce的操作進行跨節點傳遞


   一個RDD可以包含多個分割槽,每個分割槽就是一個dataset片段,RDD可以相互依賴


  和分散式共享記憶體DSM的對比


   RDD限制應用執行批量寫操作,這樣有助於實現有效的容錯


   落後的任務,RDD可以通過備份的任務進行處理


 SparkSQL


  SparkSQL對SQL的處理和關係型資料庫對SQL語句的處理方法類似


  處理過程


   先講SQL語句進行解析,形成一個Tree


   後面的繫結、優化等過程都是對語法樹進行的操作,操作的方法是採用Rule


   通過模式匹配,對不同型別的節點採用不同的操作,在整個SQL語句處理過程中,語法樹和Rule相互配合,完成了解析、繫結、優化、物理計劃等過程,最終生成可以執行的物理計劃


 MLlib


  是Spark對常用的機器學習演算法的實現庫,也包括相應的測試和資料生成器


  支援四種常見的機器學習問題


   二元分類


   迴歸


   協同過濾


   聚類


   一個底層下降優化基礎演算法


  支援的演算法


   基本統計


    概要統計


    相關分析


    分層取樣


    假設檢驗


    隨機資料生成


   分類與迴歸


    線性模型


    決策樹


    樸素貝葉斯


   協同過濾


    最小二乘法


   聚類


    K-means


   降維


    奇異值分析


    主成分分析


   特徵提取及轉換