久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Spark技術解析及其在百度最大千臺單集群的應用實踐

 icecity1306 2015-01-28

2014年,Spark開源生態(tài)系統(tǒng)得到了大幅增長,,已成為大數(shù)據(jù)領域最人氣的開源項目之一,,活躍在Hortonworks,、IBM、Cloudera,、MapR和Pivotal等眾多知名大數(shù)據(jù)公司,,更擁有Spark SQL、Spark Streaming,、MLlib,、GraphX等多個相關項目。同時值得一提的是,,Spark SQL的貢獻者中有一半左右是華人,。

2015年1月10日,Databricks軟件工程師連城,、百度高級工程師甄鵬,、百度架構師孫垚光、百度美國研發(fā)中心高級架構師劉少山四位專家聯(lián)手為我們打造了一場基于Spark的高性能應用盛宴,。其中,,Databircks是Spark的創(chuàng)建公司,而百度則是國內規(guī)模最大的Spark集群的運營者(基于出稿前,,國內各大Spark用戶公布的數(shù)據(jù))——實際生產(chǎn)環(huán)境,,最大單集群規(guī)模1300臺(包含數(shù)萬核心和上百TB內存),公司內部同時還運行著大量的小型Spark集群,。

Databricks軟件工程師連城——Spark SQL 1.2的提升和新特性


談及Spark SQL 1.2的提升和新特性,,連城主要總結了4個方面——External data source API(外部數(shù)據(jù)源API)、列式內存存儲加強(Enhanced in-memory columnar storage),、Parquet支持加強(Enhanced Parquet support)和Hive支持加強(Enhanced Hive support),。

External data source API

連城表示,因為在處理很多外部數(shù)據(jù)源中出現(xiàn)的擴展問題,,Spark在1.2版本發(fā)布了External data source API,。通過External data source API,Spark SQL可以將不同數(shù)據(jù)源的數(shù)據(jù)抽象為關系表格,,并實現(xiàn)多數(shù)據(jù)源互操作,。


目前,在External data source API上已經(jīng)實現(xiàn)了JSON,、Avro,、CSV等簡單格式的外部數(shù)據(jù)源支持,Parquet和ORC等更加適合數(shù)據(jù)倉庫的高級文件格式的支持也正在開發(fā) 中,,Spark SQL 1.2中已經(jīng)搭載了一套新的Parquet數(shù)據(jù)源實現(xiàn),。除此之外,利用External data source API還可以實現(xiàn)Spark與HBase,、JDBC等外部系統(tǒng)的高效對接,。

連城表示,,在1.2版本之前,開發(fā)者已經(jīng)可以通過擴展RDD的方式支持各種外部數(shù)據(jù)源,。因此,,對比更原生的支持一些外部數(shù)據(jù)源,External data source API的意義更在于針對相應數(shù)據(jù)源進行的特殊優(yōu)化,,主要包括Column pruning(列剪枝)和Predicate pushdown兩個方面:

Column pruning,。在列剪枝中,Column pruning可以完全忽視無需處理的字段,,從而顯著地減少IO,。


Predicate pushdown。將SQL查詢中的部分過濾條件下推到更加靠近數(shù)據(jù)源的位置,,利用Parquet,、ORC等智能格式寫入時記錄的統(tǒng)計信息(比如最大值、最小值等)來跳過必 然不存在目標數(shù)據(jù)的數(shù)據(jù)段,,從而節(jié)省磁盤IO,。


使用External data source API之前


使用External data source API之后


搭載了如Parquet和ORC這樣的智能格式

連城表示,在Spark 1.2版本中,,External data source API只提供了查詢支持,尚未提供數(shù)據(jù)寫入支持,。在后續(xù)版本中還將提供帶分片剪枝的分片支持和數(shù)據(jù)寫入支持,。今后也期望將Spark SQL的Hive支持遷移到data source API上。

Enhanced in-memory columnar storage

連城表示,,不管Shark,,還是Spark,內存緩存表的支持都是非常重要的一個特性,。他表示,,雖然在1.1和之前版本中的列式內存表的性能已然不錯,但是還會出現(xiàn)一些問題:第一,,大數(shù)據(jù)量下緩存超大體積表時(雖然不推薦,,但不缺現(xiàn)實用例),會出現(xiàn)OOM等問題,;第二,,在列式存儲中,像Parquet,、ORC這種收集統(tǒng)計信息然后通過這些信息做partition skipping等操作在之前版本中并沒有完全實現(xiàn),。這些問題在1.2版本中都得到了解決,本節(jié),,連城主要介紹了語義統(tǒng)一,、緩存實體化,、基于查詢計劃的緩存共享、Cache大表時的OOM問題,、表格統(tǒng)計(Table statistics)等方面,。

緩存實體化。SQLContext.cacheTable(“tbl”)默認使用eager模式,,緩存實體化將自動進行,,不會再等到表被使用或觸發(fā)時,避免手動做“SELECT COUNT(*) FROM src;”,。同時,,新增了“CACHE [LAZY] TABLE tbl [AS SELECT …]”這樣的DML。

語義統(tǒng)一,。早期時候,,SchemaRDD.cache()和SQLContext.cacheTable(“tbl”)這兩個語義是不同的。其中,,SQLContext.cacheTable會去建立一些列式存儲格式相關優(yōu)化,,而SchemaRDD.cache()卻以一行一個對象的模式進行。在1.2版本中,,這兩個操作已被統(tǒng)一,,同時各種cache操作都將得到一個統(tǒng)一的內存表。

基于查詢計劃的緩存共享,。兩個得到相同結果的cache語句將共享同一份緩存數(shù)據(jù),。

避免Cache大表時的OOM問題。優(yōu)化內存表的建立和訪問,,減少開銷,,進一步提升性能;在緩存大表時,,引入batched column buffer builder,,將每一列切成多個batch,從而避免了OOM,。


表格統(tǒng)計,。Table statistics,類似Parquet,、ORC使用的技術,,在1.2版本中主要實現(xiàn)了Predicate pushdown(實現(xiàn)更快的表格掃描),同時配合內存表的統(tǒng)計數(shù)據(jù),,可以對大小表join自動進行廣播優(yōu)化,。

最后,連城還詳細介紹了一些關于加強Parquet和Hive支持的實現(xiàn),,以及Spark未來的一些工作,。

百度基礎架構部高級工程師甄鵬——Spark在百度開放云BMR中的實戰(zhàn)分享


百度分布式計算團隊從2011年開始持續(xù)關注Spark,,并于2014年將Spark正式引入百度分布式計算生態(tài)系統(tǒng)中,在國內率先面向開發(fā)者及企業(yè)用戶推出了支持Spark并兼容開源接口的大數(shù)據(jù)處理產(chǎn)品BMR(Baidu MapReduce),。在甄鵬的分享中,,我們主要了解了百度Spark 應用現(xiàn)狀、百度開放云BMR和Spark On BMR三個方面的內容,。

Spark在百度

甄鵬表示,,當前百度的Spark集群由上千臺物理主機(數(shù)萬Cores,上百TBMemory)組成,,日提交App在數(shù)百,,已應用于鳳巢、大搜索,、直達號,、百度大數(shù)據(jù)等業(yè)務。之以選擇Spark,,甄鵬總結了三個原因:快速高效,、API 友好易用和組件豐富。

快速高效,。首先,,Spark使用了線程池模式,任務調度效率很高,;其次,,Spark可以最大限度地利用內存,多輪迭代任務執(zhí)行效率高,。

API友好易用。這主要基于兩個方面:第一,,Spark支持多門編程語言,,可以滿足不同語言背景的人使用;第二,,Spark的表達能力非常豐富,,并且封裝了大量常用操作。

組件豐富,。Spark生態(tài)圈當下已比較完善,,在官方組件涵蓋SQL、圖計算,、機器學習和實時計算的同時,,還有著很多第三方開發(fā)的優(yōu)秀組件,足以應對日常的數(shù)據(jù)處理需求,。

百度開放云BMR

在BMR介紹中,,甄鵬表示,,雖然BMR被稱為Baidu MapReduce,但是這個名稱已經(jīng)不能完全表示出這個平臺:BMR是百度開放云的數(shù)據(jù)分析服務產(chǎn)品,,基于百度多年大數(shù)據(jù)處理分析經(jīng)驗,,面向企業(yè)和開發(fā)者提供按需部署的Hadoop&Spark集群計算服務,讓客戶具備海量數(shù)據(jù)分析和挖掘能力,,從而提升業(yè)務競爭力,。


如圖所示,BMR基于BCC(百度云服務器),,建立在HDFS和BOS(百度對象存儲)分布式存儲之上,,其處理引擎包含了MapReduce和Spark,同時還使用了HBase數(shù)據(jù)庫,。在此之上,,系統(tǒng)集成了Pig、Hive,、SQL,、Streaming、GraphX,、MLLib等專有服務,。在系統(tǒng)的最上層,BMR提供了一個基于Web的控制臺,,以及一個API形式的SDK,。

在圖片的最右邊,Scheduler在BMR中起到了管理作用,,使用它開發(fā)者可以編寫比較復雜的作業(yè)流,。

Spark On BMR

類似于通常的云服務,BMR中的Spark同樣隨用隨起,,集群空閑即銷毀,,幫助用戶節(jié)省預算。此外,,集群創(chuàng)建可以在3到5分鐘內完成,,包含了完整的Spark+HDFS+YARN堆棧。同時,,BMR也提供Long Running模式,,并有多種套餐可選。


完善的報表服務,,全方位監(jiān)控

在安全上,,用戶擁有虛擬的獨立網(wǎng)絡,在同一用戶全部集群可互聯(lián)的同時,BMR用戶間網(wǎng)絡被完全隔離,。同時,,BMR還支持動態(tài)擴容,節(jié)點規(guī)??蓮椥陨炜s,。除此之外,在實現(xiàn)Spark全組件支持的同時,,BMR可無縫對接百度的對象存儲BOS服務,,借力百度多年的存儲研發(fā)經(jīng)驗,保證數(shù)據(jù)存儲的高可靠性,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多