四年前的硅谷,風投埃里森拿出一億美金來投資大數據公司,他認為Hadoop技術在未來的若干年中會從底層的數據平臺,從傳統的關系型數據庫進行遷移。數據的分析層會被全新的數據分析工具所替代,可視化層和應用分析會有更多的新工具出現,并認為這個市場將達到幾百億美金的規模。
過去幾年,Hadoop的發展非常迅猛。我們常講大數據的四V特征,Hadoop在大數據處理上表現出的處理量、性能、挖掘能力的提升和碎片化處理能力,使其得到越來越廣泛的應用。
一、Hadoop的主流應用場景:數據倉庫的主要組成部分
傳統的企業有若干個主機,用于銷售、運營管理等等,產生的數據首先經過ODS層,將數據從多個業務系統中集中起來,進行清洗、轉換等集成操作,然后將過加工的數據進入企業IT架構的核心——數據倉庫進行統計、挖掘和分析。最后用可視化工具進行展現。這是傳統的企業數據倉庫的架構,經常采用主流的甲骨文等數據庫技術來實現。
Hadoop作為數據倉庫組成部分的四個驅動力
互聯網公司早年的時候,是把Hadoop做在數據倉庫的核心,比如Facebook早期的時候是從服務器采集是通過實時的日志的采集工具,經過Hadoop把Hadoop作為數據分析工具,呈現把結果放在甲骨文中做展現。
互聯網公司之所以這么做,是因為互聯網數據量大到在傳統的數據庫不能處理。現在傳統的企業也面臨同樣的問題,將Hadoop作為數據倉庫主要組成部分有四個驅動力:
效率:傳統的數據倉庫技術已經面臨非常繁重的數據分析任務,處理的延遲從一天到了一周。
成本:傳統的數據架構成本動輒幾千萬。Hadoop可以實現成本若干倍的降低。
數據來源多樣:視頻、音頻等企業非結構化數據來源增多。MapReduce對于非結構化或半結構化數據的讀取非常有效。
數據分析需求的演進: 數據分析不再只滿足于統計。使用Hadoop的技術,能夠對數據進行深度的挖掘和分析,實現對未來的預測。
Hadoop改變企業數據倉庫架構的線路圖
第一步:數據倉庫的補充
2011、2012年的時候 Hadoop主要是作為數據倉庫的補充在做數據的清洗。這一層Hadoop很擅長。Hadoop的優勢是能夠把計算任務對全要素進行統計分析,這是方式非常適合簡單的場景,早年Hadoop的最佳用途是作為ETL的平臺。
第二步:逐漸進入核心
隨著Hadoop生態系統逐漸完善,有更多的數字化工具支持Hadoop, Hadoop開始進入數據倉庫的核心領域。有些企業開使用Hadoop來直接做數據可視化,在有些行業中已經開始用Hadoop逐漸取代傳統的關系數據庫來建立數據倉庫。從整個的數據倉庫的架構來看,有一半的架構已經開始被Hadoop覆蓋了。
第三步:Hadoop使資源管理變為可能,最終將取代企業完整的整據倉庫
在一兩年之內有些企業完整的數據倉庫架構都可能會被Hadoop取代掉。
過去企業數據倉庫的時候任務很繁重,系統效率低下。造成這種狀況的重要原因是,客戶把過多的負載放在數據倉庫上面,數據倉庫本身又沒有資源配合的方式。
Hadoop2.0推出了管理框架,使得資源管理變成了可能,使得數據倉庫支撐多個部門的數據分析和訪問更加高效。舉例來說,每個部門的業務都是動態創建虛擬集群實現的,每個集群都有一定的資源配額,這樣的配額用時不會超過這個配額,使得用戶任何的負載不會影響其他的用戶,這成為數據倉庫里一個重要的實現,數據倉庫完全平滑,24小時不間斷運行的保障。過去上千人在訪問Hadoop的時候,也是通過調度機制實現的,隨著Hadoop2.0的出現和資源管理能力的提升,通過資源管理層可以方便的配置資源。
我們可以設定CPU的內存和存儲資源,每個部門使用的時候有配額的最低保障。當另外一個部門的用戶上線使用的時候,比如創建了一個集群,這時會把你的部分資源還給后面的第二個用戶,原來第一個用戶的資源被收縮了,更多的用戶進來的時候,第一個用戶的資源被進一步收縮,收縮到一個最低的指標。一方面充分保障了每個用戶最低資源的配額,第二也保證系統整體運行的情況下可以充分有效利用整體的計算資源。
二、隨著云計算和物聯網的逐漸興起,實時流數據的處理將成為關注重點
云計算和物聯網使得數據呈現兩個主要特點。首先,數據在沒有人工干預的情況下24小時不間斷的產生;第二數據并發量高,使得單一的統計已經不能滿足用戶要求,對數據模式的分析和深度挖掘的要求增強
現在的大數據處理不光需要做統計,而是需要做機器學習,快速地檢測出異常的狀態。
比如在交通行業部署的實時監控平臺,這是一個發展得比較成熟的案例,在全國已經得到了廣泛部署。其主要用途是把路面上裝的攝像機的照片和分析出來的車牌等信息,實時的傳送到中心的大集群中,然后把所有的車流信息實時匯總至省級集群部署,通過流處理形成實時的應用,比如說區間測速、實時路況、公安部實時布控的應用等。相關數據也會進入到數據庫,對外提供車輛軌跡的查詢,實時路況的檢索,比如行車分析和交通管理的應用等。
過去在常見的部署架構中由數據集群做實時的處理時,包括應用和查詢的功能,數據會經過蜂窩隊列,分布量是非常高的,單節點的服務器可以支撐一秒鐘十萬條結果的插入,基本上是滿負荷。
傳統的流處理加上Hadoop,可以解耦前端應用和后端的分析應用。由于分布隊列的吞吐量很高,可以在幾百萬個地方寫入,可以基本滿足上千萬傳感器同時傳送峰值的壓力,后端的是流處理的引擎做數據分析。
我們把數據流按時間切片,每個小切片一百毫秒左右。我們需要在數據經過這個流的時候在流上直接做異常檢測,包括多種算法,最基本的是希望將這些算法直接移植到流上,實現流式的異常檢測。這里面有一個挑戰是,剛開始出現的異常可能并不準確,盡量要避免誤報的情況,通常會用SQL來做聚合和預先的數據處理,而Spark可以實現小片的批處理流程,我們在小的批量上能夠實現延遲是一秒鐘內可以發出告警。
這種方式的好處是可以對實時數據和歷史數據實現綜合的分析,都同在一個數據庫中,可以在上面用完整的統計分析的挖掘,包括可以做計算和預測,這些分析超出了以前統計的范疇,而且需要歷史數據和實時數據進行統一的分析。這個領域今年可能會是比較熱門的領域,預計這個模式在物聯網實時處理上得到更加廣泛的應用。
三、大數據技術能給我們的生活帶來什么
我們把數據源分兩大類:
1.人的行為產生的數據:包括網上購物、通過運營商通話、發微信都會留下數據,這些分析無外乎是給客戶提供更好的服務,或者是幫助商家更準確的找到客戶進行精準營銷;
2.機器產生的數據:幫助發現一些客觀規律,比如說交通的模式是怎樣的,用電的消耗量和氣侯和電網的關系是怎樣的,也對數據進行分析和能夠做實時報警和診斷優化生產線的流程提供依據。
數據分析和挖掘開始出現,目前還不是主流。大數據描繪的場景是能夠進行預測,這逐漸開始成為事實。
人流密度實時預警
比如通過對基站的數據基本上可以比較粗的定位人的大致位置。通過對數據進行密度的統計,可以非常迅速的找出區域內部密度的值,基礎值是每個基站每英里多少個用戶數,這是基站可以提供的數據,利用這個數據可以非常快的知道人群的密度。
也可以利用銀聯的數據,我們的合作伙伴用銀聯的數據把上海的商圈都找出來了,商圈是根據過去三個月銀聯的刷卡記錄,根據消費額、消費地點以及消費商戶的類別進行統計的,上海14個商圈是比較密集的,有些商圈我們也沒去過,比較偏遠的反而是商圈。上海的架構看基礎是衛星城的架構,和北京不同,周圍有很多密集的商圈。
這個數據也可以做人群的預測,商圈是人群密集的地方,隨著踩踏事件的出現,公安的客戶也來找到我們,發現這個數據對他們很有用,因為我們可以統計節日間實時的刷卡記錄,可以判斷晚七點到九點消費集中的區域,這些區域是人。
垃圾短信分類
利用流式的機器學習做垃圾短信的分類,在流上做實時的檢測,速度是非常快的,可以流上實時的實現。運營商所有的短信經過流式系統可以迅速的判斷出哪些消息是垃圾短信,來凈化現在運營商的垃圾短信泛濫局面。
消費者行為預測
機器學習類:協同過濾、相似度主要是比較商品間的相似程度進行推薦,一些新的應用也比較有趣,像是基于時序關系的預測。每次消費行為和時間是有關的,一個人經常跑到陸家嘴有一個明顯的地方,帶著小孩會去海洋公園玩一下,有時看東方明珠看一下,然后去正大廣場吃個午飯,這是統計出一個模式,這是時序相關性,我們可以對客戶推送一些比較精準的廣告。
總結
我們看到Hadoop主要的用途是數據倉庫中,未來會逐漸的開始把更多的負載牽到上面來;第二物聯網逐漸的興起,針對一些挑戰我們需要在流上做更強的分析和機器學習,這種新的架構也層出不窮;第三是全新的集群的應用。可以預見的是,隨著云計算和物聯網等技術的不斷發展,利用大數據的分析能力實現對未來的洞察將逐漸成為現實。