宋文強
摘要:無共享架構的計算機集群是大數據處理和分析的主要計算平臺。在集群計算中,數據分區和采樣是加快大數據計算和增加可伸縮性的兩種基本策略。在本文中,我們對大數據處理和分析方面的數據分區和采樣的方法和技術進行了全面的概述。另外,還總結了Hadoop集群上基于采樣的近似方法的流行策略和相關工作。本文認為,應將數據分區和采樣一起考慮,以建立在計算和統計方面均可靠的近似群集計算框架。
關鍵詞:大數據;數據分區;方法研究
中圖分類號:TP311.13?? 文獻標識碼:A?? 文章編號:1672-9129(2020)16-0045-01
1 介紹
現如今,大量數據正在源源不斷地從商業交易,計算機模擬,移動設備,傳感器,衛星,社交媒體等中生成。大量的數據可用于生成高價值的信息,用于決策支持,預測,商業智能,數據密集型科學的研究以及其他應用領域。傳統技術,例如基于數據庫和基于結構化查詢語言(SQL)的關系數據庫管理系統(RDBMS),對于處理如此龐大和復雜的大數據已變得不切實際。很難或不可能使用一臺機器來分析TB級數據集,因此可伸縮的分布式計算架構已成為大數據分析框架的常見設計選擇。在這些框架中,數據分區和采樣是橫向擴展和加速大數據分析算法的兩種基本策略。本文提供的調查簡要概述了支持Hadoop集群上的大數據分析的最常用的分區和采樣方法。
“大數據”是當數據本身的大小成為問題的一部分時使用的標簽。在計算集群上進行大數據分析的常見策略是分而治之。MapReduce計算模型用于在主流的大數據分析框架(例如Apache Hadoop和Apache Spark)中應用此策略。這些框架實現了無共享架構,其中每個節點在數據和資源上都是獨立的。在Hadoop群集上,Hadoop分布式文件系統(HDFS)將大數據文件組織和復制為小型分布式數據塊。研究表明,當數據大小足夠大時,隨著群集中計算資源的增加,基于分布式數據塊的并行化會導致線性加速。實際上,可以通過向計算集群添加更多計算機來輕松擴展集群計算框架。但是,數據的增長速度可能會很快超過可用資源。
2 大數據框架
2.1大數據分析的集群計算概述。為了應對各種不同應用領域中不斷增長的數據量,無共享架構的集群計算已成為構建大數據分析框架的常見范例。在無共享架構中,計算集群中的每個節點在數據和計算方面都是獨立的。MapReduce計算模型是主流大數據分析框架中的基礎模型。大數據文件被劃分為小的非重疊數據塊,并通過HDFS分布在計算集群的節點上。然后,使用具有兩個常規操作的并行,分布式算法處理這些塊:Map和Reduce。Map操作獨立處理分布式數據塊,而Reduce操作將Map結果積分以生成整個數據集的全局結果。
大數據技術包括分布式文件系統,分布式計算系統和大規模并行處理(MPP)系統。分布式文件系統,例如谷歌文件系統(GFS),HDFS和Microsoft Cosmos,提供了可伸縮且容錯的存儲解決方案。這些框架的最新進展(例如MapReduce,Hadoop和Cosmos / Dryad)簡化了大規模和分布式數據密集型應用程序的開發。此外,已經提出了高級編程語言和概念數據模型。
基于Hadoop的計算集群已成為各種不同應用領域中大數據管理和分析的規范。Apache Hadoop和Apache Spark是在學術界和工業界使用最廣泛的兩個大數據分析框架。接下來,在討論大數據分區和采樣之前,我們將對這兩個框架進行簡要描述。
2.2 Apache Hadoop。Apache Hadoop是最完善的平臺之一,支持海量數據的分布式和并行處理。它提供了一種通用的分區機制,可以使用MapReduce計算模型在不同的計算機之間分配聚合工作負載。它是一個多用途引擎,但由于其實現中的高吞吐量延遲,因此不是實時高性能引擎。Hadoop平臺包含Hadoop內核,Hadoop MapReduce,HDFS,資源管理器(YARN)和許多項目(例如,Hive和HBase)。Hadoop MapReduce框架為處理大量分布式數據集提供了一種高效且可靠的編程環境。
2.3 Apache Spark。Apache Spark 是另一個開源的大規模數據處理框架。Spark引入了核心抽象,彈性分布式數據集(RDD),用于分布式內存中數據并行計算。彈性分布式數據集是在集群中的一組節點上分布或劃分的元素(對象)的只讀,不變且容錯的集合。彈性分布式數據集支持兩種類型的操作:轉換和動作。動作(例如map()和filt())是確定性的,但是懶惰的操作定義了新的RDD,而沒有立即對其進行計算。另一方面,動作(例如reduce(),count()和collect())在彈性分布式數據集上啟動計算,然后將輸出返回到驅動程序或將其存儲在持久存儲系統中。
3 大數據分析的近似集群計算
近似計算已成為應付計算集群上不斷增長的數據量的常見且必要的范例。數據呈指數級增長,甚至比摩爾定律預測的計算能力還要快。如今,現代服務使用大數據分析系統來挖掘和提取數據中有價值的模式和趨勢。處理這些數據非常昂貴。近年來,近似計算已成為減少大數據分析框架的計算資源使用,處理時間甚至能耗的有效的解決方案。與傳統計算不同,近似計算是在較小的數據概要而不是整個數據集上進行的。許多數據算法可滿足一個近似結果,而不是一個精確結果。
由于數字數據的增長快于計算能力的增長,因此近似計算已成為具有交互式響應時間的大數據分析的一項必不可少的技術。有時將近似計算與增量計算結合使用,在增量計算中,將對數據進行增量處理并相應地更新結果。此技術也稱為增量近似計算。
在數據庫中提出了各種各樣的近似技術來進行近似查詢處理,包括采樣,草圖繪制,直方圖和在線聚集。這些技術最近已擴展到計算集群上的大數據。
4 總結
通過提高計算集群上大數據分析算法的可伸縮性,可管理性和性能,數據分區和采樣可以帶來巨大的好處。本文對大數據分析的分區和抽樣技術進行了綜述。盡管在計算群集上采用了關鍵的經典分區方案,但基于采樣的新分區模型已成為提高可伸縮性的基礎。此外,這對于保證所選樣品的質量以及產生更準確的近似結果至關重要。
參考文獻:
[1]劉張榕.基于大數據的半分布式僵尸網絡動態抑制算法[J].計算機與現代化,2020(08):109-113.
[2]向鴻鑫,楊云.不平衡數據挖掘方法綜述[J].計算機工程與應用,2019,55(04):1-16.
[3]袁喆,文繼榮,魏哲巍,劉家俊,姚斌,鄭凱.大數據實時交互式分析[J].軟件學報,2020,31(01):162-182.
[4]王龍暉. 基于并行計算的調節閥大數據智能分析及建模方法研究[D].山東大學,2019.