12、與大數(shù)據(jù)技術關系最緊密的就是云計算,您曾在Amazon 云計算部門工作過,能否簡單介紹一下亞馬遜的Redshift框架嗎?
我在 Amazon 云計算部門工作過,所以還是比較了解 AWS,總體上成熟度很高,有大量 startup 是基于其開發(fā),比如有名的 Netflix,Pinterest,Coursera。Amazon 還是不斷創(chuàng)新,每年召開 reInvent 大會推廣新的云產(chǎn)品和分享成功案例,在這里面我隨便說幾個:像 S3 是簡單面向對象的存儲,DynamoDB 是對關系型數(shù)據(jù)庫的補充,Glacier 對冷數(shù)據(jù)做歸檔處理,Elastic MapReduce 直接對 MapReduce 做打包提供計算服務,EC2 就是基礎的虛擬主機,Data Pipeline 會提供圖形化界面直接串聯(lián)工作任務。
Redshift,它是一種(massively parallel computer)架構,是非常方便的數(shù)據(jù)倉庫解決方案,就是 SQL 接口,跟各個云服務無縫連接,最大特點就是快,在 TB 到 PB 級別非常好的性能,我在工作中也是直接使用,它還支持不同的硬件平臺,如果想速度更快,可以使用 SSD 的,當然支持容量就小些。
13、Linkedin都采用了哪些大數(shù)據(jù)開源技術?
在 Linkedin,有很多數(shù)據(jù)產(chǎn)品,比如 People you may like, job you may be interested, 你的用戶訪問來源,甚至你的 career path 都可以挖掘出來。那么在 Linkedin 也是大量用到開源技術,我這里就說一個最成功的 Kafka,它是一個分布式的消息隊列,可以用在 tracking,機器內部 metrics,數(shù)據(jù)傳輸。數(shù)據(jù)在前端后端會經(jīng)過不同的存儲或者平臺,每個平臺都有自己的格式,如果沒有一個 unified log,會出現(xiàn)災難型的 O(m*n) 的數(shù)據(jù)對接復雜度,如果你設定的格式一旦發(fā)生變化,也是要修改所有相關的。所以這里提出的中間橋梁就是 Kafka,大家約定用一個格式作為傳輸標準,然后在接受端可以任意定制你想要的數(shù)據(jù)源(topics), 最后實現(xiàn)的線性的 O(m+n) 的復雜度。對應的設計細節(jié),還是要參考設計文檔。這里面主要作者 Jay Kreps,Rao Jun 出來成立了 Kafka 作為獨立發(fā)展的公司。
在 Linkedin,Hadoop 作為批處理的主力,大量應用在各個產(chǎn)品線上,比如廣告組。我們一方面需要去做一些靈活的查詢分析廣告主的匹配,廣告預測和實際效果,另外在報表生成方面也是 Hadoop 作為支持。如果你想去面試 Linkedin 后端組,我建議大家去把 Hive, Pig, Azkaban(數(shù)據(jù)流的管理軟件),Avro 數(shù)據(jù)定義格式,Kafka,Voldemort 都去看一些設計理念,Linkedin 有專門的開源社區(qū),也是 build 自己的技術品牌。
14、談一談Coursera在大數(shù)據(jù)架構方面和其他硅谷創(chuàng)業(yè)公司相比有什么特點?是什么原因和技術取向造成了這些特點?
Coursera 是一個有使命驅動的公司,大家不是為了追求技術的極致,而是為了服務好老師,同學,解決他們的痛點,分享他們的成功。這點是跟其他技術公司最大的區(qū)別。從一方面來說,現(xiàn)在還是早期積累階段,大規(guī)模計算還沒有來臨,我們只有積極學習,適應變化才能保持創(chuàng)業(yè)公司的高速成長。
Coursera 作為創(chuàng)業(yè)公司,非常想保持敏捷和高效。從技術上來說,所有的都是在基于 AWS 開發(fā),可以想像隨意啟動云端服務,做一些實驗。我們大致分成產(chǎn)品組,架構組,和數(shù)據(jù)分析組。我把所有用到的開發(fā)技術都列在上面。因為公司比較新,所以沒有什么歷史遺留遷移的問題。大家大膽的使用 Scala 作為主要編程語言,采用 Python 作為腳本控制,比如產(chǎn)品組就是提供的課程產(chǎn)品,里面大量使用 Play Framework,Javascript 的 backbone 作為控制中樞。而架構組主要是維護底層存儲,通用服務,性能和穩(wěn)定性。
我在的數(shù)據(jù)組由 10 多人構成,一部分是對商業(yè)產(chǎn)品,核心增長指標做監(jiān)控,挖掘和改進。一部分是搭建數(shù)據(jù)倉庫完善跟各個部門的無縫數(shù)據(jù)流動,也用到很多技術例如使用 Scalding 編寫 Hadoop MapReduce 程序,也有人做 AB testing 框架, 推薦系統(tǒng),盡可能用最少人力做影響力的事情。其實除了開源世界,我們也積極使用第三方的產(chǎn)品,比如 sumologic 做日志錯誤分析,Redshift 作為大數(shù)據(jù)分析平臺,Slack 做內部通訊。而所有的這些就是想解放生產(chǎn)力,把重心放到用戶體驗,產(chǎn)品開發(fā)和迭代上去。