接著前兩篇對大數(shù)據(jù)的介紹之后,本篇從實際操作的角度分享大數(shù)據(jù)內部關鍵的運作機制,這是在真正開始學習大數(shù)據(jù)之前對大數(shù)據(jù)的一個概覽。為的是讓我們成為大數(shù)據(jù)的主人。以下是小編為你整理的怎么樣學大數(shù)據(jù)分析 ?
大數(shù)據(jù)運行機制 ?
這是對大數(shù)據(jù)運行機制的概覽,如果你閱讀過上一篇(OODA),就會感覺非常熟悉。不錯,他們在概念上是如出一撤的!不過實際操作卻又有巨大的不同。
?
收集數(shù)據(jù): ?
大數(shù)據(jù)的*站就是收集和存儲海量數(shù)據(jù)(公開/隱私)?,F(xiàn)在每個人都是一個巨大的數(shù)據(jù)源,通過智能手機和個人筆記本釋放出大量的個人行為信息。獲取數(shù)據(jù)似乎已經(jīng)變得越來越容易,數(shù)據(jù)收集這一模塊*的挑戰(zhàn)在于獲取海量數(shù)據(jù)的高速要求以及數(shù)據(jù)的全面性考慮。 ?
清洗數(shù)據(jù): ?
傳統(tǒng)商業(yè)智能在數(shù)據(jù)清洗處理的做法(ETL)是,把準確的數(shù)據(jù)放入定義好的格式中,通過基礎的抽取統(tǒng)計生成高維度的數(shù)據(jù),方便直接使用。然而大數(shù)據(jù)有個最突出的特征——數(shù)據(jù)非結構化或者半結構化。因為數(shù)據(jù)有可能是圖片,二進制等等。數(shù)據(jù)清洗的*挑戰(zhàn)來了——如何轉化處理大量非結構數(shù)據(jù),便于分布式地計算分析。 ?
硬件: ?
這是大家都很熟悉的概念,和大數(shù)據(jù)相關的是虛擬化。主要包括存儲虛擬化,計算虛擬化。因此又說虛擬化存儲和云計算是大數(shù)據(jù)的“左膀右臂”!!大數(shù)據(jù)還需要支持多種類型的數(shù)據(jù)庫,因此一個支持擴展的數(shù)據(jù)倉庫是大數(shù)據(jù)中的基礎。 ?
HBase/Sqoop/Flume(數(shù)據(jù)導入與導出): ?
HBase是運行在HDFS架構上的列存儲數(shù)據(jù)庫,并且已經(jīng)與Pig/Hive很好地集成。通過Java API可以近無縫地使用HBase。 ?
Sqoop設計的目的是方便從傳統(tǒng)數(shù)據(jù)庫導入數(shù)據(jù)到Hadoop數(shù)據(jù)集合(HDFS/Hive)。 ?
Flume設計的目的是便捷地從日志文件系統(tǒng)直接把數(shù)據(jù)導到Hadoop數(shù)據(jù)集合(HDFS)中。 ?
以上這些數(shù)據(jù)轉移工具都極大的方便了使用的人,提高了工作效率,把經(jīng)歷專注在業(yè)務分析上! ?
ZooKeeper/Oozie(系統(tǒng)管理架構): ?
ZooKeeper是一個系統(tǒng)管理協(xié)調架構,用于管理分布式架構的基本配置。它提供了很多接口,使得配置管理任務簡單化! ?
Oozie服務是用于管理工作流。用于調度不同工作流,使得每個工作都有始有終。 ?
這些架構幫助我們輕量化地管理大數(shù)據(jù)分布式計算架構。 ?
7 ?
Ambari/Whirr(系統(tǒng)部署管理): ?
Ambari幫助相關人員快捷地部署搭建整個大數(shù)據(jù)分析架構,并且實時監(jiān)控系統(tǒng)的運行狀況。 ?
Whirr的主要作用是幫助快速的進行云計算開發(fā)。
?
Mahout(機器學習): ?
Mahout旨在幫助我們快速地完成高智商的系統(tǒng)。其中已經(jīng)實現(xiàn)了部分機器學習的邏輯。這個架構可以讓我們快速地集成更多機器學習的智能!! ?
大數(shù)據(jù)服務對比 ?
不同大數(shù)據(jù)服務提供商有不同的產(chǎn)品線,因此不同提供商的產(chǎn)品適用場景也會有所不同。我們重點分析三大服務提供商的大數(shù)據(jù)服務架構。 ?
亞馬遜 ?
擁有大量關于大數(shù)據(jù)處理的經(jīng)驗。初期大數(shù)據(jù)使用者大部分都使用亞馬遜打造的Hadoop架構服務(EC2)。 ?
經(jīng)過厚重沉淀之后,Amazon在2009年提供開發(fā)EMR大數(shù)據(jù)服務。EMR服務提供了多種大數(shù)據(jù)處理分析方案,比如簡單查詢服務,關聯(lián)數(shù)據(jù)分析服務。EMR服務可以使用Hadoop語言繼續(xù)開發(fā),并且訪問EMR服務的步驟也相當簡單并且安全。 ?
亞馬遜使用托管DynamoDB代替HBase,作為易于擴展的NoSQL數(shù)據(jù)庫。
?
谷歌 ?
谷歌云服務平臺出類拔萃,它所提供的并非虛擬化解決方案,而是提供由API定義的服務和應用程序。程序員無需顧慮硬件,甚至不需要關心后臺的運作行為。 ?
當然這從某種程度也限制了程序員的工作,不過如果谷歌的服務適合業(yè)務,那么使用起來將是全世界*效快捷的大數(shù)據(jù)架構服務。 ?
谷歌的AppEngine作為云平臺管理服務,提供了基于MapReduce的大數(shù)據(jù)并行計算服務。所有的這些服務都可以通過REST風格的API訪問。 ?
BigQuery作為分析的數(shù)據(jù)庫,提供了類SQL的查詢語法。它的性能要比Apache Hive來得快! ?
微軟 ?
微軟在大數(shù)據(jù)中屬于后來居上者。通過Microsoft Azure大數(shù)據(jù)服務平臺,微軟融合自身海量成熟的軟件,例如SQL Server,提供了多種IaaS服務。 ?
微軟的服務面向更多的程序員,使得可以使用不同語言來對接大數(shù)據(jù)平臺Azure。Azure旨在提供一個生態(tài)的大數(shù)據(jù)分析開發(fā)環(huán)境,使得普通研究員也可以施展自己對大數(shù)據(jù)的理解! ?
Hadoop大比較 ?
為什么選擇Hadoop,而不是其他數(shù)據(jù)處理架構,比如傳統(tǒng)關系型數(shù)據(jù)庫或者其他。Hadoop在我的眼里,更像是在“暴力解鎖”,它可以處理每一條數(shù)據(jù),乃至每一種可能的設想。Hadoop的巨大貢獻在于快速分析大數(shù)據(jù)所隱藏的事實,這在過去也許需要幾天甚至幾個月的時間才能完成,而Hadoop很可能只需要幾分鐘甚至幾秒鐘的時間就可以很完整地做好! ?
關系型數(shù)據(jù)庫的幾個特點使得它無緣大數(shù)據(jù)分析,當然它也有自己擅長的領域。 ?
(1)磁盤可以存儲大量內容,卻無法快速存取!并且存儲空間的擴展是有限度的。 ?
(2)在更新一小部分數(shù)據(jù)的同時,會對整張表乃至整個數(shù)據(jù)庫都會產(chǎn)生影響。 ?
(3)要求存儲的數(shù)據(jù)都是結構化的,能處理的數(shù)據(jù)也都是結構化。 ?
網(wǎng)格計算嘗試通過多臺機器(不同的任務)處理和管理共享文件系統(tǒng),最終達到大數(shù)據(jù)計算的目的。這樣的嘗試以網(wǎng)絡帶寬的約束而失敗告終。因為數(shù)據(jù)量達到GB級別以上時,網(wǎng)格計算的方法顯得力不從心。不過網(wǎng)格計算用在中小型科研實驗確實是說一不二的選擇! ?