奇酷大數據:大數據分析,主要有哪些核心技術?
來源:
奇酷教育 發表于:
大數據分析:是指對規模巨大的數據進行分析。大數據可以概括為4個V, 數據量大、速度快、類型多、價值。 大數據作為時下最火熱的IT
大數據分析:是指對規模巨大的數據進行分析。大數據可以概括為4個V, 數據量大、速度快、類型多、價值。
大數據作為時下最火熱的IT行業的詞匯,隨之而來的數據倉庫、數據安全、數據分析、數據挖掘等等圍繞大數據的商業價值的利用逐漸成為行業人士爭相追捧的利潤焦點。隨著大數據時代的來臨,大數據分析也應運而生。那么大數據分析有哪些核心技術呢?下面
奇酷大數據為大家淺談大數據分析。

1.大數據生命周期
數據技術棧底層是基礎設施,涵蓋計算資源、內存與存儲和網絡互聯,具體表現為計算節點、集群、機柜和數據。在此之上是數據存儲和管理,包括文件系統、數據庫和類似YARN的資源管理系統。然后是計算處理層,如hadoop、MapReduce和Spark,以及在此之上的各種不同計算范式,如批處理、流處理和圖計算等,包括衍生出編程模型的計算模型,如BSP、GAS 等。數據分析和可視化基于計算處理層。分析包括簡單的查詢分析、流分析以及更復雜的分析(如機器學習、圖計算等)。查詢分析多基于表結構和關系函數,流分析基于數據、事件流以及簡單的統計分析,而復雜分析則基于更復雜的數據結構與方法,如圖、矩陣、迭代計算和線性代數。 般意義的可視化是對分析結果的展示。但是通過交互式可視化,還可以探索性地提問,使分析獲得新的線索,形成迭代的分析和可視化。基于大規模數據的實時交互可視化分析以及在這個過程中引入自動化的因素是目前研究的熱點。
有2個領域垂直打通了上述的各層,需要整體、協同地看待。 是編程和管理工具,方向是機器通過學習實現自動較優化、盡量無需編程、無需復雜的配置。另 個領域是數據安全,也是貫穿整個技術棧。除了這兩個領域垂直打通各層,還有 些技術方向是跨了多層的,例如“內存計算”事實上覆蓋了整個技術棧。
2.大數據技術生態
大數據的基本處理流程與傳統數據處理流程并無太大差異,主要區別在于:由于大數據要處理大量、非結構化的數據,所以在各處理環節中都可以采用并行處理。目前,Hadoop、MapReduce和Spark等分布式處理方式已經成為大數據處理各環節的通用處理方法。
另外,基于性能、兼容性、數據類型的研究,還有Shark、Phoenix、Apache Accumulo、Apache Drill、Apache Giraph、Apache Hama、Apache Tez、Apache Ambari 等其他開源解決方案。預計未來相當長 段時間內,主流的Hadoop平臺改進后將與各種新的計算模式和系統共存,并相互融合,形成新 代的大數據處理系統和平臺。
3.大數據采集與預處理
在MapReduce產生數據的應用系統分類,大數據的采集主要有4種來源:管理信息系統、Web信息系統、物理信息系統、科學實驗系統。對于不同的數據集,可能存在不同的結構和模式,如文件、XML 樹、關系表等,表現為數據的異構性。對多個異構的數據集,需要做進 步集成處理或整合處理,將來自不同數據集的數據收集、整理、清洗、轉換后,生成到 個新的數據集,為后續查詢和分析處理提供統 的數據視圖。針對管理信息系統中異構數據庫集成技術、Web 信息系統中的實體識別技術和DeepWeb集成技術、傳感器網絡數據融合技術已經有很多研究工作,取得了較大的進展,已經推出了多種數據清洗和質量控制工具。
4.大數據存儲與管理
傳統的數據存儲和管理以結構化數據為主,因此關系數據庫系統(RDBMS)可以 統天下滿足各類應用需求。大數據往往是半結構化和非結構化數據為主,結構化數據為輔,而且各種大數據應用通常是對不同類型的數據內容檢索、交叉比對、深度挖掘與綜合分析。面對這類應用需求,傳統數據庫無論在技術上還是功能上都難以為繼。另外,用Hadoop實現對半結構化和非結構化數據的處理,以支持諸如內容檢索、深度挖掘與綜合分析等新型應用。這類混合模式將是大數據存儲和管理未來發展的趨勢。
5.大數據計算模式與系統
計算模式的出現有力推動了大數據技術和應用的發展,使其成為目前大數據處理較為成功、較廣為接受使用的主流大數據計算模式。然而,現實 中的大數據處理問題復雜多樣,難以有 種單 的計算模式能涵蓋所有不同的大數據計算需求。研究和實際應用中發現,由于MapReduce主要適合于進行大數據線下批處理,在面向低延遲和具有復雜數據關系和復雜計算的大數據問題時有很大的不適應性。因此,近幾年來學術界和業界在不斷研究并推出多種不同的大數據計算模式。
所謂大數據計算模式,即根據大數據的不同數據特征和計算特征,從多樣性的大數據計算問題和需求中提煉并建立的各種高層抽象或模型。根據大數據處理多樣性的需求和以上不同的特征維度,目前出現了多種典型和重要的大數據計算模式。與這些計算模式相適應,出現了很多對應的大數據計算系統和工具。由于單純描述計算模式比較抽象和空洞,因此在描述不同計算模式時,將同時給出相應的典型計算系統和工具,這將有助于對計算模式的理解以及對技術發展現狀的把握,并進 步有利于在實際大數據處理應用中對合適的計算技術和系統工具的選擇使用。
6.大數據分析與可視化
在大數據時代,人們迫切希望在由普通機器組成的大規模集群上實現高性能的以機器學習算法為核心的數據分析,為實際業務提供服務和指導,進而實現數據的較終變現。與傳統的在線聯機分析處理OLAP不同,對大數據的深度分析主要基于大規模的機器學習技術, 般而言,機器學習模型的訓練過程可以歸結為較優化定義于大規模訓練數據上的目標函數并且通過 個循環迭代的算法實現,如圖4所示。因而與傳統的OLAP相比較,基于機器學習的大數據分析具有自己獨特的特點。
基于機器學習的大數據分析算法目標函數和迭代優化過程
(1)迭代性:由于用于優化問題通常沒有閉式解,因而對模型參數確定并非 次能夠完成,需要循環迭代多次逐步逼近較優值點。
(2)容錯性:機器學習的算法設計和模型評價容忍非較優值點的存在,同時多次迭代的特性也允許在循環的過程中產生 些錯誤,模型的較終收斂不受影響。
(3)參數收斂的非均勻性:模型中 些參數經過少數幾輪迭代后便不再改變,而有些參數則需要很長時間才能達到收斂。
這些特點決定了理想的大數據分析系統的設計和其他計算系統的設計有很大不同,直接應用傳統的分布式計算系統應用于大數據分析,很大比例的資源都浪費在通信、等待、協調等非有效的計算上。
傳統的分布式計算框架MPI(message passing interface,信息傳遞接口)雖然編程接口靈活功能強大,但由于編程接口復雜且對容錯性支持不高,無法支撐在大規模數據上的復雜操作,研究人員轉而開發了 系列接口簡單容錯性強的分布式計算框架服務于大數據分析算法,以MapReduce、Spark和參數服務器ParameterServer等為代表。
分布式計算框架MapReduce將對數據的處理歸結為Map和Reduce兩大類操作,從而簡化了編程接口并且提高了系統的容錯性。但是MapReduce受制于過于簡化的數據操作抽象,而且不支持循環迭代,因而對復雜的機器學習算法支持較差,基于MapReduce的分布式機器學習庫Mahout需要將迭代運算分解為多個連續的Map 和Reduce 操作,通過讀寫HDFS文件方式將上 輪次循環的運算結果傳入下 輪完成數據交換。在此過程中,大量的訓練時間被用于磁盤的讀寫操作,訓練效率非常低效。為了解決MapReduce上述問題,Spark 基于RDD 定義了包括Map 和Reduce在內的更加豐富的數據操作接口。不同于MapReduce 的是Job 中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,這些特性使得Spark能更好地適用于數據挖掘與機器學習等需要迭代的大數據分析算法。基于Spark實現的機器學習算法庫MLLIB已經顯示出了其相對于Mahout 的優勢,在實際應用系統中得到了廣泛的使用。
最后,在大數據分析的應用過程中,可視化通過交互式視覺表現的方式來幫助人們探索和理解復雜的數據。可視化與可視分析能夠迅速和有效地簡化與提煉數據流,幫助用戶交互篩選大量的數據,有助于使用者更快更好地從復雜數據中得到新的發現,成為用戶了解復雜數據、開展深入分析不可或缺的手段。