分布式計算框架:Google Cloud Dataflow

Google Cloud Dataflow是一種構建、管理和優化復雜數據處理流水線的方法,集成了許多內部技術,如用于數據高效并行化處理的Flume和具有良好容錯機制流處理的MillWheel。Dataflow當前的API還只有Java版本(其實Flume本身是提供Java/C++/Python多種接口的,MillWheel也提供Java/C++的API)。

相比原生的map-reduce模型,Dataflow有幾個優點:

  1. 可以構建復雜的pipeline,在這不妨引用Google云平臺的產品營銷總監Brian Goldfarb的話

    Cloud Dataflow可以用于處理批量數據和流數據兩種。在一個世界性事件(比如演講當中的世界杯事件)中,實時分析上百萬推ter數據。在流水線的一 個部階段責讀取tweet,下一個階段負責抽取標簽。另一個階段對tweet分類(基于情感,正面負面或者其他方面)。下一個階段過濾關鍵詞等等。相比之 下,Map/Reduce這個用來處理大數據的較早模型,處理這種實時數據已經力不從心,而且也很難應用到這種很長很復雜的數據流水線上。

    </blockquote> </li>

  2. 不需手工配置和管理MapReduce集群。自動進行代碼優化和資源調度,使得開發者的主要精力可以放在業務邏輯本身
    分布式計算框架:Google Cloud Dataflow

    </li>

  3. 支持從Batch到Streaming模式的無縫切換:
    假設我們要根據用戶在推ter上產生的內容,來實現一個hashtags自動補全的功能

    Example: Auto completing hashtags
    Prefix  Suggestions
    ar  #argentina, #arugularocks, #argylesocks
    arg #argentina, #argylesocks, #argonauts
    arge    #argentina, #argentum, #argentine
    </li>

  4. Dashboard:
    還可以在developer console中了解流水線中每個環節執行的情況,每個流程框基本對應著一行代碼
    分布式計算框架:Google Cloud Dataflow

    </li>

  5. 生態系統:
    BigQuery作為存儲系統是Dataflow的一個補充,經過Dataflow清洗和處理過的數據,可以在 BigQuery中存下來,同時Dataflow也可以讀取BigQuery以進行表連接等操作。如果想在Dataflow上使用一些開源資源(比如說 Spark中的機器學習庫),也是很方便的
    分布式計算框架:Google Cloud Dataflow
    為了配合Dataflow,Google Cloud Platform還為開發者提供了一系列工具,包括云保存,云調試,云追蹤和云監控。

    </li> </ol>

    比較

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