企業可以利用hadoop以及所有與它相關的技術設計大資料環境,以滿足其特定的需求。但把所有的技術內建在一起并不是一件容易的事。
it團隊尋求建構大資料架構時有大量的技術可供選擇,他們可以混合搭配各種技術以滿足資料處理和分析需求。但是有一個問題存在:把所有需要的技術架構組合到一起是一項艱巨的任務。
在不斷擴充的hadoop生态系統中,選擇和部署合适的大資料技術是一個長期反複的過程,周期要以年計。除非公司管理者願花大量财力和資源來加速推動項目。選擇技術的過程中有失誤判斷是很常見的,一家公司的架構藍圖不一定适用于另一家組織,即便是完全相同的行業也不行。
bryan lari是美國德克薩斯州大學md安德森癌症研究中心(位于休斯頓)研究分析主任,他說:“我經常跟人說,這不是像你在亞馬遜下個訂單或者從蘋果商店買個東西那麼簡單的事。這是一件複雜的事,它需要一個過程。我們在半年或者一年之内是做不完的。這也不是可以套用公式就能應用的技術,盡管有很多案例或者使用者有成功經驗,但我們也可能用不同的工具來滿足我們的需求。”
md安德森的大資料環境集中在hadoop叢集中,在三月份的時候投入了生産環境,初步打算用來處理病人房間監視裝置傳輸回來的重要信号資料。不過,資料湖平台還包括hbase(與hadoop配合的nosql資料庫),hive(hadoop支援sql的軟體),還有各種其他apache開源技術,例如:pig、sqoop、oozie和zookeeper。此外,這家癌症治療和研究組織還部署了oracle資料倉庫作為資訊庫來支援分析和報表應用,還有ibm的watson認知計算系統提供自然語言處理和機器學習功能。未來出現新的資料可視化、治理和安全工具也必然會參與進來。
md安德森癌症中心的it團隊在2015年初就開始使用hadoop。為了示範可能的應用情況同時熟悉該技術,該中心首先使用基本的apache hadoop軟體建構了試點叢集環境。後來,他們部署了hadoop hortonworks分布式架構用于生産環境。
vamshi punugoti是md安德森癌症中興研究資訊系統的副主任,他說從這次試點項目中得到的經驗可以使他們處理架構調整更容易。随着新的大資料工具出現,總會有調整架構的可能性,一定需要功能增強或者替換元件。punugoti說:“這是個持續更新的過程,包括我們收集到的資料都在不斷變化着。如果我們認為(現有架構)可以處理一切那就太天真了。”
演進更好的架構
uber平台工程師團隊花了大約一年時間設計了多層大資料架構,但是這麼多技術元件搭建的有點倉促。uber公司hadoop團隊進階工程師vinoth chandar說,該公司的現有系統跟不上業務營運帶來的快速增長的資料量。結果,大部分資料不能進行實時分析,chandar認為這對于uber公司倡導實質性“實時叫車”理念來說是個大問題。
為了幫助營運經理實作資料驅動,chandar和他的同僚們搭建了hadoop資料湖環境,其中包括hbase、hive、spark處理引擎、kafka消息隊列系統,還有其它一些技術。其中一些技術是内部建構的,例如:有一款資料提取工具streamific。
有了該架構之後,uber公司将追趕大資料和分析的藝術狀态。但是,這并不是容易做到的。他半開玩笑地補充說:“為了把這些技術元件整合到一起,我們十個人幾乎一年沒有睡覺。”
架構的挑戰對于組織來說可不是鬧着玩的。gartner咨詢公司預測,到2018年,70%的hadoop部署将無法實作他們節約成本和收入增長的目标,主要原因是技能不足和技術整合困難。gartner公司分析師merv adrian說,整合障礙還在加劇,hadoop分發商與大資料技術有關的數字還在穩步攀升,這代表了部署hadoop的公司對hadoop技術支援的需求量趨勢。
在2016年太平洋西北地區bi峰會上,adrian列舉了46種hadoop相關的開源技術創新,這些産品都是由一家或者多家分發商提供支援服務的。但是,要把這些元件放到大資料架構中卻是留給使用方的工作。“大多數hadoop項目都像是藝術工作,我們都要把這些技術元件整合到一起使用。”
執行過程中的變化
這種整合拼湊工作是非常艱巨的任務,即便hadoop不是架構中的一部分。celtra公司提供了一個平台可以設計線上顯示和視訊廣告,有幾部分已經在基于雲的處理架構中陸續部署了,現在正把spark及其sql子產品整合到amazon簡單存儲服務(s3)、mysql關系型資料庫和snowflake計算的資料倉庫系統。
grega kespret是這家波士頓公司的分析總監,他說:“我們經曆了許多嘗試和錯誤。比較有挑戰的是要設計一套架構滿足業務需求,但還不能過度設計。”他提醒說,如果你做了,可能會以一片混亂而告終。
最開始的時候,celtra公司通過網站通路者和s3中的其它可跟蹤事件收集廣告互動資料,然後使用spark作為etl引擎(抽取、轉換和加載)聚合資訊,分析mysql中的營運資料用于報表。但是,原始的事件資料是很難分析的。celtra公司增加了一套獨立的基于spark的分析系統,但是仍然需要該公司的資料分析師們團結一緻去清理和驗證事件資料,這個過程的工作是很容易出錯的。
在2015年底的時候,kespret和他的團隊經過各種嘗試最終放棄了其它技術,選擇了snowflake作為事件資料存儲系統,然後把資料按使用者會話進行組織之後會存儲到mysql,這樣資料分析師用起來更友善。
snowflake系統在去年四月份投入生産使用,比該軟體軟釋出較早一點。kespret說,下一步是要在snowflake中存儲資料,評估第二步etl過程,然後處理資料存儲到另一套mysql資料庫中。
大資料開發的“狂野西部日”
hadoop合作設計者doug cutting認為,技術選擇方案過多導緻了建構大資料架構過程的複雜化。對于許多希望利用hadoop及其同生技術的使用者組織,“這真像是狂野西部時期的泡沫”。cutting現在是hadoop供應商cloudera公司的首席架構師。
不過cutting認為,大資料系統的益處也正展現于此——這種多樣性帶來了架構靈活性,支援各種新的分析應用,而且it成本更低。是以,費一番周折實作內建也是值得的。他認為大多數問題是因為對這些開源軟體的開發和部署流程不熟悉引起的。他說:“hadoop很快就不會令人生畏,人們會習慣使用它的。”
或許是這樣吧,不過雅虎公司(據聲稱是最大的hadoop使用者群)的it經理們表示,他們并沒有完全消除壓力。cutting曾在雅虎總部工作(位于美國加州sunnyvale),那時候hadoop在2006年剛啟動。雅虎這家web搜尋和網際網路服務公司是該技術的第一家生産環境使用者。目前,該公司(雅虎)的大資料環境有40個叢集,混雜了hbase、spark、storm實時處理引擎和其它hadoop相關技術。
sumeet singh是雅虎公司負責雲計算和大資料平台産品開發的進階總監。他說,總的來說,圍繞hadoop建立的巨大技術生态體系對使用者是有利的。singh表示,hadoop這個開源架構加速了技術開發的步伐,使it團隊可以集中精力規劃和創造對他們公司有用的工具,而不必自己完成所有工作。“我知道有許多開源項目,不過不是每個人都能廣泛接觸采納,這其中會有真正明确獲益的赢家。”
大資料的世界并不總是陽光明媚的,singh說:“總會有各種問題随之而來”,他的頭腦快要被各種開源架構和大資料架構涉及的數不清的技術撐爆了。
本文作者:craig stedman
來源:51cto