大數據相關技術、Hadoop生態、LinkedIn內部實戰

jopen 9年前發布 | 193K 次閱讀 Hadoop 分布式/云計算/大數據

董老師開講了《大數據入門》2015.01.17 硅谷創業協會講座筆記:
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
同學們好,今天的講座主題是大數據入門,我的大綱如下
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰 大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
首先自我介紹一下,我叫董飛,目前在硅谷的一家做在線教育公司Coursera做數據工程師,之前本科南開大學畢業,加入創業公司酷迅,做實時信息檢索, 后來進入百度基礎架構組,搭建了Baidu App Engine的早期版本,隨后去杜克大學留學,攻讀碩士期間,做跟Hadoop大數據相關的研究項目Starfish,之后在Amazon EC2部門實習,了解它們的內部架構,畢業后加入Linkedin,做廣告組的架構,涉及Hadoop調優,Data Pipeline, 實時系統。在多年工作中,除了對技術的不懈追求,也積累了大量的面試經驗,從國內的一線互聯網百度,阿里巴巴,奇虎,到美國一線公司 非死book,Google,Linkedin,推ter,到熱門 Startup,Uber,Pinterest,Airbnb,Dropbox,Snapchat,拿到10+ offer,并且在Linkedin期間,也積極參與面試過近200人,代表校園招聘,成為全公司前三的面試官,參與面試題制定,樂于分享并幫助很多人成 功求職,實現目標。在知乎上寫完關于技術,求職的幾個帖子,引起強烈反響,

美國大數據工程師面試攻略有哪些?

知乎日報 哪些硅谷創業公司能給拜訪者留下深刻印象?

Coursera上有哪些課程值得推薦?

大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰

在硅谷大家非常熱情的談創業談機會,我也通過自己的一些觀察和積累,看到了不少最近幾年涌現的熱門創業公司。

我給大家一個列表,這個是華爾街網站的全世界創業公司融資規模評選(http://graphics.wsj.com/billion-dollar-club/)。它本來的標題是billion club,我在去年講座也分享過,不到一年的時間,

截至到2015年1月17日,現在的排名和規模已經發生了很大的變化。首先估值在10Billlon的達到了7家,而一年前一家都沒有。第二第一名是中國人家喻戶曉的小米,第三,前20名中,絕大多數(8成在美國,在加州,在硅谷,在舊金山!)比 如Uber, Airbnb, Dropbox, Pinterest. 第四 里面也有不少相似模式成功的,比如Flipkart就是印度市場的淘寶,Uber與Airbnb都是共享經濟的范疇。所以大家還是可以在移動 (Uber),大數據(Palantir),消費級互聯網,通訊(Snapchat),支付(Square),O2O App里面尋找下大機會。這里面很多公司我都親自面試和感受過他們的環境,我下面有機會也會一一給大家詳細介紹。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
在Linkedin,它每年評選一個最有需求的創業公司名單,基本上結合Linkedin用戶訪問量,申請數做出的挖掘。我這里列出了最近3年,大家可以 做個判別和趨勢分析,里面還是很大靠譜的,比如不少上榜名單已經成功IPO(GoPro. Hortonworks, Splunk),里面有很多大數據領域公司(Splunk, Box, Nimble Storage, Violin Memroy, Dropbox)除了之前看到的一些互聯網項目,在一些醫療健康(theranos),智能硬件(leap motion, fitbit, Jawbone),在線教育(Coursera),也吸引了很大注意力。

大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
看了那么多高估值公司,很多人都覺得非常瘋狂,是不是很大泡沫了,泡沫是不是要破了,這是很多人的疑問。在硅谷這個充滿夢想的地方,投資人鼓勵創業者大膽 去做同樣也助長了泡沫,很多項目在幾個月的時間就會估值翻2,3倍,如Uber,Snapchat上我也驚訝于他們的巨額融資規模。

那么這張圖就是講“新興技術炒作”周期,把各類技術按照技術成熟度和期望值分類,這是硅谷創業孵化器YCombinator 課程How to start a startup(http://startupclass.samaltman.com/) 提到。創新萌芽Innovation Trigger”、“期望最頂點Peak ofInflated Expectation”、“下調預期至低點Trough of Disillusion”、“回歸理想Slope ofEnlightenment”、“生產率平臺Plateau of Productivity”,越往左,技術約新潮,越處于概念階段;越往右,技術約成熟,約進入商業化應用,發揮出提高生產率的效果。縱軸代表預期值,人 們對于新技術通常會隨著認識的深入,預期不斷升溫,伴之以媒體炒作而到達頂峰;隨之因技術瓶頸或其他原因,預期逐漸冷卻至低點,但技術技術成熟后,期望又 重新上升,重新積累用戶,然后就到了可持續增長的健康軌道上來。今年和去年的圖對比顯示,物聯網、自動駕駛汽車、消費級3D打印、自然語言問答等概念正在處于炒作的頂峰。而大數據已從頂峰滑落,NFC和云計算接近谷底。

大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰

未來趨勢是什么?大家都很關心。我先提一個最近看的一部電影《Imitation Game》,講計算機邏輯的奠基者艾倫圖靈(計算機屆最高獎以他命名)艱難的一生,他當年為破譯德軍密碼制作了圖靈機為二戰勝利作出卓越貢獻,挽回幾千萬 人的生命,可在那個時代因為同性戀被判化學閹割,自殺結束了短暫的42歲生命。他的一個偉大貢獻就是在人工智能的開拓工作,他提出圖靈測試(Turing Test),測試某機器是否能表現出與人等價或無法區分的智能。我們現在回到今天,人工智能已經有了很大進步,從專家系統到基于統計的學習,從支持向量機 到神經網絡深度學習,每一步都帶領機器智能走向下一個階梯。在Google資深科學家吳軍博士(數學之美,浪潮之巔作者),他提出當前技術發展三個趨勢,第一,云計算和和移動互聯網,這是正在進行時;第二,機器智能,現在開始發生,但對社會的影響很多人還沒有意識到;第三,大數據和機器智能結合,這是未來時,一定會發生,有公司在做,但還沒有太形成規模。他認為未來機器會控制98%的人,而現在我們就要做個選擇,怎么成為剩下的2%?http://chuansong.me/n/1089215 李開復在2015年新年展望也提出未來五年物聯網帶來龐大創業機會。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
大數據入門,我們做個思考,以前有個國王很闊綽也很愛排場,有天他很高興想獎賞他的寵臣,然后說讓他來提任何獎勵,這個大臣給國王看下面這個棋盤,是個 8*8的方格,如果我在每個標號的格子內放米粒,第一個格子放1粒米,后面的格子總是前面格子的兩倍。那么問題來了,如果我把整個棋盤放滿,需要多少米 粒?我們學過級數的話,可以快速做個演算,它的推演是 1 + 2 + 4 … + 2^63 = 2^64 – 1 這個數字多大很多人沒印象,反正如果真的要兌現的話,這個國家肯定是破產了。其實我把這個棋盤分成上下兩半,在上一半總共需要的米粒是2^32, 這并不是個很大的數,其實前幾年計算機的32位就是那么大,但下半場就完全不一樣了,這是個平方級別的scale,我下面會給大家一個交代。現在大家也經 常聽到什么手機64位處理器,其實并無實際意義。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我們接著看這張曲線圖是信息時代的增長,其實在工業革命之前(1820年),世界人均GDP在1800年前的兩三千年里基本沒有變化,而從1820年到 2001年的180年里,世界人均GDP從原來的667美元增長到6049美元。由此足見,工業革命帶來的收入增長的確是翻天覆地的。這里面發生了什么, 大家可以去思考一下。但人類的進步并沒有停止或者說穩步增長,在發明了電力,電腦,互聯網,移動互聯網,全球年GDP增長 從萬分之5到2%,信息也是在急劇增長,根據計算,最近兩年的信息量是之前30年的總和,最近10年是遠超人類所有之前累計信息量之和。在計算機時代,有 個著名的摩爾定律,就是說同樣成本每隔18個月晶體管數量會翻倍,反過來同樣數量晶體管成本會減半,這個規律已經很好的match了最近30年的發展,并 且可以衍生到很多類似的領域:存儲,功耗,帶寬,像素。而下面這個是馮諾伊曼,20世紀最重要的數學家之一,在現代計算機、博弈論和核武器等諸多領域內有 杰出建樹的最偉大的科學全才之一。他提出(技術)將會逼近人類歷史上的某種本質的奇點,在那之后 全部人類行為都不可能以我們熟悉的面貌繼續存在。這就是著名的奇點理論。目前會越來越快指數性增長,美國未來學家Ray Kurzweil稱人類能夠在2045年實現數字化永生,他自己也創辦奇點大學,相信隨著信息技術、無線網、生物、物理等領域的指數級增長,將在2029 年實現人工智能,人的壽命也將會在未來15年得到大幅延長。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我們在回到現在,地球上至今的數據量從GB,TB,PB,EB到達ZB,我們之前提出的2^64就相當于16EB的大小
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
大數據的用途,所謂學以致用,大數據領域在各個行業都可以應用,這里舉出幾個有趣的例子,在Linkedin的時候,CEO提出經濟圖譜的概念,希望整合 用戶,公司,工作機會,技能,學校,帖子變成一個復雜而有蘊含無限可能的數字化社會。找對象,有個國外的極客,他抓取了dating網站的數據,根據有些 指標如地理,年齡,興趣,建立下面的3D模型找到真愛;例如阿里巴巴通過數據魔方(它們的大數據產品),提煉出消費跟女生胸部成正比的結論。在移動App 上,今日頭條通過你的個人社會化信息,建立起興趣圖譜推薦文章并且隨著你的使用會越來越聰明;在線教育領域:MOOC中的M就是大規模的意思;其他如互聯 網金融人人貸,通過大數據積累信用,釋放一些傳統金融體系下未被滿足而又廣泛存在的巨大需求,最近也是拿到1.3億美金的融資。硅谷有家 Wealthfront做大數據理財,23andMe提供個人基因組的“大數據“。等等
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
除了大數據,從另一個微觀角度如何看小,這就像相對論和量子力學,Google院士Jeff Dean給出了一些非常基本,但也是學計算機需要掌握的數字。在計算機體系結構里有個局部性原理(Locality)越往上的就越快,當然代價就是非常珍 貴,從寄存器到CPU L2 Cache, 從內存到Flash到磁盤到網絡,從連續讀到隨機讀,它們的速率都是相差數量級的。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
這是2014年別人總結的Big Data公司列表,我們大致可以分成基礎架構和應用,而底層都是會用到一些通用技術,如Hadoop,Mahout,HBase,Cassandra,我在下面也會涵蓋。我可以舉幾個例子,在 分析這一塊,cloudera,hortonworks,mapr作為Hadoop的三劍客,一些運維領域,mangodb,couchbase都是 nosql的代表,作為服務領域AWS和Google BigQuery劍拔弩張,在傳統數據庫,Oracle收購了MySQL,DB2老牌銀行專用,Teradata做了多年數據倉庫。上 面的Apps更多,比如社交消費領域Google, Amazon, Netflix, 推ter, 商業智能:SAP,GoodData,一些在廣告媒體領域:TURN,Rocketfuel,做智能運維sumologic等等。最后還有個去年的新星 Databricks 伴隨著Spark的浪潮震撼Hadoop的生態系統
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
對于迅速成長的中國市場,大公司也意味著大數據,BAT三家都是對大數據的投入也是不惜余力,我4年前在Baidu的的時候,就提出框計算的東東,最近兩 年成立了硅谷研究院,挖來Andrew Ng作為首席科學家,研究項目就是百度大腦,在語音,圖片識別大幅提高精確度和召回率,最近還做了個無人自行車非常有趣。騰訊作為最大的社交應用對大數據 也是情有獨鐘,自己研發了C++平臺的海量存儲系統。淘寶去年雙十一主戰場,2分鐘突破10億,交易額突破571億,背后是有很多故事,當年在百度做 Pyramid(按Google三輛馬車打造的金字塔三層分布式系統)有志之士,繼續在OceanBase創造神話。而阿里云當年備受爭議,馬云也懷疑是 不是被王堅忽悠,最后經歷了雙十一的洗禮證明了OceanBase和阿里云的靠譜。小米的雷軍對大數據也是寄托厚望,一方面這么多數據幾何級數增長,另一 方面存儲帶寬都是巨大成本,沒價值就真破產。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
大數據相關技術,最緊密的就是云計算,我列出主要是Amazon Web Service和Google Cloud Platform,在國內還有阿里云,金山云,百度云,騰訊云,小米云,360云,七牛。。每個里面都是大量技術文檔和標準,從計算到存儲,從數據庫到消 息,從監控到部署管理,從虛擬網絡到CDN,把所有的一切用軟件重新定義了一遍。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我本人在Amazon 云計算部門工作過,所有還是比較了解AWS,總體上成熟度很高,有大量startup都是基于上面開發,比如有名的 Netflix,Pinterest,Coursera。Amazon還是不斷創新,每年召開reInvent大會推廣新的云產品和分享成功案例,在這里 面我隨便說幾個,像S3是簡單面向對象的存儲,DynamoDB是對關系型數據庫的補充,Glacier對冷數據做歸檔處理,Elastic MapReduce直接對MapReduce做打包提供計算服務,EC2就是基礎的虛擬主機,Data Pipeline 會提供圖形化界面直接串聯工作任務。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
這邊還可以說一下Redshift,它是一種(massively parallel computer)架構,是非常方便的數據倉庫解決方案,就是SQL接口,跟各個云服務無縫連接,最大特點就是快,在TB到PB級別非常好的性能,我在工 作中也是直接使用,它還支持不同的硬件平臺,如果想速度更快,可以使用SSD的,當然支持容量就小些。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
在數據庫領域,我就列出三種代表,一類是關系型數據庫管理系統,它的特點是A(Atomic), C(consistent), I(isolation), D(duration), 連起來就是ACID(酸) 簡單說就是支持事務回滾和外鍵關聯。而NoSQL是與之對應的Base(堿),所謂Basic 可用,為了擴大Scale,犧牲一些一致性和事務。而Google提出F1,希望解決在大規模數據的同時還要做到事務強一致性。在這里面都是非常常見的 NoSQL, 這些公司可能你都沒聽過,但它們都是融資過億,估值都非常高,在幾個billion以上。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我會花一些篇幅介紹Hadoop,首先看Hadoop從哪里開始的,不得不提Google的先進性,在10多年前,Google出了3篇paper論述分 布式系統的做法,分別是GFS, MapReduce, BigTable,非常NB的系統,但沒人見過,在工業界很多人癢癢的就想按其思想去仿作,當時Apache Nutch Lucene的作者Doug Cutting也是其中之一,后來他們被Yahoo收購,專門成立Team去投入做,就是Hadoop的開始和大規模發展的地方,之后隨著Yahoo的衰 落,牛人去了非死book, Google, 也有成立了Cloudera, Hortonworks等大數據公司,把Hadoop的實踐帶到各個硅谷公司。而Google還沒有停止,又出了新的三輛馬車,Pregel, Caffeine, Dremel, 后來又有很多步入后塵,開始新一輪開源大戰。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
那么為啥Hadoop就比較適合做大數據呢?首先擴展很好,直接通過加節點就可以把系統能力提高,它有個重要思想是移動計算而不是移動數 據,因為數據的移動是很大的成本需要網絡帶寬。其次它提出的目標就是利用廉價的普通計算機(硬盤),這樣雖然可能不穩定(磁盤壞的幾率),但通過系統級別 上的容錯和冗余達到高可靠性。并且非常靈活,可以使用各種data,二進制,文檔型,記錄型。使用各種形式(結構化,半結構化,非結構化所謂的 schemaless),在按需計算上也是個技巧。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
另一個問題,我們提到Hadoop一般不會說某一個東西,而是指生態系統,在這里面太多交互的組件了,涉及到IO,處理,應用,配置,工 作流。在真正的工作中,當幾個組件互相影響,你的頭疼的維護才剛剛開始。我也簡單說幾個:Hadoop Core就三個HDFS,MapReduce,Common,在外圍有NoSQL: Cassandra, HBase, 有非死book開發的數據倉庫Hive,有Yahoo主力研發的Pig工作流語言,有機器學習算法庫Mahout,工作流管理軟件Oozie,在很多 分布式系統選擇Master中扮演重要角色的Zookeeper。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
這是Hortonworks提出的data platform,這個公司比較強勢,它有最多的Hadoop committee成員,是真正的標準制定者。而2。0就是由它們提出。在Hadoop 1。0之前,是0.16到0.19,0.20,還有一只是0。23進化成現在的2。0,應該說現在大致都是被2。0取代了。主要區別是 1.0只能支持MapReduce框架,資源和數據處理限制在一起。而2。0首先抽象出Yarn這個資源管理器,然后上層可以支持各種插件機制,便于擴 展,Hortonworks還研發了Tez作為加速引擎把一些相關任務合并共享或者并行來優化。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
這個是Intel給出的Hadoop Stack,Intel也是個對技術前沿由追求的公司,雖然它主業是處理器,但在互聯網的時代,為了抓住一些軟件機會,它們也在積極融合,為生態系統做貢獻。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
Cloudera是老牌Hadoop公司,成立了7,8年了,當年的Hadoop之父就是在那做首席架構,它提出的CDH版本是很多公司的穩定Hadoop版本,一般公司也不會自己去搭Hadoop最新版,否則出了Bug會很痛苦,它提供了一個打包方便部署。

大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
下面的內容涉及技術細節甚至源代碼,可能有些枯燥,我也盡量深入淺出。我們先說HDFS,所謂Hadoop的分布式文件系統,它是能真正做到高強度容錯。 并且根據locality原理,對連續存儲做了優化。簡單說就是分配大的數據塊,每次連續讀整數個。如果讓你自己來設計分布式文件系統,在某機器掛掉還能 正常訪問該怎么做?首先需要有個master作為目錄查找(這里就是Namenode),那么數據節點是作為分割好一塊塊的,同一塊數據為了做備份不能放 到同一個機器上,否則這臺機器掛了,你備份也同樣沒辦法找到。HDFS用一種機架位感知的辦法,先把一份拷貝放入同機架上的機器,然后在拷貝一份到其他服 務器,也許是不同數據中心的,這樣如果某個數據點壞了,就從另一個機架上調用,而同一個機架它們內網連接是非常快的,如果那個機器也壞了,只能從遠程去獲 取。這是一種辦法,現在還有基于erasure code本來是用在通信容錯領域的辦法,可以節約空間又達到容錯的目的,大家感興趣可以去查詢。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
接著說MapReduce,首先是個編程范式,它的思想是對批量處理的任務,分成兩個階段,所謂的Map階段就是把數據生成key, value pair, 再排序,中間有一步叫shuffle,把同樣的key運輸到同一個reducer上面去,而在reducer上,因為同樣key已經確保在同一個上,就直 接可以做聚合,算出一些sum, 最后把結果輸出到HDFS上。對應開發者來說,你需要做的就是編寫Map和reduce函數,像中間的排序和shuffle網絡傳輸,容錯處理,框架已經 幫你做好了。但據說google內部早不用這種,又有新的強大工具出現了。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
HBase 就是對應的BigTable的克隆版,它是基于列的存儲,可以很好的擴展型,這里面出現了Zookeeper作為它高可靠性的來源,我們在分布式系統中經 常怕Single Point of Failure,它能保證在少于一半節點損害情況下,還是可以工作的。這里的region server是說把數據的key做范圍的劃分,比如region server1負責key從1到1w的,region server2負責1w到2w的,這樣劃分之后就可以利用分布式機器的存儲和運算能力了。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
雖然MapReduce強大,但編寫很麻煩,在一般的工作中大家不會直接寫MapReduce程序。有人又開動大腦,簡化開發。Hive的簡單介紹,它主要是非死book開發,確實很容易上手,如果做data scientist,經常也要用到這個工具
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我們還是看個基本的例子,看看到底怎么寫Hadoop的代碼,每個編程語言都有個hello world的版本,對應的Hadoop就是Word Count。需求很簡單,就是為文檔中的每個單詞統計詞頻,當然這個文檔如果很小,用PC上Linux命令就可以做到,問題是如果是1Billion以上 的文本呢?單機無法裝的下。這時候典型的思路就是分而治之:先對每個文檔片段做個Map,生成單詞到頻率(1)的對應,然后把同樣單詞(key)送入到同 一個reducer上面去,最后每個reducer加一下就拿到最后結果,是不是很簡單?
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰

大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰 大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
好,我們分別看下Java/Hive/Pig的版本,總體上Hive最精煉。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我們想MapReduce模型有什么問題?第一:需要寫很多底層的代碼不夠高效,第二:所有的事情必須要轉化成兩個操作,這本身就很奇怪,也不能解決所有的情況。那么下面就看看有么有什么可以做的更好的
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我還是介紹一些Spark的起源。發自 2010年Berkeley AMPLab,發表在hotcloud 是一個從學術界到工業界的成功典范,也吸引了頂級VC:Andreessen Horowitz的 注資 AMPLab這個實驗室非常厲害,做大數據,云計算,跟工業界結合很緊密,之前就是他們做mesos,hadoop online, 在2013年,這些大牛(Berkeley系主任,MIT最年輕的助理教授)從Berkeley AMPLab出去成立了Databricks,引無數Hadoop大佬盡折腰,其實也不見得是它們內心這么想,比如Cloudera也有自家的 impala,支持Spark肯定會讓它自家很難受,但如果你的客戶強烈要求你支持,你是沒有選擇的。另外起名字也很重要,Spark就占了先機,它們 CTO說Where There’s Spark There’s Fire。它是用函數式語言Scala編寫,Spark簡單說就是內存計算(包含迭代式計算,DAG計算,流式計算 )框架,之前MapReduce因效率低下大家經常嘲笑,而Spark的出現讓大家很清新。 Reynod 作為Spark核心開發者, 介紹Spark性能超Hadoop百倍,算法實現僅有其1/10或1/100。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
為啥用Spark,最直接的就是快啊,你用Hadoop跑大規模數據幾個小時跑完,這邊才幾十秒,這種變化不僅是數量級的,并且是對你的開發方式翻天覆地 的變化,比如你想驗證一個算法,你也不知道到底效果如何,但如果能在秒級就給你反饋,你可以立馬去調節。其他的如比MapReduce靈活啊,支持迭代的 算法,ad-hoc query, 不需要你費很多力氣花在軟件的搭建上。如果說你用Hadoop的組建集群,測試,部署一個簡單任務要1周的時間,Spark可能只要一天。在去年的 Sort benchmark上,Spark用了23min跑完了100TB的排序,刷新了之前Hadoop保持的世界紀錄。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
下面這個是跟Hadoop跟Spark在回歸算法上比較,在Hadoop的世界里,做迭代計算是非常耗資源,它每次的IO 序列畫代價很大,所以每次迭代需要差不多的等待。而Spark第一次啟動需要載入到內存,之后迭代直接在內存利用中間結果做不落地的運算,所以后期的迭代 速度快到可以忽略不計。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
Spark也是一個生態系統,除了核心組建Spark,它也是可以跑在Hadoop上面,而它還提供了很多方便的庫,比如做流式計算,Spark Streaming,比如GraphX做圖的運算,MLBase做機器學習,Shark類似Hive,BinkDB也很有意思,為了達到高效,它允許你提 供一個誤差概率,如果你要求的精確度越低,它的運算速度就越快,在做一些模糊計算時像推ter的follower數目,可以提高效率。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
所以總體來說,Spark是一個非常精煉的API,它提供常用的集合操作,然后本身可以獨立運行,或者在Hadoop Yarn上面,或者Mesos,而存儲也可以用HDFS,做到了兼容并包,敏捷高效。是不是會取代Hadoop或者成為Hadoop的下一代核心,我們拭 目以待!
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
說到一些工業實踐,我可以拿Linkedin舉例子,在Linkedin,有很多數據產品,比如People you may like, job you may be interested, 你的用戶訪問來源,甚至你的career path都可以挖掘出來。 那么在Linkedin也是大量用到開源技術,我這里就說一個最成功的Kafka,它是一個分布式的消息隊列,可以用在tracking,機器內部 metrics,數據傳輸。數據在前端后端會經過不同的存儲或者平臺,每個平臺都有自己的格式,如果沒有一個unified log,會出現災難型的O(m*n)的數據對接復雜度,如果你設定的格式一旦發生變化,也是要修改所有相關的。所以這里提出的中間橋梁就是Kafka,大 家約定用一個格式作為傳輸標準,然后在接受端可以任意定制你想要的數據源(topics),最后實現的線性的O(m+n)的復雜度。對應的設計細節,還是 要參考設計文檔 http://kafka.apache.org/ 這里面主要作者Jay Kreps,Rao Jun 出來成立了Kafka作為獨立發展的公司。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
在Linkedin,Hadoop作為批處理的主力,大量應用在各個產品線上,比如廣告組。我們一方面需要去做一些靈活的查詢分析廣告主的匹配,廣告預測 和實際效果,另外在報表生成方面也是Hadoop作為支持。如果你想去面試Linkedin 后端組,我建議大家去把Hive, Pig, Azkaban(數據流的管理軟件),Avro 數據定義格式,Kafka,Voldemort 都去看一些設計理念,linkedin有專門的開源社區,也是build自己的技術品牌。http://data.linkedin.com/
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
那同學們如果問如何開始學習大數據,我也有一些建議,首先還是打好基礎,Hadoop雖然是火熱,但它的基礎原理都是書本上很多年的積累,像Unix設計 哲學,數據庫的原理,這里也推薦了一些重量級的書可以參考。其次是選擇目標,如果你像做數據科學家,我可以推薦coursera的data science課程,通俗易懂https://www.coursera.org/specialization/jhudatascience/1
學習Hive,Pig這些基本工具,如果做應用層,主要是把Hadoop的一些工作流要熟悉,包括一些基本調優,如果是想做架構,除了能搭建集群,對各個 基礎軟件服務很了解,還要理解計算機的瓶頸和負載管理,Linux的一些性能工具。最后還是要多加練習,大數據本身就是靠實踐的,你可以先按API寫書上 的例子,能夠先調試成功,在下面就是多積累,當遇到相似的問題能找到對應的經典模式,再進一步就是實際問題,也許周邊誰也沒遇到,你需要些靈感和網上問問 題的技巧,然后根據實際情況作出最佳選擇。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
這邊列出一些參考資料,比如數據庫系統,Hadoop 最經典的the definitive guide, 我在知乎上也有分享http://www.zhihu.com/question/23655827/answer/29611595
還有一些科普或者管理書籍不錯我都一并推薦。
大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰 大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰
我的聯系方式和最后的話,謝謝!

本文來自董飛投稿。

End.大數據入門——大數據相關技術、Hadoop生態、LinkedIn內部實戰

來自36大數據(36dsj.com):36大數據 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!