對(duì)于許多人而言,Hadoop已經(jīng)成為了大數(shù)據(jù)的代名詞。它非常適合用于處理大數(shù)據(jù)流行定義中的三個(gè)V:數(shù)據(jù)量大(volume)、流動(dòng)速度快(velocity)和數(shù)據(jù)類型多(variety)。但是,在處理一些迭代數(shù)據(jù)較多的數(shù)據(jù)科學(xué)工作時(shí),如創(chuàng)建預(yù)測(cè)模型或數(shù)據(jù)可視化,這個(gè)分布式處理框架通常很少能發(fā)揮直接作用。
Hadoop分布式文件系統(tǒng)(HDFS)已經(jīng)進(jìn)化為可以存儲(chǔ)大量不同類型的數(shù)據(jù),而且近幾年里出現(xiàn)了各種各樣專門簡(jiǎn)化從Hadoop獲取分析數(shù)據(jù)的開源項(xiàng)目和商業(yè)技術(shù),比如在Hadoop查詢引擎上使用SQL的新特性。但是,惠普Vertica分析型數(shù)據(jù)庫(kù)的用戶指出,這些工具并不能完成他們企業(yè)內(nèi)的預(yù)測(cè)建?;驍?shù)據(jù)可視化工作,因此這將限制在分析應(yīng)用中使用Hadoop的潛在優(yōu)勢(shì)。
本月在美國(guó)波士頓舉行的2015年惠普大數(shù)據(jù)年會(huì)(HP Big Data Conference 2015)上,電商網(wǎng)站Etsy公司的高級(jí)數(shù)據(jù)庫(kù)工程師Chris Bohn向TechTarget記者表示:“Hadoop是一個(gè)面向批處理的系統(tǒng),雖然他們盡力嘗試將Pig和Hive置于頂層,但是它仍然還做不到最好。我認(rèn)為如果它能達(dá)到理想中的目標(biāo)那會(huì)非常好,但目前它是否足夠靈活地支持不斷的查詢操作呢?至少現(xiàn)在它還做不到。”
Bohn認(rèn)為,用于預(yù)測(cè)建模的數(shù)據(jù)不應(yīng)該存儲(chǔ)在Hadoop中。這會(huì)使分析師很難從HDFS獲取數(shù)據(jù),它需要有一個(gè)查詢引擎。而且,任何影響分析師獲取數(shù)據(jù)的東西都會(huì)延長(zhǎng)分析和發(fā)現(xiàn)業(yè)務(wù)價(jià)值的時(shí)間。
這就是Etsy公司使用Vertica數(shù)據(jù)庫(kù)保存所有建模數(shù)據(jù),并用一個(gè)Hadoop集群存儲(chǔ)非實(shí)時(shí)數(shù)據(jù)的原因。Bohn說:“僅僅囤積數(shù)據(jù)是沒有任何價(jià)值的。只有當(dāng)數(shù)據(jù)分析師能自己獲取數(shù)據(jù),他們才能更好地利用他們的時(shí)間。”
當(dāng)數(shù)據(jù)庫(kù)工程師遇見Hadoop
日本W(wǎng)eb門戶與電子商務(wù)網(wǎng)站DeNa的數(shù)據(jù)分析師向TechTarget記者透露,他們之前在一些基本的商業(yè)智能和分析應(yīng)用中遇到了類似的問題。該公司的分析基礎(chǔ)架構(gòu)部總經(jīng)理Kenshin Yamada指出,所有公司的點(diǎn)擊流數(shù)據(jù)都存儲(chǔ)在一個(gè)Hadoop集群中。但是,這使得分析師很難產(chǎn)生流量報(bào)表,也很難分析各種內(nèi)容的流行度。在從Hadoop創(chuàng)建每一個(gè)新報(bào)表時(shí),數(shù)據(jù)庫(kù)工程師都不得不編寫查詢給分析師提供他們所需要的數(shù)據(jù)。
2013年,DeNA在它的Hadoop系統(tǒng)上補(bǔ)充了一個(gè)Vertica數(shù)據(jù)庫(kù)。Yamada指出,這樣做提高了數(shù)據(jù)訪問便利性,縮短了分析師獲取所需信息的時(shí)間。相對(duì)于使用Hadoop作為分析數(shù)據(jù)源,新方法能夠更好地支持迭代的數(shù)據(jù)科學(xué)工作,因?yàn)檫@提高了Vertica系統(tǒng)的查詢執(zhí)行速度,從而允許分析師在相對(duì)較短的時(shí)間內(nèi)試驗(yàn)各種不同的設(shè)想。
Yamada指出,數(shù)據(jù)分析師“不應(yīng)該搜遍Hadoop只為了創(chuàng)建一個(gè)KPI儀表板。”
Hadoop仍然缺少對(duì)R語言的支持
Anmol Walia是客戶服務(wù)合同商24/7 Customer的高級(jí)應(yīng)用研究員,他在使用Vertica時(shí)遇到了類似的情況。就如同這家公司的名字一樣,他們需要提供7x24小時(shí)的服務(wù)網(wǎng)。它會(huì)提取點(diǎn)擊流數(shù)據(jù)和客戶提供的消費(fèi)客戶記錄,然后使用這些信息去預(yù)測(cè)哪些客戶在瀏覽電子商務(wù)網(wǎng)站時(shí)需要幫助,從而能夠主動(dòng)地發(fā)起干預(yù)。首先所有數(shù)據(jù)先進(jìn)入Hadoop,但是預(yù)測(cè)客戶需求的模型建立在Vertica上,而后者專門為這個(gè)工作從Hadoop獲取數(shù)據(jù)。
Walia指出,采用這種方法的一個(gè)原因是Vertica支持R編程語言,這是大多數(shù)公司數(shù)據(jù)分析師所使用的語言。相反,R與Hadoop之間并沒有簡(jiǎn)單的集成方法。
他指出,這兩個(gè)開源工具也可能集成在一起,但是它們是運(yùn)行在完全不同的基礎(chǔ)架構(gòu)上。Hadoop核心是一個(gè)分布式文件系統(tǒng),而R是單線程語言,專門用于處理單CPU的作業(yè)。而將它們集成在一起的方法通常需要許多的手動(dòng)編程工作。