大資料基礎知識總結和大資料方面的核心技術

金羅老師發表於2018-12-26

一、什麼是大資料


         一種規模大到在獲取、儲存 、管理、分析方面大大超出了傳統資料庫 軟體工具能力範圍的資料集合,具有海量的資料規模、快速的資料流轉、多樣的資料型別和價值密度低四大特徵。 大資料需要特殊的技術,以有效地處理大量的容忍經過時間內的資料。適用於大資料的技術,包括大規模並行處理 (MPP)資料庫 、資料探勘、分散式檔案系統 、分散式資料庫 、雲端計算平臺 、網際網路和可擴充套件的儲存系統


二、大資料的基本特徵

         資料量大(Volume):第一個特徵是資料量大,包括採集、儲存和計算的量都非常大。
     型別繁多(Variety):第二個特徵是種類和來源多樣化。包括結構化、半結構化和非結構化資料,具體表現為網路                                            日誌、音訊、影片、圖片、地理位置資訊等等,多型別的資料對資料的處理能力提出了更高                                             的要求。
     價值密度低(Value):第三個特徵是資料價值密度相對較低,或者說是浪裡淘沙卻又彌足珍貴。隨著網際網路以及物                                            聯網的廣泛應用,資訊感知無處不在,資訊海量,但價值 密度較低,如何結合業務邏輯並通                                            過強大的機器演算法來挖掘資料價值,是大資料時代最需要解決的問題。
     速度快時效高(Velocity):第四個特徵資料增長速度快,處理速度也快,時效性要求高。
     資料是線上的(Online)。資料是永遠線上的,是隨時能呼叫和計算的,這是大資料區別於傳統資料最大的特徵。

三、大資料的資料單位

      按順序給出所有單位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。(進率2^10)

四、大資料的資料結構

         結構化資料:即行資料,儲存在資料庫裡,可以用二維表結構來邏輯表達實現的資料
        非結構化資料:非結構化資料是資料結構不規則或不完整,沒有預定義的資料模型,
                                不方便用資料庫二維邏輯表來表現的資料。包括所有格式的辦公文件、
                                文字、圖片、XML, HTML、各類報表、影像和音訊/影片資訊等等。
        半結構化資料:指結構資料中,結構不規則的資料,由於結構變化很大也不能夠簡單的
                                 建立一個表和他對應。如:聲音、影像檔案等之間的資料,HTML文件就

                                 屬於半結構化資料。它一般是自描述的,資料的結構和內容混在一起,



                          沒有明顯的區分。


最後要感謝這個優秀的平臺,可以讓我們相互交流,如果想進一步學習交流,可以加群199427210,希望大家可以一起學習進步!




五、大資料的計算模式

            

批處理計算 (  MapReduce, ): 最適合於完成大資料批處理的計算模式是MapReduce, 首先,MapReduce對具有簡單資料關係、易於劃分的大規模資料採用“分而治之”的並行處理思想;然後將大量重複的資料記錄處理過程總結成Map和Reduce兩個抽象的操作;最後MapReduce提供了一個統一的平行計算框架,把平行計算所涉及到的諸多系統層細節都交給計算框架去完成,以此大大簡化了程式設計師進行並行化程式設計的負擔。

流式計算   (Scribe ,Flume,Storm,S4,SparkStreaming) 流式計算是一種高實時性的計算模式,需要對一定時間視窗內應用系統產生的新資料完成實時的計算處理,避免造成資料堆積和丟失。

迭代計算 ( HaLoop ,iMapReduce,Twister,Spark) 為了克服Hadoop MapReduce難以支援迭代計算的缺陷,工業界和學術界對Hadoop MapReduce進行了不少改進研究。HaLoop把迭代控制放到MapReduce作業執行的框架內部,並透過迴圈敏感的排程器保證前次迭代的Reduce輸出和本次迭代的Map輸入資料在同一臺物理機上,以減少迭代間的資料傳輸開銷;

互動式計算

圖計算    (Pregel,PowerGrapg,GraphX)

記憶體計算 (Dremel,Hana, )


六、大資料的工作流程


1、採集與預處理 

      從資料來源採集的資料,需要透過資料融合、資料整合、資料整合,生成新的資料集,供後續查詢、分析、處理提供統一的資料檢視

2、儲存管理

       分散式檔案系統

      分散式資料庫(NEWSQL、NOSQL)

3、計算模式

       包括批處理、互動式處理、流式計算、迭代計算、圖計算、記憶體計算

4、分析與挖掘

5、視覺化處理


七、CDH簡介

      CDH首先是100%開源,基於Apache協議。基於Apache  和相關projiect開發。可以做批次處理,互動式sql查詢和及時查詢,基於角色的許可權控制。在企業中使用最廣的 分發版本。     


      

八、分散式架構設計CAP的工作原理

            

● 一致性(C):在分散式系統中的所有資料備份,在同一時刻是否同樣的值。(等同於所有節點訪問同一份最新的資料副本),換句話就是說,任何時刻,所用的應用程式都能訪問得到相同的資料。
● 可用性(A):在叢集中一部分節點故障後,叢集整體是否還能響應客戶端的讀寫請求。(對資料更新具備高可用性),換句話就是說,任何時候,任何應用程式都可以讀寫資料。

● 分割槽容錯性(P):以實際效果而言,分割槽相當於對通訊的時限要求。系統如果不能在時限內達成資料一致性,就意味著發生了分割槽的情況,必須就當前操作在C和A之間做出選擇,換句話說,系統可以跨網路分割槽線性的伸縮和擴充套件。


大資料方面的核心技術

目前,大資料領域每年都會湧現出大量新的技術,成為大資料獲取、儲存、處理分析或視覺化的有效手段。大資料技術能夠將大規模資料中隱藏的資訊和知識挖掘出來,為人類社會經濟活動提供依據,提高各個領域的執行效率,甚至整個社會經濟的集約化程度。那麼下面我們就說說大資料方面的核心技術有哪些:

        1. 大資料生命週期


 


·        底層是基礎設施,涵蓋計算資源、記憶體與儲存和網路互聯,具體表現為計算節點、叢集、機櫃和資料中心。在此之上是資料儲存和管理,包括檔案系統、資料庫和類似YARN的資源管理系統。然後是計算處理層,如hadoop、MapReduce和Spark,以及在此之上的各種不同計算正規化,如批處理、流處理和圖計算等,包括衍生出程式設計模型的計算模型,如BSP、GAS 等。


·       資料分析和視覺化基於計算處理層。分析包括簡單的查詢分析、流分析以及更復雜的分析(如機器學習、圖計算等)。查詢分析多基於表結構和關係函式,流分析基於資料、事件流以及簡單的統計分析,而複雜分析則基於更復雜的資料結構與方法,如圖、矩陣、迭代計算和線性代數。一般意義的視覺化是對分析結果的展示。但是透過互動式視覺化,還可以探索性地提問,使分析獲得新的線索,形成迭代的分析和視覺化。基於大規模資料的實時互動視覺化分析以及在這個過程中引入自動化的因素是目前研究的熱點。


·        2.大資料技術生態


·        大資料的基本處理流程與傳統資料處理流程並無太大差異,主要區別在於:由於大資料要處理大量、非結構化的資料,所以在各處理環節中都可以採用並行處理。目前,Hadoop、MapReduce和Spark等分散式處理方式已經成為大資料處理各環節的通用處理方法。


·        3.大資料採集與預處理


 


       在大資料的生命週期中,資料採集處於第一個環節。根據MapReduce產生資料的應用系統分類,大資料的採集主要有4種來源:管理資訊系統、Web資訊系統、物理資訊系統、科學實驗系統。對於不同的資料集,可能存在不同的結構和模式,如檔案、XML 樹、關係表等,表現為資料的異構性。對多個異構的資料集,需要做進一步整合處理或整合處理,將來自不同資料集的資料收集、整理、清洗、轉換後,生成到一個新的資料集,為後續查詢和分析處理提供統一的資料檢視。針對管理資訊系統中異構資料庫整合技術、Web 資訊系統中的實體識別技術和DeepWeb整合技術、感測器網路資料融合技術已經有很多研究工作,取得了較大的進展,已經推出了多種資料清洗和質量控制工具。


·       4.大資料儲存與管理


 


 


        按資料型別的不同,大資料的儲存和管理採用不同的技術路線,大致可以分為3類。第1類主要面對的是大規模的結構化資料。針對這類大資料,通常採用新型資料庫叢集。它們透過列儲存或行列混合儲存以及粗粒度索引等技術,結合MPP(Massive Parallel Processing)架構高效的分散式計算模式,實現對PB 量級資料的儲存和管理。這類叢集具有高效能和高擴充套件性特點,在企業分析類應用領域已獲得廣泛應用;第2類主要面對的是半結構化和非結構化資料。應對這類應用場景,基於Hadoop開源體系的系統平臺更為擅長。它們透過對Hadoop生態體系的技術擴充套件和封裝,實現對半結構化和非結構化資料的儲存和管理;第3類面對的是結構化和非結構化混合的大資料,因此採用MPP 並行資料庫叢集與Hadoop叢集的混合來實現對百PB 量級、EB量級資料的儲存和管理。一方面,用MPP 來管理計算高質量的結構化資料,提供強大的SQL和OLTP型服務;另一方面,用Hadoop實現對半結構化和非結構化資料的處理,以支援諸如內容檢索、深度挖掘與綜合分析等新型應用。這類混合模式將是大資料儲存和管理未來發展的趨勢。


·        5.大資料計算模式與系統


·         所謂大資料計算模式,即根據大資料的不同資料特徵和計算特徵,從多樣性的大資料計算問題和需求中提煉並建立的各種高層抽象(abstraction)或模型(model)。例如,MapReduce 是一個平行計算抽象,加州大學伯克利分校著名的Spark系統中的“分佈記憶體抽象RDD”,CMU著名的圖計算系統GraphLab中的“圖並行抽象”(Graph Parallel Abstraction)等。傳統的平行計算方法,主要從體系結構和程式語言的層面定義了一些較為底層的平行計算抽象和模型,但由於大資料處理問題具有很多高層的資料特徵和計算特徵,因此大資料處理需要更多地結合這些高層特徵考慮更為高層的計算模式。


          根據大資料處理多樣性的需求和以上不同的特徵維度,目前出現了多種典型和重要的大資料計算模式。與這些計算模式相適應,出現了很多對應的大資料計算系統和工具。由於單純描述計算模式比較抽象和空洞,因此在描述不同計算模式時,將同時給出相應的典型計算系統和工具。


·         6.大資料分析與視覺化


 


        大規模資料的視覺化主要是基於並行演算法設計的技術,合理利用有限的計算資源,高效地處理和分析特定資料集的特性。通常情況下,大規模資料視覺化的技術會結合多解析度表示等方法,以獲得足夠的互動效能。 

在科學大規模資料的並行視覺化工作中,主要涉及資料流線化、任務並行化、管道並行化和資料並行化4 種基本技術。微軟公司在其雲端計算平臺Azure 上開發了大規模機器學習視覺化平臺(Azure Machine Learning),將大資料分析任務形式為有向無環圖並以資料流圖的方式向使用者展示,取得了比較好的效果。在國內,阿里巴巴旗下的大資料分析平臺御膳房也採用了類似的方式,為業務人員提供的互動式大資料分析平臺。


 最後要感謝這個優秀的平臺,可以讓我們相互交流,如果想進一步學習交流,可以加群199427210,希望大家可以一起學習進步!





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561003/viewspace-2286555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章