山西泳坛夺金走势图带连线带坐标
歡迎進入濟南市衛生科技網!   設為首頁 | 加入收藏  
您所在的位置:網站首頁 > 大數據資訊
提升大數據數據分析性能的方法及技術(一)

發布日期:2019-03-11

轉載:https://www.cnblogs.com/csbdong/p/5719484.html

1 大數據概述

1.1 大數據的產生

  我們正處于一個信息化的時代。在信息化時代,我們認為[1]數據就是金錢、就是成功的根基。借助于電腦和衛星等科技的幫助,我們能夠收集大量的數據。起初,我們利用電腦和各式各樣的存儲技術來存儲各種形態的數據。然而,隨著時間的推移,大量的異構的數據存儲構成的數據集就變的異常的龐大。

  隨著因特網在全球范圍的普及,數據量變的如此的巨大,以至于使用現有的數據管理方法或者傳統的數據處理應用很難應付。上述所提到的大規模、大體量的數據集我們就稱之為大數據。

1.1.1 大數據的形成

  大數據就是一類復雜且龐大的數據集合,傳統的數據管理工具或者應用已經無法勝任其數據的處理工作。數據之所以會大規模的增長[1],其中一個原因就在于通過對一些具有單一關聯的大型數據集的分析,產生的額外的信息資源。這些通過分析產生的信息資源利用的案例可以在“景點的商業發展趨勢的預測”、“研究成果質量的預測”、“疾病的預防”、“打擊犯罪”和“預測實時交通擁塞程度”等場景下看到。

1.2 大數據的發展趨勢和挑戰

  大數據通常是和云計算、數據挖掘、機器學習密不可分的。大數據的分析主要涉及到以下的四個方面[2]:數據管理和結構支撐、開發模型和評測、可視化和用戶接口、商業模型。

1.2.1 大數據的發展

  圖1[2]顯示了傳統的大數據工作流分析經歷的一些階段。數據以數據庫,數據流,數據集合以及數據倉庫等方式來建模。數據的數量級以及數據的多樣性要求在處理之前要進行數據的集成、清洗以及過濾等工作,以保證其后續工作的開展。
數據分析過程中最耗時、耗力的就是[2]數據的準備階段。通常會遇到的一個問題就是需要分析的數據會使得現有的分析系統達到飽和。因此,分析大規模的數據時必須考慮到數據存儲、過濾、移植和檢索的效率。

  分析處理這些大數據之所以面臨挑戰的另一個原因是[2]數據形式的多樣性。正如圖2所示,數據主要有四種形式。而如今大部分的數據,既不是結構化的數據,也不是半結構化的數據。

  下面將討論數據的速率[2](圖3)。這里所說的速率,主要是討論數據到達的時間問題。在某些應用中,數據的到達以及處理形式可能是成批的,但是在其他的應用中可能數據就需要以連續不斷的或者實時的形式展現。一些時候需要對這些數據進行及時的處理和響應。例如為數據中心提供實時的數據活動的管理。

1.2.2 大數據的挑戰

  大數據已經成為一個炙手可熱的話題,但是不可否認,大數據仍然面臨一系列的挑戰。尤其是現階段廣泛使用的流數據(下面會重點討論)。

  數據的多樣性[2]:如何去應對始終呈增長趨勢的數據。尤其是當數據以非結構化的形式產生的時候,如何從大量該類型的數據中快速有效的讀取出用戶所需要的數據。如何從流式數據中聚集并讀取數據中的潛在關聯性。

  數據的存儲:如何從非結構化的數據中快速提取并存儲重要的信息?如何優化存儲的結構,使得存儲在其中的數據能夠被高效率的檢索?現存的文件系統能否有效的滿足大數據分析所要求的性能?

  數據的集成:需要新的協議和接口來滿足不同形態和不同來源的數據。

  數據處理和資源管理:需要設計出應用于流式數據的最優模型。需要設計出協同文件系統達到最高效能的處理引擎。

2 數據流挖掘概述

  傳統的數據處理的方法[3],對于那些建立在特定數據集上的離線的數據,以及批量到達的數據顯得相對有效。但是隨著時代的發展和處理任務的更迭,有時候,我們的任務所處理的對象是流式數據,或者在線的實時產生的數據。越來越多的實時應用程序需要動態的處理基于流式數據的一些查詢請求。若在這樣的請求中,在運用傳統的方法,那么無論是對于空間占用還是效率來說,可能花銷都是比較大的。現在先對流式數據的一些概念加以闡釋。下述內容主要也將針對流式數據展開。

2.1 流式數據概述

  為了能夠在數據倉庫中提取出一些新的潛在信息,我們已經掌握了一些系列數據挖掘的技術。但是[4]如今,當我們試圖從大量的流式數據中以一種合適、高效的方法來提取我們所需要的信息時,出現了一系列的挑戰。

2.2 流式數據發展及挑戰

  在處理流式數據挖掘的時候,我們不能無視靜態數據和流式數據之間的區別。我們知道,靜態數據是預先存儲在固定的設備上,供查詢和分析,一邊找到潛在的價值。但是,由于流式數據連續性特性,很顯然無法完全存儲不斷進入應用的流式數據,而且,應用通常也要求我們要在極短的時間內對請求做出相應,這與處理靜態數據來比,時間顯然要短得多。因此流式數據的挖掘處理主要面對內存管理、數據結構和資源分配方面的挑戰。

3 流式數據工具集

表1[3]列出了大數據(包括流式數據、批量數據等形式)處理所需要的工具集,包括大數據處理的所需要的庫、平臺和框架引擎。

工具集

處理對象

匹配引擎

Mahout

Batch

MapReduce, Spark, H2O

MLlib

Batch, Streaming

Spark

H2O

Batch

H2O

SAMOA

Streaming

Storm, Samza, S4

表1  大數據處理工具集

  因為本文主要針對性地調研了流式數據相關方面的內容,因此下面的分析也主要集中于流式數據相關工具集(SAMOA),對于MLlib僅簡單介紹。關于匹配引擎和框架的內容將在下一章節具體分析。

3.1 MLlib庫

  MLlib[3]是一個與Spark幾乎同時段出現的產物,MLlib是一個機器學習的庫文件。其作為一款常駐內存的分布式處理引擎,廣受歡迎并且被許多大數據應用程序所使用。MLlib兼容批量數據和流式數據。MLlib的設計初衷就是為了使用戶能夠在利用該庫的基礎上創建自己的算法。Spark.ml提供了一系列統一的接口與MLlib合作創建、擴展以及應用一些機器學習的算法。MLlib支持很多有助于數據處理和模型評估的數學和統計學方法。現在很多的模型都很好的使用了MLlib庫,包括分類模型、迭代模型、評價模型、集群以及降維等。

3.2 SAMOA平臺

3.2.1 SAMOA平臺概述

  Samoa(Scalable Advanced Massive Online Analysis)是一種流數據挖掘的平臺。該平臺為[5]最常用的數據挖掘和機器學習的任務(如:分類、集群、迭代以及抽象等等)提供了一系列分布式的流式處理算法。它的優勢在于提供了接口,這使得其能很好的被利用在多種分布式系統,結合一些流式處理引擎(Storm、S4、Samza)。Samoa用Java語言編寫,是一個開源的平臺,可以在[6]http://samoa-project.net上獲取使用。圖4描述了平臺與引擎之間的關系。

  我們既可以將SAMOA看作是一個框架也可以將其看作是一個庫(跟上面提到的MLlib類似)。

  作為框架,它允許算法的開發人員從底層的硬件設備中抽象,達到代碼重用的目的。上文提到,它的優勢[5]在于提供了能用在多種分布式系統上的接口,并適配多種流式處理引擎。通過設計了一個基于現代DSPE必要元素的最小化的應用程序接口API。這些接口使得可以很方便的將其綁定到新的引擎上面。SAMOA通過API和部署的方式,隱藏了DSPE的底部細節和底層差異。

  圖5和圖6具體給出了SAMOA的項目架構。作為庫,SAMOA包含了為在分布式機器上進行流式數據機器學習所設計的算法的實現。為“分類”這一步的操作,提供了Vertical Hoeffding Tree (VHT)算法,對于集群,其包含了基于CluStream的算法。

  Samoa平臺在科學研究和實際生產生活的部署中都占有一席之地。

3.2.2 SAMOA算法架構

  在SAMOA中,算法[5]被看作有向圖上的節點進行消息傳遞的,這些節點之間通過數據流的形式傳遞消息。在圖7表示的有向圖拓撲中,每個節點都是一個通過流來發送和接收消息的處理器。每一個處理機都是節點執行算法的載體[7]。一個數據流可以有一個源節點,但是可以有多個目的節點(類似于PUB/SUB模型)有向圖的拓撲是通過一個拓撲建立器的工具來生成的,它連接各部分用戶的代碼到SAMOA平臺上,并且在后臺做相應的處理和備份工作。圖8則是從集群角度來描述了對應的算法架構。

 


   
/* 10 */

?版權所有: 濟南市衛生科技交流服務中心    電話:0531-86551686    地址:濟南市歷下區利農莊路33號
?備案/許可證編號:魯ICP備10022623號
山西泳坛夺金走势图带连线带坐标 国外苹果id有什么好处 必赢客手机版 大赢足球即时比分网 5藏宝阁 百人炸金花怎么赢 骰子彩票大小单双技巧 重庆时时彩个位技巧99% 夜客app骗局 竞彩足球如何稳赚 pk10幸运飞挺开奖记录