1. 程式人生 > >大資料分析你不能不懂的6個核心技術

大資料分析你不能不懂的6個核心技術

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

1大資料生命週期

blob.png

圖1展示了一個典型的大資料技術棧。底層是基礎設施,涵蓋計算資源、記憶體與儲存和網路互聯,具體表現為計算節點、叢集、機櫃和資料中心。在此之上是資料儲存和管理,包括檔案系統、資料庫和類似YARN的資源管理系統。然後是計算處理層,如hadoop、MapReduce和Spark,以及在此之上的各種不同計算正規化,如批處理、流處理和圖計算等,包括衍生出程式設計模型的計算模型,如BSP、GAS 等。資料分析和視覺化基於計算處理層。分析包括簡單的查詢分析、流分析以及更復雜的分析(如機器學習、圖計算等)。查詢分析多基於表結構和關係函式,流分析基於資料、事件流以及簡單的統計分析,而複雜分析則基於更復雜的資料結構與方法,如圖、矩陣、迭代計算和線性代數。一般意義的視覺化是對分析結果的展示。但是通過互動式視覺化,還可以探索性地提問,使分析獲得新的線索,形成迭代的分析和視覺化。基於大規模資料的實時互動視覺化分析以及在這個過程中引入自動化的因素是目前研究的熱點。

有2個領域垂直打通了上述的各層,需要整體、協同地看待。一是程式設計和管理工具,方向是機器通過學習實現自動最優化、儘量無需程式設計、無需複雜的配置。另一個領域是資料安全,也是貫穿整個技術棧。除了這兩個領域垂直打通各層,還有一些技術方向是跨了多層的,例如“記憶體計算”事實上覆蓋了整個技術棧。

2.大資料技術生態

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

Hadoop是一個能夠讓使用者輕鬆架構和使用的分散式計算平臺。使用者可以輕鬆地在Hadoop上開發和執行處理海量資料的應用程式。Hadoop 是一個數據管理系統,作為資料分析的核心,彙集了結構化和非結構化的資料,這些資料分佈在傳統的企業資料棧的每一層。Hadoop也是一個大規模並行處理框架,擁有超級計算能力,定位於推動企業級應用的執行。Hadoop又是一個開源社群,主要為解決大資料的問題提供工具和軟體。雖然Hadoop提供了很多功能,但仍然應該把它歸類為多個元件組成的Hadoop生態圈,這些元件包括資料儲存、資料整合、資料處理和其他進行資料分析的專門工具。圖2 展示了Hadoop 的生態系統,主要由HDFS、MapReduce、Hbase、Zookeeper、Oozie、Pig、Hive等核心元件構成,另外還包括Sqoop、Flume等框架,用來與其他企業融合。同時,Hadoop 生態系統也在不斷增長,新增Mahout、Ambari、Whirr、BigTop 等內容,以提供更新功能。