精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:云計(jì)算技術(shù)專區(qū) → 正文

阿里云ODPS的愿景、技術(shù)實(shí)現(xiàn)與難點(diǎn)

責(zé)任編輯:一三 |來源:企業(yè)網(wǎng)D1Net  2014-04-09 11:05:37 本文摘自:InfoQ

2014年1月,阿里云將其ODPS服務(wù)開放公測。2014年4月,阿里巴巴大數(shù)據(jù)競賽的所有參賽者將在ODPS平臺(tái)上進(jìn)行算法的調(diào)試、測試;同月,ODPS也將開放更高級(jí)的功能進(jìn)入公測。

InfoQ中文站近日跟ODPS平臺(tái)的技術(shù)負(fù)責(zé)人徐常亮進(jìn)行了采訪,交流了有關(guān)ODPS的愿景、技術(shù)實(shí)現(xiàn)、實(shí)現(xiàn)難點(diǎn)等話題。

InfoQ:先介紹一下ODPS現(xiàn)在的情況吧。這個(gè)產(chǎn)品能做什么?

徐常亮:ODPS是2011年正式有的名稱,全稱叫做Open Data Processing Service,簡單來說就是數(shù)據(jù)處理的服務(wù)。它的定位是在飛天之上,提供數(shù)據(jù)倉庫、數(shù)據(jù)挖掘和其他數(shù)據(jù)應(yīng)用等功能。

2011年的時(shí)候我們嘗試對(duì)外提供ODPS,當(dāng)時(shí)有一些小試點(diǎn),但是后來發(fā)現(xiàn)各方面條件沒有完全成熟,不管是外部對(duì)云的了解還是內(nèi)部對(duì)ODPS未來的預(yù)期都不是很清晰,所以一直到2012、2013年,它發(fā)展的節(jié)奏都比較慢。去年大概6、7月的時(shí)候有一些變化,因?yàn)轱w天到了5K的里程碑,在技術(shù)能力方面的顧慮已經(jīng)小了很多。因?yàn)轱w天是分布式操作系統(tǒng),它提供最基本的存儲(chǔ)、CPU調(diào)度能力、內(nèi)存使用、網(wǎng)絡(luò)等功能,是最基本的資源包裝整合,相當(dāng)于是一臺(tái)計(jì)算機(jī),而我們是在它上面開發(fā)的應(yīng)用,相當(dāng)于是一個(gè)分布式的數(shù)據(jù)倉庫,讓用戶可以在上面做基本的ETL處理、SQL查詢、數(shù)據(jù)導(dǎo)入導(dǎo)出等,還有一些MATLAB、統(tǒng)計(jì)軟件的功能。

除了這些基本功能之外,我們還提供了一整套數(shù)據(jù)挖掘算法Xlib(見 http://102.alibaba.com/competition/addDiscovery/faq.htm 的說明),讓用戶可以建模、做高級(jí)的數(shù)據(jù)分析。另外,我們還可能提供一些編程框架,讓用戶自己可以編寫程序進(jìn)行數(shù)據(jù)處理,比如單機(jī)上有Python、Java,我們就提供MapReduce編程框架、或者專門為了解決迭代問題的Graph編程框架(也叫做BSP,跟Google Pregel模型很類似)。我們會(huì)逐漸加入各種內(nèi)容,凡是涉及數(shù)據(jù)處理的工具和編程框架我們都會(huì)想辦法加進(jìn)去,讓開發(fā)者和用戶可以對(duì)數(shù)據(jù)進(jìn)行各方面的操作。

總而言之,ODPS就是基于飛天分布式系統(tǒng)提供的一套關(guān)于數(shù)據(jù)處理各方面工具和框架的服務(wù)。

InfoQ:對(duì)應(yīng)AWS的話,相當(dāng)于是RedShift和EMR吧?

徐常亮:可以這么去對(duì)應(yīng)。純粹從功能來講,我們會(huì)提供類似EMR和RedShift的功能。但我們不僅于此,我們還有建模的庫、機(jī)器學(xué)習(xí)的庫,從編程框架的豐富性上面也不僅僅是MapReduce,還有迭代框架。暫時(shí)來看我們做的可能更多,當(dāng)然AWS也在逐步提供更多的功能。

另外有一個(gè)很大的不同是,ODPS是作為一個(gè)有機(jī)的整體來提供這些服務(wù)的,不同的功能是服務(wù)的不同層面,而不是單賣的功能。比如在我同一個(gè)體系里面,我數(shù)據(jù)倉庫類型的一個(gè)SQL處理好了,我緊接著一個(gè)MapReduce的作業(yè)就可以很好地關(guān)聯(lián)起來,他們的物理存儲(chǔ)數(shù)據(jù),以及描述這些數(shù)據(jù)的元數(shù)據(jù),都是在同一個(gè)體系里面。不像RedShift和EMR,它們是在一邊處理完了之后,要把數(shù)據(jù)導(dǎo)出到另一套系統(tǒng)里面去處理,它們的元數(shù)據(jù)描述不是互相共享的,要有一個(gè)第三方來做對(duì)應(yīng),比如RedShift表結(jié)構(gòu)是怎樣的,EMR的結(jié)構(gòu)要怎樣相應(yīng)的去設(shè)計(jì)。ODPS希望讓對(duì)象都在一起,讓要處理的對(duì)象和元數(shù)據(jù)都在一個(gè)ODPS體系里。在此之上,你要做授權(quán)也好,管理維護(hù)也好,都是同一個(gè)界面,對(duì)用戶而言就是在一套系統(tǒng)里面做不同的處理,用戶覺得我就是在一臺(tái)機(jī)器里面,只不過在不同的文件夾。AWS的話,用戶會(huì)感知這是兩臺(tái)計(jì)算機(jī)。

另一個(gè)區(qū)別是,ODPS希望做成服務(wù):open data processing service,我們希望看到用戶把數(shù)據(jù)往里灌,相當(dāng)于是公有云的用法,總之?dāng)?shù)據(jù)都放在同一個(gè)系統(tǒng)里面。如果以后用戶之間希望他們的數(shù)據(jù)之間發(fā)生一些作用,則能夠非常容易的做到,只需做一些互相授權(quán)就可以。而AWS的RedShift和EMR對(duì)各自用戶而言都相當(dāng)于是私有云,它自己處理的東西只在它自己的空間里,如果要跟外部交互,可能必須要借助S3等外界方式。當(dāng)然了,可能它原本的設(shè)計(jì)目標(biāo)就是這樣,這個(gè)也談不上優(yōu)劣,只是目標(biāo)不同。

在我們這個(gè)體系里,因?yàn)橛脩舻臇|西都在一個(gè)平臺(tái)上,所以我們其實(shí)也可以像蘋果那樣開一個(gè)應(yīng)用市場,用戶把數(shù)據(jù)挖掘算法或者清理流程當(dāng)做一個(gè)應(yīng)用來發(fā)布,別人如果想用可以來買。當(dāng)然這個(gè)可能之后有一系列的如何算錢之類的問題要處理,但平臺(tái)在這兒,如果商業(yè)、產(chǎn)品愿意多考慮,這個(gè)事情也是水到渠成的。這個(gè)和整個(gè)阿里巴巴的愿景是相關(guān)的:阿里巴巴想成為數(shù)據(jù)分享的第一平臺(tái)。這就真的要有這么大的一個(gè)地方做存儲(chǔ),要有那么大的計(jì)算能力,讓用戶有能力來處理大數(shù)據(jù),還要保證安全。其實(shí)安全也是這次大賽我們比較緊張的地方:我們既要允許用戶的代碼跑上來,又要保障用戶的數(shù)據(jù)安全,這是個(gè)非常大的挑戰(zhàn)。

InfoQ:你們組是怎樣分工的?

徐常亮:大致有三個(gè)方向:數(shù)據(jù)倉庫場景,數(shù)據(jù)挖掘場景,編程框架場景。其中編程框架不僅是SDK,還會(huì)有一些重新定義,會(huì)引入一些新的框架。比如Hadoop上有Hive這樣用SQL做的,還有Yahoo的Pig——完全是另外一種語言,還有現(xiàn)在很火的Spark,雖說是基于Scala,但數(shù)據(jù)處理那一層又是抽象了一層出來,提供了groupby、filter這些算子。我們也會(huì)提供類似的東西,或者讓用戶根據(jù)我們提供的基礎(chǔ)編程能力來定義自己的框架。也可以說我們今后可能會(huì)自己再造一套分布式系統(tǒng)的處理語言,或者讓用戶來創(chuàng)造也有可能。

面向數(shù)據(jù)倉庫的SQL,和數(shù)據(jù)挖掘有一個(gè)Xlab讓用戶能像寫R或者M(jìn)adlib、MATLAB一樣建模,這些是基本算法的包裝,都是用戶可見的。還有很多模塊,大家不一定看得見比如SQL的執(zhí)行引擎怎么做,數(shù)據(jù)的存儲(chǔ)怎么做。去年我們做了一個(gè)比較大的事情,我覺得跟飛天5K可以媲美:飛天5K是單集群5000臺(tái),但今天5000臺(tái)當(dāng)然也是不夠的,你需要有多個(gè)5000臺(tái)。ODPS就有一套系統(tǒng)能夠管理多個(gè)集群,同時(shí)讓用戶覺得自己只是面對(duì)一個(gè)集群。這里涉及很多策略,決定你的計(jì)算到底在哪個(gè)集群上跑,數(shù)據(jù)在哪個(gè)集群的哪臺(tái)機(jī)器上存放,是否在多個(gè)集群上都有存放,多個(gè)集群間數(shù)據(jù)的平衡復(fù)制怎么做等等。這個(gè)東西管的事情是比較多的,我們對(duì)外希望做到比較透明化。

InfoQ:你個(gè)人主要關(guān)注的方向是什么?

徐常亮:和計(jì)算相關(guān)的我都關(guān)注。比如數(shù)據(jù)倉庫SQL這塊,從解析到執(zhí)行計(jì)劃到執(zhí)行引擎、存儲(chǔ),我都會(huì)看。這塊是我直接負(fù)責(zé)。另外還有編程框架這塊也是我這邊會(huì)看的。這兩塊的同學(xué)直接匯報(bào)給我。另外,整體ODPS的架構(gòu)怎么做、上面的控制集群怎么做的,我也會(huì)參與。

InfoQ:你們做過的這些東西當(dāng)中,你覺得最值得跟我們分享的一件事是什么?

徐常亮:可能有一點(diǎn)是比較有難度的,就是怎么做開放。今天我們看Hadoop社區(qū),因?yàn)樗情_源的,大家對(duì)它各方面都有所了解,所以可以基于它的架構(gòu)出很多新的東西。新東西都是有跡可循的,不是突然就冒出來的,Hadoop上的很多新東西都是基于單機(jī)時(shí)代的理論,比如數(shù)據(jù)庫上的理論,這些東西都是有一定基礎(chǔ)的,可能今天是有人把它們應(yīng)用到了分布式環(huán)境下就成了新東西。

ODPS是開放數(shù)據(jù)處理服務(wù),而開放不一定是開源,目前飛天和ODPS的代碼都還沒有公開的計(jì)劃,即使現(xiàn)在公開出去你也用不了,因?yàn)橐蕾嚭芏嗯涮自O(shè)施。所以,在不開源的情況下做開放,這里面需要很好的平衡。

開放,意味著讓用戶自由、方便的使用我們的計(jì)算能力,充分挖掘數(shù)據(jù)的價(jià)值。對(duì)ODPS而言,要做到開放,讓用戶的想象力充分激發(fā),取決于我們能把編程框架做得多漂亮。編程框架很重要。SQL、算法庫這些可能更多面向BI的人員,他們可以拿相對(duì)現(xiàn)成的東西來用;開放數(shù)據(jù)處理服務(wù)在編程框架上做的事情更多是面向開發(fā)者,讓他們根據(jù)我們開放的引擎、構(gòu)造通過接口暴露出去,讓他們能夠用,又不至于把下面的運(yùn)作模式都暴露出來,既要讓用戶有很高的定制權(quán),又不違背我們的安全原則和我們對(duì)分布式和單機(jī)的平衡選擇。

MapReduce就是一個(gè)很好的方式,因?yàn)橛腥私o我們領(lǐng)過這條路,大家覺得這個(gè)方法比多線程處理鎖的關(guān)系要容易很多,仿佛在寫一個(gè)單機(jī)程序,只不過步驟不同。所以,我們提供的MapReduce可以照抄已有的東西。但是今后很多東西可能不是兩個(gè)步驟就能處理完的,我們想用DAG——就是有向無環(huán)圖,用比如現(xiàn)在的YARN或者M(jìn)apReduce 2.0來支持這樣的理念,像Hortonworks那個(gè)Tez框架就能支持一連串的、若干個(gè)task相繼的關(guān)系,只要你不要成環(huán),能描述依賴關(guān)系為有向無環(huán)圖,我們都能把它分解出來,讓用戶在各個(gè)階段做什么操作,這樣來定制。這個(gè)東西我們會(huì)拿出來給用戶用。當(dāng)然對(duì)開發(fā)者來說,DAG就比MapReduce復(fù)雜一些,但它的處理能力和自由度更高。

我們還在想一些能幫用戶做包裝的東西,比如寫一個(gè)wordcount:可能用戶寫一個(gè)MapReduce也很簡單,但如果在SQL里面寫就只要一個(gè)select和groupby就完成了,一句話就覆蓋了wordcount的東西。所以,我們能不能給用戶再包裝一些語義?我們提供一個(gè)groupby的算子,用戶就可以用。SQL雖然也被稱為一門編程語言,但是它畢竟不像我們一般語言的邏輯,你可以寫for循環(huán),if之類的,控制能力很強(qiáng),而SQL就感覺你只能表述一下自己想干什么,后面的細(xì)節(jié)很難控制,所以開發(fā)人員會(huì)感覺受局限。提供類似于SQL的基本算子——groupby、filter這種想法,在Spark里面也有類似的體現(xiàn),我們可能也會(huì)做類似的事情。我們會(huì)考慮是否有一些東西能沉的更底層一些,或者有些東西可以拔高一些,以此來做一些設(shè)計(jì)或權(quán)衡。

當(dāng)然這個(gè)思路可能有很多,我只是提出幾個(gè)點(diǎn),如MapReduce、DAG、結(jié)合SQL算子來提供高層功能,讓用戶跟寫程序一樣。我覺得寫一個(gè)SQL可能還不是寫程序,寫程序還是有變量賦值、關(guān)系等更多操作。今后我也不知道會(huì)不會(huì)有別的,但這幾個(gè)地方我們會(huì)下很大的力氣,希望在整個(gè)大體系下做到安全并提供關(guān)鍵功能,在里面能做迭代、廣播等MapReduce不提供的東西,讓這些都能通過編程框架放出去,外面的人就能更好的控制分布式系統(tǒng)所具有的能力。如果真能做到的話,我覺得就能把開放做的很好。

InfoQ:所以從某種程度上而言,Hadoop下面出來這么多子項(xiàng)目,也是因?yàn)镸apReduce的局限性?

徐常亮:某些方面是這樣。你看Hadoop 2.0,或者說YARN調(diào)度器的出現(xiàn),很大的原因就是Hadoop 1.0的job tracker只支持MapReduce和map only這兩種簡單的調(diào)度模型。在YARN上你就可以做MPI或者迭代等各方面事情,Spark也可以在YARN上跑,各方面的事情都相對(duì)容易。對(duì)ODPS而言,因?yàn)榛陲w天,而飛天的調(diào)度——伏羲——從第一天開始就支持YARN今天能支持的模式。從這點(diǎn)也可以看到飛天的發(fā)展歷程,一開始很多想法還是比Hadoop好的。

InfoQ:如果想提供這些比較豐富的模式,也是可以直接復(fù)制現(xiàn)成的子項(xiàng)目的吧?

徐常亮:這是一個(gè)做法。比如SQL,因?yàn)橛袠?biāo)準(zhǔn)的定義,我們就可以很容易的復(fù)制,只要你寫出這個(gè)SQL,我的解析器就能按你想的那樣解析它,你也想不出別的花招來。這方面已有的理論和體系都比較成熟了。但是Spark你拿出來,雖然這套東西我覺得也很不錯(cuò),但是畢竟還沒有像數(shù)據(jù)庫理論那么定型,或者說自成體系,它有一些缺點(diǎn)。

我們是拿來主義,它好的地方我們就拿過來。Spark基于Scala寫的,對(duì)于很多同學(xué)還是比較陌生的,如果我們把它移植成Java或者Python,這兩個(gè)語言的社區(qū)更大,可能會(huì)更容易做。其實(shí)Spark這個(gè)東西在今天的ODPS上也可以跑起來,但我們這上面跑起來的Spark可能執(zhí)行體系是完全不一樣的。這塊也是開放編程框架未來的一個(gè)方向,以后比如你可以把Pig也搬上來,都是有可能的。Spark有十幾二十個(gè)算子,現(xiàn)在已經(jīng)差不多都能在我們上面跑起來了。

今天我們做飛天也好,ODPS也好,我們做這些自主研發(fā)的東西并不意味著我們?cè)陂]門造車,我們一定會(huì)看外面好的東西,有些東西我們會(huì)結(jié)合我們自己的場景做整合或者微創(chuàng)新、創(chuàng)新。

InfoQ:對(duì)于ODPS,目前業(yè)務(wù)部門來提需求的多嗎?

徐常亮:有一些業(yè)務(wù)部門的需求很明確,比如業(yè)務(wù)部門可能做一些數(shù)據(jù)分析,說我想更快,或者要處理更大的數(shù)據(jù),以前支持TB級(jí),現(xiàn)在可能要PB級(jí)。有些需求很明確,這些我們就想辦法去解決,而且這些在分布式系統(tǒng)下,數(shù)據(jù)量變大本身就是線性擴(kuò)展必須解決的問題,否則分布式系統(tǒng)就沒有意義了。而處理速度更快這方面,我們也在做一些自己的探索,比如剛才我提到我們?cè)诶锩孀龅苋菀祝幸恍?shù)據(jù)不落地,在實(shí)時(shí)化處理上,今天我們內(nèi)部的SQL跑的速度非常快了,比Hive這些都要快。今后感興趣的話我們可以公布一些benchmark的數(shù)據(jù)。

另外一些方面,比如編程接口,這些用戶都是開發(fā)人員,他們的品味都會(huì)不一樣,所以這就是為什么我們希望把底層包裝好、放出來,讓開發(fā)人員可以自己定制。這樣每個(gè)人都會(huì)高興。當(dāng)然今天可能就是只能有一部分人高興,畢竟把Java、C、PHP、Python的同學(xué)放在一起肯定是會(huì)意見不同的,我們希望還是把底層的算子、我們定義的一些東西拿出來,這樣以后定制能力更高。如果每個(gè)人的需求都一個(gè)一個(gè)去搞,我覺得很難實(shí)現(xiàn)。

InfoQ:你覺得實(shí)現(xiàn)過的最有挑戰(zhàn)的東西是什么?

徐常亮:我覺得那些學(xué)術(shù)性的、理論性的東西其實(shí)都解掉了,也看得到別人已經(jīng)做好的產(chǎn)品,這方面沒什么特別的難題。一路走來,我覺得還是工程問題居多。比如分布式系統(tǒng)里面本來是小概率的事件變成常態(tài),而且因?yàn)椴粩嗟亟换?huì)放大,解決這些小概率事件變成了挺難的事情,因?yàn)檫@些問題往往在你的防范之外,你要怎么定位、解決,是非常有挑戰(zhàn)的事情。

再一方面就是早期,不管飛天還是ODPS在人員配備上,人數(shù)和工作進(jìn)度的壓力都很大,有一些工程、項(xiàng)目管理上的問題。當(dāng)然這個(gè)不是技術(shù)上的挑戰(zhàn)了。挑戰(zhàn)都是有的,但是一定會(huì)解決。

最常見的小概率事件就是設(shè)備壞掉。硬盤壞掉大家聽到很多,另外網(wǎng)卡也會(huì)壞掉。雖然理論上盤古團(tuán)隊(duì)會(huì)處理硬盤壞掉的問題,但早期不管是調(diào)度還是存儲(chǔ)都是坐在一起的,所以大家一起處理,更何況我們這兒有真實(shí)的場景,有大數(shù)據(jù)量,可以發(fā)現(xiàn)很多問題。

我們之前碰到一個(gè)網(wǎng)卡的問題:一臺(tái)機(jī)器大概有千分之一的幾率網(wǎng)卡壞了,它壞了又不是全壞,大概是萬分之五的機(jī)會(huì)會(huì)把一個(gè)數(shù)據(jù)傳錯(cuò),一個(gè)bit會(huì)翻轉(zhuǎn)——比如1變成0。總的來說是將近億分之一的機(jī)會(huì)出一個(gè)錯(cuò)誤。但是因?yàn)榻换サ臄?shù)據(jù)量大,就給撞上了。

這個(gè)問題怎么發(fā)現(xiàn)的呢,剛才提到ODPS的幾個(gè)特點(diǎn),其實(shí)有一點(diǎn)很重要但是我沒說,就是正確性。我們對(duì)正確性的要求很高,因?yàn)槲覀兊牡谝粋€(gè)正式的商業(yè)客戶是小微金服,就是阿里小貸。他們的業(yè)務(wù)關(guān)系到錢,直接關(guān)系到你能否把這個(gè)錢貸出去,所以我們要對(duì)他們的壞賬率負(fù)責(zé)。在這個(gè)層面上,我們對(duì)準(zhǔn)確性要求很高,所以每一次發(fā)布之前,我們都會(huì)做全批量的驗(yàn)證。這個(gè)過程我們需要比對(duì)各版本的數(shù)據(jù),確保他們都是對(duì)的。這個(gè)過程,因?yàn)槲覀冇袛?shù)據(jù)做對(duì)比,所以發(fā)現(xiàn)有這么一個(gè)問題。這個(gè)用戶都不一定能發(fā)現(xiàn),他可能某一次跑發(fā)現(xiàn)某個(gè)數(shù)據(jù)不能解釋,但是跑下一次又ok了,這個(gè)事情可能就過去了,因?yàn)閮|分之一的幾率幾乎肯定不會(huì)再次發(fā)生在他頭上,可能就換一個(gè)人。

發(fā)現(xiàn)問題后跟飛天的同學(xué)溝通,飛天網(wǎng)絡(luò)層的同學(xué)可能會(huì)覺得是不是你們上層邏輯寫錯(cuò)了,造成這種隨機(jī)性,我們就要想辦法證明我們上層邏輯沒錯(cuò)。后來我們專門做了一個(gè)端到端的數(shù)據(jù)校驗(yàn)checksum。之前我們可能就是像HDFS那樣對(duì)存儲(chǔ)的數(shù)據(jù)做一個(gè)checksum,網(wǎng)絡(luò)傳輸過程中做因?yàn)闀?huì)帶來一些額外的開銷所以以前是沒有全做的,但因?yàn)榘l(fā)生了這件事就不得不做了。所以我們必須對(duì)自己每一次的版本發(fā)布做一個(gè)很嚴(yán)謹(jǐn)?shù)幕貧w,有任何錯(cuò)誤都不能放它過去。這也是我們的一大特色。

InfoQ:最后談?wù)勀銓?duì)天池算法競賽的期待吧?

徐常亮:ODPS是今年1月24日開始商用,開始邀請(qǐng)一些用戶進(jìn)來。我們希望在這次大賽開始的時(shí)候,也就是4月底,將整個(gè)ODPS正式對(duì)外商用。到時(shí)候我覺得外面的用戶也會(huì)反饋很多,借助天池大賽也是看一看我們的競賽選手對(duì)ODPS的反饋。

首先,我們畢竟是做平臺(tái)出身,在用戶體驗(yàn)方面可能做的不太好。我們?cè)谄脚_(tái)底層投入很大,但是對(duì)交互式的使用、API可能并不是定義的很好。這方面用戶如果有反饋,對(duì)我們來說是很大的幫助。商業(yè)化以后,我們要對(duì)外部的方方面面要投入更多。所以希望借著大賽做出相應(yīng)的改進(jìn)。

另外,我們這次提供給用戶的東西還是比較多。1月我們只有SQL,4月我們會(huì)開放Xlib機(jī)器算法平臺(tái)幫助用戶建模,這個(gè)我們覺得還是很有威力的。去年我們內(nèi)部做了一次大賽,類似這次的,得獎(jiǎng)的前幾名基本都用了這個(gè)超級(jí)武器,這個(gè)在今天同類產(chǎn)品里面基本上是沒有的。我們也是希望借這次大賽把招牌打響,當(dāng)然也是看看用戶的反饋,讓它不僅是威力很大,也要讓用戶的整個(gè)建模流程比較流暢。

另外,我們會(huì)把一些用戶可自定義編程的東西放出來。當(dāng)然我們也不希望一次開放太多,前期有MapReduce框架和結(jié)合SQL的udf,讓用戶可以自定義一些函數(shù)。這塊我們也希望看一下用戶的體驗(yàn)。這一塊4月不會(huì)商用,但是會(huì)開放出來做一個(gè)測試,可能就是以大賽的用戶為主。

最后,我們也在探索這個(gè)“數(shù)據(jù)分享第一平臺(tái)”該怎么做。今天天貓把數(shù)據(jù)分享出來讓大家建模,如果能達(dá)到很好的推薦效果,我們阿里巴巴也會(huì)受益很大。因?yàn)橛袔浊еш?duì)伍,大家會(huì)有不同的想法,也許也會(huì)有新的東西。在我看來我們要做數(shù)據(jù)分享,就是要讓大家能看到數(shù)據(jù)的價(jià)值。這就要看大家的想象力了。

嘉賓介紹

徐常亮(@常亮姓徐),北京大學(xué)雙學(xué)士(主修化學(xué),轉(zhuǎn)入IT行業(yè)純屬興趣),普林斯頓大學(xué)博士(計(jì)算化學(xué)方向),曾在紐約時(shí)報(bào)網(wǎng)絡(luò)部任職搜索組組長,開發(fā)、維護(hù)自主開發(fā) 的搜索引擎,最早期的Amazon ec2、s3和Hadoop用戶。2009年加入阿里云,曾負(fù)責(zé)阿里云分布式平臺(tái)--飛天--底層基礎(chǔ)維護(hù),現(xiàn)在主要負(fù)責(zé)ODPS平臺(tái)的架構(gòu)和開發(fā),產(chǎn)品主要滿足數(shù)據(jù)倉庫、分布式編程框架、數(shù)據(jù)交互等各種場景。

關(guān)鍵字:

本文摘自:InfoQ

x 阿里云ODPS的愿景、技術(shù)實(shí)現(xiàn)與難點(diǎn) 掃一掃
分享本文到朋友圈
當(dāng)前位置:云計(jì)算技術(shù)專區(qū) → 正文

阿里云ODPS的愿景、技術(shù)實(shí)現(xiàn)與難點(diǎn)

責(zé)任編輯:一三 |來源:企業(yè)網(wǎng)D1Net  2014-04-09 11:05:37 本文摘自:InfoQ

2014年1月,阿里云將其ODPS服務(wù)開放公測。2014年4月,阿里巴巴大數(shù)據(jù)競賽的所有參賽者將在ODPS平臺(tái)上進(jìn)行算法的調(diào)試、測試;同月,ODPS也將開放更高級(jí)的功能進(jìn)入公測。

InfoQ中文站近日跟ODPS平臺(tái)的技術(shù)負(fù)責(zé)人徐常亮進(jìn)行了采訪,交流了有關(guān)ODPS的愿景、技術(shù)實(shí)現(xiàn)、實(shí)現(xiàn)難點(diǎn)等話題。

InfoQ:先介紹一下ODPS現(xiàn)在的情況吧。這個(gè)產(chǎn)品能做什么?

徐常亮:ODPS是2011年正式有的名稱,全稱叫做Open Data Processing Service,簡單來說就是數(shù)據(jù)處理的服務(wù)。它的定位是在飛天之上,提供數(shù)據(jù)倉庫、數(shù)據(jù)挖掘和其他數(shù)據(jù)應(yīng)用等功能。

2011年的時(shí)候我們嘗試對(duì)外提供ODPS,當(dāng)時(shí)有一些小試點(diǎn),但是后來發(fā)現(xiàn)各方面條件沒有完全成熟,不管是外部對(duì)云的了解還是內(nèi)部對(duì)ODPS未來的預(yù)期都不是很清晰,所以一直到2012、2013年,它發(fā)展的節(jié)奏都比較慢。去年大概6、7月的時(shí)候有一些變化,因?yàn)轱w天到了5K的里程碑,在技術(shù)能力方面的顧慮已經(jīng)小了很多。因?yàn)轱w天是分布式操作系統(tǒng),它提供最基本的存儲(chǔ)、CPU調(diào)度能力、內(nèi)存使用、網(wǎng)絡(luò)等功能,是最基本的資源包裝整合,相當(dāng)于是一臺(tái)計(jì)算機(jī),而我們是在它上面開發(fā)的應(yīng)用,相當(dāng)于是一個(gè)分布式的數(shù)據(jù)倉庫,讓用戶可以在上面做基本的ETL處理、SQL查詢、數(shù)據(jù)導(dǎo)入導(dǎo)出等,還有一些MATLAB、統(tǒng)計(jì)軟件的功能。

除了這些基本功能之外,我們還提供了一整套數(shù)據(jù)挖掘算法Xlib(見 http://102.alibaba.com/competition/addDiscovery/faq.htm 的說明),讓用戶可以建模、做高級(jí)的數(shù)據(jù)分析。另外,我們還可能提供一些編程框架,讓用戶自己可以編寫程序進(jìn)行數(shù)據(jù)處理,比如單機(jī)上有Python、Java,我們就提供MapReduce編程框架、或者專門為了解決迭代問題的Graph編程框架(也叫做BSP,跟Google Pregel模型很類似)。我們會(huì)逐漸加入各種內(nèi)容,凡是涉及數(shù)據(jù)處理的工具和編程框架我們都會(huì)想辦法加進(jìn)去,讓開發(fā)者和用戶可以對(duì)數(shù)據(jù)進(jìn)行各方面的操作。

總而言之,ODPS就是基于飛天分布式系統(tǒng)提供的一套關(guān)于數(shù)據(jù)處理各方面工具和框架的服務(wù)。

InfoQ:對(duì)應(yīng)AWS的話,相當(dāng)于是RedShift和EMR吧?

徐常亮:可以這么去對(duì)應(yīng)。純粹從功能來講,我們會(huì)提供類似EMR和RedShift的功能。但我們不僅于此,我們還有建模的庫、機(jī)器學(xué)習(xí)的庫,從編程框架的豐富性上面也不僅僅是MapReduce,還有迭代框架。暫時(shí)來看我們做的可能更多,當(dāng)然AWS也在逐步提供更多的功能。

另外有一個(gè)很大的不同是,ODPS是作為一個(gè)有機(jī)的整體來提供這些服務(wù)的,不同的功能是服務(wù)的不同層面,而不是單賣的功能。比如在我同一個(gè)體系里面,我數(shù)據(jù)倉庫類型的一個(gè)SQL處理好了,我緊接著一個(gè)MapReduce的作業(yè)就可以很好地關(guān)聯(lián)起來,他們的物理存儲(chǔ)數(shù)據(jù),以及描述這些數(shù)據(jù)的元數(shù)據(jù),都是在同一個(gè)體系里面。不像RedShift和EMR,它們是在一邊處理完了之后,要把數(shù)據(jù)導(dǎo)出到另一套系統(tǒng)里面去處理,它們的元數(shù)據(jù)描述不是互相共享的,要有一個(gè)第三方來做對(duì)應(yīng),比如RedShift表結(jié)構(gòu)是怎樣的,EMR的結(jié)構(gòu)要怎樣相應(yīng)的去設(shè)計(jì)。ODPS希望讓對(duì)象都在一起,讓要處理的對(duì)象和元數(shù)據(jù)都在一個(gè)ODPS體系里。在此之上,你要做授權(quán)也好,管理維護(hù)也好,都是同一個(gè)界面,對(duì)用戶而言就是在一套系統(tǒng)里面做不同的處理,用戶覺得我就是在一臺(tái)機(jī)器里面,只不過在不同的文件夾。AWS的話,用戶會(huì)感知這是兩臺(tái)計(jì)算機(jī)。

另一個(gè)區(qū)別是,ODPS希望做成服務(wù):open data processing service,我們希望看到用戶把數(shù)據(jù)往里灌,相當(dāng)于是公有云的用法,總之?dāng)?shù)據(jù)都放在同一個(gè)系統(tǒng)里面。如果以后用戶之間希望他們的數(shù)據(jù)之間發(fā)生一些作用,則能夠非常容易的做到,只需做一些互相授權(quán)就可以。而AWS的RedShift和EMR對(duì)各自用戶而言都相當(dāng)于是私有云,它自己處理的東西只在它自己的空間里,如果要跟外部交互,可能必須要借助S3等外界方式。當(dāng)然了,可能它原本的設(shè)計(jì)目標(biāo)就是這樣,這個(gè)也談不上優(yōu)劣,只是目標(biāo)不同。

在我們這個(gè)體系里,因?yàn)橛脩舻臇|西都在一個(gè)平臺(tái)上,所以我們其實(shí)也可以像蘋果那樣開一個(gè)應(yīng)用市場,用戶把數(shù)據(jù)挖掘算法或者清理流程當(dāng)做一個(gè)應(yīng)用來發(fā)布,別人如果想用可以來買。當(dāng)然這個(gè)可能之后有一系列的如何算錢之類的問題要處理,但平臺(tái)在這兒,如果商業(yè)、產(chǎn)品愿意多考慮,這個(gè)事情也是水到渠成的。這個(gè)和整個(gè)阿里巴巴的愿景是相關(guān)的:阿里巴巴想成為數(shù)據(jù)分享的第一平臺(tái)。這就真的要有這么大的一個(gè)地方做存儲(chǔ),要有那么大的計(jì)算能力,讓用戶有能力來處理大數(shù)據(jù),還要保證安全。其實(shí)安全也是這次大賽我們比較緊張的地方:我們既要允許用戶的代碼跑上來,又要保障用戶的數(shù)據(jù)安全,這是個(gè)非常大的挑戰(zhàn)。

InfoQ:你們組是怎樣分工的?

徐常亮:大致有三個(gè)方向:數(shù)據(jù)倉庫場景,數(shù)據(jù)挖掘場景,編程框架場景。其中編程框架不僅是SDK,還會(huì)有一些重新定義,會(huì)引入一些新的框架。比如Hadoop上有Hive這樣用SQL做的,還有Yahoo的Pig——完全是另外一種語言,還有現(xiàn)在很火的Spark,雖說是基于Scala,但數(shù)據(jù)處理那一層又是抽象了一層出來,提供了groupby、filter這些算子。我們也會(huì)提供類似的東西,或者讓用戶根據(jù)我們提供的基礎(chǔ)編程能力來定義自己的框架。也可以說我們今后可能會(huì)自己再造一套分布式系統(tǒng)的處理語言,或者讓用戶來創(chuàng)造也有可能。

面向數(shù)據(jù)倉庫的SQL,和數(shù)據(jù)挖掘有一個(gè)Xlab讓用戶能像寫R或者M(jìn)adlib、MATLAB一樣建模,這些是基本算法的包裝,都是用戶可見的。還有很多模塊,大家不一定看得見比如SQL的執(zhí)行引擎怎么做,數(shù)據(jù)的存儲(chǔ)怎么做。去年我們做了一個(gè)比較大的事情,我覺得跟飛天5K可以媲美:飛天5K是單集群5000臺(tái),但今天5000臺(tái)當(dāng)然也是不夠的,你需要有多個(gè)5000臺(tái)。ODPS就有一套系統(tǒng)能夠管理多個(gè)集群,同時(shí)讓用戶覺得自己只是面對(duì)一個(gè)集群。這里涉及很多策略,決定你的計(jì)算到底在哪個(gè)集群上跑,數(shù)據(jù)在哪個(gè)集群的哪臺(tái)機(jī)器上存放,是否在多個(gè)集群上都有存放,多個(gè)集群間數(shù)據(jù)的平衡復(fù)制怎么做等等。這個(gè)東西管的事情是比較多的,我們對(duì)外希望做到比較透明化。

InfoQ:你個(gè)人主要關(guān)注的方向是什么?

徐常亮:和計(jì)算相關(guān)的我都關(guān)注。比如數(shù)據(jù)倉庫SQL這塊,從解析到執(zhí)行計(jì)劃到執(zhí)行引擎、存儲(chǔ),我都會(huì)看。這塊是我直接負(fù)責(zé)。另外還有編程框架這塊也是我這邊會(huì)看的。這兩塊的同學(xué)直接匯報(bào)給我。另外,整體ODPS的架構(gòu)怎么做、上面的控制集群怎么做的,我也會(huì)參與。

InfoQ:你們做過的這些東西當(dāng)中,你覺得最值得跟我們分享的一件事是什么?

徐常亮:可能有一點(diǎn)是比較有難度的,就是怎么做開放。今天我們看Hadoop社區(qū),因?yàn)樗情_源的,大家對(duì)它各方面都有所了解,所以可以基于它的架構(gòu)出很多新的東西。新東西都是有跡可循的,不是突然就冒出來的,Hadoop上的很多新東西都是基于單機(jī)時(shí)代的理論,比如數(shù)據(jù)庫上的理論,這些東西都是有一定基礎(chǔ)的,可能今天是有人把它們應(yīng)用到了分布式環(huán)境下就成了新東西。

ODPS是開放數(shù)據(jù)處理服務(wù),而開放不一定是開源,目前飛天和ODPS的代碼都還沒有公開的計(jì)劃,即使現(xiàn)在公開出去你也用不了,因?yàn)橐蕾嚭芏嗯涮自O(shè)施。所以,在不開源的情況下做開放,這里面需要很好的平衡。

開放,意味著讓用戶自由、方便的使用我們的計(jì)算能力,充分挖掘數(shù)據(jù)的價(jià)值。對(duì)ODPS而言,要做到開放,讓用戶的想象力充分激發(fā),取決于我們能把編程框架做得多漂亮。編程框架很重要。SQL、算法庫這些可能更多面向BI的人員,他們可以拿相對(duì)現(xiàn)成的東西來用;開放數(shù)據(jù)處理服務(wù)在編程框架上做的事情更多是面向開發(fā)者,讓他們根據(jù)我們開放的引擎、構(gòu)造通過接口暴露出去,讓他們能夠用,又不至于把下面的運(yùn)作模式都暴露出來,既要讓用戶有很高的定制權(quán),又不違背我們的安全原則和我們對(duì)分布式和單機(jī)的平衡選擇。

MapReduce就是一個(gè)很好的方式,因?yàn)橛腥私o我們領(lǐng)過這條路,大家覺得這個(gè)方法比多線程處理鎖的關(guān)系要容易很多,仿佛在寫一個(gè)單機(jī)程序,只不過步驟不同。所以,我們提供的MapReduce可以照抄已有的東西。但是今后很多東西可能不是兩個(gè)步驟就能處理完的,我們想用DAG——就是有向無環(huán)圖,用比如現(xiàn)在的YARN或者M(jìn)apReduce 2.0來支持這樣的理念,像Hortonworks那個(gè)Tez框架就能支持一連串的、若干個(gè)task相繼的關(guān)系,只要你不要成環(huán),能描述依賴關(guān)系為有向無環(huán)圖,我們都能把它分解出來,讓用戶在各個(gè)階段做什么操作,這樣來定制。這個(gè)東西我們會(huì)拿出來給用戶用。當(dāng)然對(duì)開發(fā)者來說,DAG就比MapReduce復(fù)雜一些,但它的處理能力和自由度更高。

我們還在想一些能幫用戶做包裝的東西,比如寫一個(gè)wordcount:可能用戶寫一個(gè)MapReduce也很簡單,但如果在SQL里面寫就只要一個(gè)select和groupby就完成了,一句話就覆蓋了wordcount的東西。所以,我們能不能給用戶再包裝一些語義?我們提供一個(gè)groupby的算子,用戶就可以用。SQL雖然也被稱為一門編程語言,但是它畢竟不像我們一般語言的邏輯,你可以寫for循環(huán),if之類的,控制能力很強(qiáng),而SQL就感覺你只能表述一下自己想干什么,后面的細(xì)節(jié)很難控制,所以開發(fā)人員會(huì)感覺受局限。提供類似于SQL的基本算子——groupby、filter這種想法,在Spark里面也有類似的體現(xiàn),我們可能也會(huì)做類似的事情。我們會(huì)考慮是否有一些東西能沉的更底層一些,或者有些東西可以拔高一些,以此來做一些設(shè)計(jì)或權(quán)衡。

當(dāng)然這個(gè)思路可能有很多,我只是提出幾個(gè)點(diǎn),如MapReduce、DAG、結(jié)合SQL算子來提供高層功能,讓用戶跟寫程序一樣。我覺得寫一個(gè)SQL可能還不是寫程序,寫程序還是有變量賦值、關(guān)系等更多操作。今后我也不知道會(huì)不會(huì)有別的,但這幾個(gè)地方我們會(huì)下很大的力氣,希望在整個(gè)大體系下做到安全并提供關(guān)鍵功能,在里面能做迭代、廣播等MapReduce不提供的東西,讓這些都能通過編程框架放出去,外面的人就能更好的控制分布式系統(tǒng)所具有的能力。如果真能做到的話,我覺得就能把開放做的很好。

InfoQ:所以從某種程度上而言,Hadoop下面出來這么多子項(xiàng)目,也是因?yàn)镸apReduce的局限性?

徐常亮:某些方面是這樣。你看Hadoop 2.0,或者說YARN調(diào)度器的出現(xiàn),很大的原因就是Hadoop 1.0的job tracker只支持MapReduce和map only這兩種簡單的調(diào)度模型。在YARN上你就可以做MPI或者迭代等各方面事情,Spark也可以在YARN上跑,各方面的事情都相對(duì)容易。對(duì)ODPS而言,因?yàn)榛陲w天,而飛天的調(diào)度——伏羲——從第一天開始就支持YARN今天能支持的模式。從這點(diǎn)也可以看到飛天的發(fā)展歷程,一開始很多想法還是比Hadoop好的。

InfoQ:如果想提供這些比較豐富的模式,也是可以直接復(fù)制現(xiàn)成的子項(xiàng)目的吧?

徐常亮:這是一個(gè)做法。比如SQL,因?yàn)橛袠?biāo)準(zhǔn)的定義,我們就可以很容易的復(fù)制,只要你寫出這個(gè)SQL,我的解析器就能按你想的那樣解析它,你也想不出別的花招來。這方面已有的理論和體系都比較成熟了。但是Spark你拿出來,雖然這套東西我覺得也很不錯(cuò),但是畢竟還沒有像數(shù)據(jù)庫理論那么定型,或者說自成體系,它有一些缺點(diǎn)。

我們是拿來主義,它好的地方我們就拿過來。Spark基于Scala寫的,對(duì)于很多同學(xué)還是比較陌生的,如果我們把它移植成Java或者Python,這兩個(gè)語言的社區(qū)更大,可能會(huì)更容易做。其實(shí)Spark這個(gè)東西在今天的ODPS上也可以跑起來,但我們這上面跑起來的Spark可能執(zhí)行體系是完全不一樣的。這塊也是開放編程框架未來的一個(gè)方向,以后比如你可以把Pig也搬上來,都是有可能的。Spark有十幾二十個(gè)算子,現(xiàn)在已經(jīng)差不多都能在我們上面跑起來了。

今天我們做飛天也好,ODPS也好,我們做這些自主研發(fā)的東西并不意味著我們?cè)陂]門造車,我們一定會(huì)看外面好的東西,有些東西我們會(huì)結(jié)合我們自己的場景做整合或者微創(chuàng)新、創(chuàng)新。

InfoQ:對(duì)于ODPS,目前業(yè)務(wù)部門來提需求的多嗎?

徐常亮:有一些業(yè)務(wù)部門的需求很明確,比如業(yè)務(wù)部門可能做一些數(shù)據(jù)分析,說我想更快,或者要處理更大的數(shù)據(jù),以前支持TB級(jí),現(xiàn)在可能要PB級(jí)。有些需求很明確,這些我們就想辦法去解決,而且這些在分布式系統(tǒng)下,數(shù)據(jù)量變大本身就是線性擴(kuò)展必須解決的問題,否則分布式系統(tǒng)就沒有意義了。而處理速度更快這方面,我們也在做一些自己的探索,比如剛才我提到我們?cè)诶锩孀龅苋菀祝幸恍?shù)據(jù)不落地,在實(shí)時(shí)化處理上,今天我們內(nèi)部的SQL跑的速度非常快了,比Hive這些都要快。今后感興趣的話我們可以公布一些benchmark的數(shù)據(jù)。

另外一些方面,比如編程接口,這些用戶都是開發(fā)人員,他們的品味都會(huì)不一樣,所以這就是為什么我們希望把底層包裝好、放出來,讓開發(fā)人員可以自己定制。這樣每個(gè)人都會(huì)高興。當(dāng)然今天可能就是只能有一部分人高興,畢竟把Java、C、PHP、Python的同學(xué)放在一起肯定是會(huì)意見不同的,我們希望還是把底層的算子、我們定義的一些東西拿出來,這樣以后定制能力更高。如果每個(gè)人的需求都一個(gè)一個(gè)去搞,我覺得很難實(shí)現(xiàn)。

InfoQ:你覺得實(shí)現(xiàn)過的最有挑戰(zhàn)的東西是什么?

徐常亮:我覺得那些學(xué)術(shù)性的、理論性的東西其實(shí)都解掉了,也看得到別人已經(jīng)做好的產(chǎn)品,這方面沒什么特別的難題。一路走來,我覺得還是工程問題居多。比如分布式系統(tǒng)里面本來是小概率的事件變成常態(tài),而且因?yàn)椴粩嗟亟换?huì)放大,解決這些小概率事件變成了挺難的事情,因?yàn)檫@些問題往往在你的防范之外,你要怎么定位、解決,是非常有挑戰(zhàn)的事情。

再一方面就是早期,不管飛天還是ODPS在人員配備上,人數(shù)和工作進(jìn)度的壓力都很大,有一些工程、項(xiàng)目管理上的問題。當(dāng)然這個(gè)不是技術(shù)上的挑戰(zhàn)了。挑戰(zhàn)都是有的,但是一定會(huì)解決。

最常見的小概率事件就是設(shè)備壞掉。硬盤壞掉大家聽到很多,另外網(wǎng)卡也會(huì)壞掉。雖然理論上盤古團(tuán)隊(duì)會(huì)處理硬盤壞掉的問題,但早期不管是調(diào)度還是存儲(chǔ)都是坐在一起的,所以大家一起處理,更何況我們這兒有真實(shí)的場景,有大數(shù)據(jù)量,可以發(fā)現(xiàn)很多問題。

我們之前碰到一個(gè)網(wǎng)卡的問題:一臺(tái)機(jī)器大概有千分之一的幾率網(wǎng)卡壞了,它壞了又不是全壞,大概是萬分之五的機(jī)會(huì)會(huì)把一個(gè)數(shù)據(jù)傳錯(cuò),一個(gè)bit會(huì)翻轉(zhuǎn)——比如1變成0。總的來說是將近億分之一的機(jī)會(huì)出一個(gè)錯(cuò)誤。但是因?yàn)榻换サ臄?shù)據(jù)量大,就給撞上了。

這個(gè)問題怎么發(fā)現(xiàn)的呢,剛才提到ODPS的幾個(gè)特點(diǎn),其實(shí)有一點(diǎn)很重要但是我沒說,就是正確性。我們對(duì)正確性的要求很高,因?yàn)槲覀兊牡谝粋€(gè)正式的商業(yè)客戶是小微金服,就是阿里小貸。他們的業(yè)務(wù)關(guān)系到錢,直接關(guān)系到你能否把這個(gè)錢貸出去,所以我們要對(duì)他們的壞賬率負(fù)責(zé)。在這個(gè)層面上,我們對(duì)準(zhǔn)確性要求很高,所以每一次發(fā)布之前,我們都會(huì)做全批量的驗(yàn)證。這個(gè)過程我們需要比對(duì)各版本的數(shù)據(jù),確保他們都是對(duì)的。這個(gè)過程,因?yàn)槲覀冇袛?shù)據(jù)做對(duì)比,所以發(fā)現(xiàn)有這么一個(gè)問題。這個(gè)用戶都不一定能發(fā)現(xiàn),他可能某一次跑發(fā)現(xiàn)某個(gè)數(shù)據(jù)不能解釋,但是跑下一次又ok了,這個(gè)事情可能就過去了,因?yàn)閮|分之一的幾率幾乎肯定不會(huì)再次發(fā)生在他頭上,可能就換一個(gè)人。

發(fā)現(xiàn)問題后跟飛天的同學(xué)溝通,飛天網(wǎng)絡(luò)層的同學(xué)可能會(huì)覺得是不是你們上層邏輯寫錯(cuò)了,造成這種隨機(jī)性,我們就要想辦法證明我們上層邏輯沒錯(cuò)。后來我們專門做了一個(gè)端到端的數(shù)據(jù)校驗(yàn)checksum。之前我們可能就是像HDFS那樣對(duì)存儲(chǔ)的數(shù)據(jù)做一個(gè)checksum,網(wǎng)絡(luò)傳輸過程中做因?yàn)闀?huì)帶來一些額外的開銷所以以前是沒有全做的,但因?yàn)榘l(fā)生了這件事就不得不做了。所以我們必須對(duì)自己每一次的版本發(fā)布做一個(gè)很嚴(yán)謹(jǐn)?shù)幕貧w,有任何錯(cuò)誤都不能放它過去。這也是我們的一大特色。

InfoQ:最后談?wù)勀銓?duì)天池算法競賽的期待吧?

徐常亮:ODPS是今年1月24日開始商用,開始邀請(qǐng)一些用戶進(jìn)來。我們希望在這次大賽開始的時(shí)候,也就是4月底,將整個(gè)ODPS正式對(duì)外商用。到時(shí)候我覺得外面的用戶也會(huì)反饋很多,借助天池大賽也是看一看我們的競賽選手對(duì)ODPS的反饋。

首先,我們畢竟是做平臺(tái)出身,在用戶體驗(yàn)方面可能做的不太好。我們?cè)谄脚_(tái)底層投入很大,但是對(duì)交互式的使用、API可能并不是定義的很好。這方面用戶如果有反饋,對(duì)我們來說是很大的幫助。商業(yè)化以后,我們要對(duì)外部的方方面面要投入更多。所以希望借著大賽做出相應(yīng)的改進(jìn)。

另外,我們這次提供給用戶的東西還是比較多。1月我們只有SQL,4月我們會(huì)開放Xlib機(jī)器算法平臺(tái)幫助用戶建模,這個(gè)我們覺得還是很有威力的。去年我們內(nèi)部做了一次大賽,類似這次的,得獎(jiǎng)的前幾名基本都用了這個(gè)超級(jí)武器,這個(gè)在今天同類產(chǎn)品里面基本上是沒有的。我們也是希望借這次大賽把招牌打響,當(dāng)然也是看看用戶的反饋,讓它不僅是威力很大,也要讓用戶的整個(gè)建模流程比較流暢。

另外,我們會(huì)把一些用戶可自定義編程的東西放出來。當(dāng)然我們也不希望一次開放太多,前期有MapReduce框架和結(jié)合SQL的udf,讓用戶可以自定義一些函數(shù)。這塊我們也希望看一下用戶的體驗(yàn)。這一塊4月不會(huì)商用,但是會(huì)開放出來做一個(gè)測試,可能就是以大賽的用戶為主。

最后,我們也在探索這個(gè)“數(shù)據(jù)分享第一平臺(tái)”該怎么做。今天天貓把數(shù)據(jù)分享出來讓大家建模,如果能達(dá)到很好的推薦效果,我們阿里巴巴也會(huì)受益很大。因?yàn)橛袔浊еш?duì)伍,大家會(huì)有不同的想法,也許也會(huì)有新的東西。在我看來我們要做數(shù)據(jù)分享,就是要讓大家能看到數(shù)據(jù)的價(jià)值。這就要看大家的想象力了。

嘉賓介紹

徐常亮(@常亮姓徐),北京大學(xué)雙學(xué)士(主修化學(xué),轉(zhuǎn)入IT行業(yè)純屬興趣),普林斯頓大學(xué)博士(計(jì)算化學(xué)方向),曾在紐約時(shí)報(bào)網(wǎng)絡(luò)部任職搜索組組長,開發(fā)、維護(hù)自主開發(fā) 的搜索引擎,最早期的Amazon ec2、s3和Hadoop用戶。2009年加入阿里云,曾負(fù)責(zé)阿里云分布式平臺(tái)--飛天--底層基礎(chǔ)維護(hù),現(xiàn)在主要負(fù)責(zé)ODPS平臺(tái)的架構(gòu)和開發(fā),產(chǎn)品主要滿足數(shù)據(jù)倉庫、分布式編程框架、數(shù)據(jù)交互等各種場景。

關(guān)鍵字:

本文摘自:InfoQ

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號(hào)-6 京公網(wǎng)安備 11010502049343號(hào)

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 开江县| 扎囊县| 盐亭县| 长寿区| 巴塘县| 长阳| 清苑县| 渝北区| 凭祥市| 万源市| 临安市| 桃园市| 特克斯县| 汶川县| 营山县| 苏尼特右旗| 平舆县| 镇赉县| 会宁县| 铜梁县| 新巴尔虎左旗| 英山县| 鄂托克前旗| 呼和浩特市| 河北省| 新密市| 专栏| 南康市| 汤阴县| 安阳县| 连江县| 抚松县| 阿勒泰市| 上犹县| 鄂伦春自治旗| 新巴尔虎右旗| 金乡县| 昌都县| 巨鹿县| 孙吴县| 武宣县|