WaterDrop On Spark(v1.x 版本只支持spark)

前言

Waterdrop 是一個非常易用,高性能,能夠應對海量數據的實時數據處理產品,構建於Apache Spark之上。

開源項目地址:https://interestinglab.github.io/waterdrop

Spark固然是一個優秀的分佈式數據處理工具,但Spark在我們的日常使用中還是存在不小的問題。因此可以通過某種方式讓Spark的使用更簡單,更高效,使用Spark的優質經驗固化到Waterdrop這個產品中,明顯減少學習成本,加快分佈式數據處理能力在生產環境落地。

特性

  • 簡單易用,靈活配置,無需開發;可運行在單機、Spark Standalone集羣、Yarn集羣、Mesos集羣之上。
  • 實時流式處理, 高性能, 海量數據處理能力
  • 模塊化和插件化,易於擴展。Waterdrop的用戶可根據實際的需要來擴展需要的插件,支持Java/Scala實現的Input、Filter、Output插件。
  • 支持利用SQL做數據處理和聚合

原理和工作流程

Waterdrop 利用了Spark的Streaming, SQL, DataFrame等技術,Java的反射機制、Service Loader等技術以及Antlr4的語法解析技術, 實現了一套完整的可插拔的數據處理工作流,如下:

多個Filter構建了數據處理的Pipeline,滿足各種各樣的數據處理需求,如果您熟悉SQL,也可以直接通過SQL構建數據處理的Pipeline,簡單高效。 目前Waterdrop支持的Filter列表(數據處理插件), 仍然在不斷擴充中。 您也可以開發自己的數據處理插件,整個系統是易於擴展的。通過下面的配置示例,你可以快速瞭解到這種工作流程:

spark {
  # Waterdrop defined streaming batch duration in seconds
  spark.streaming.batchDuration = 5
  spark.app.name = "Waterdrop"
  spark.ui.port = 13000
}
input {
  socket {}
} 
filter {
  split {
    fields = ["msg", "name"]
    delimiter = ","
  }
}
output {
  stdout {}
}

親測:

input:
    File
    FileStream
    Hdfs
    HdfsStream
    JDBC
    hive
file:
    split
    sql
    add
    drop
output:
    file
    hdfs
    kafka
    stdout(控制檯輸出)
    clickhouse
  • spark是spark相關的配置,可配置的spark參數見: Spark Configuration, 其中master, deploy-mode兩個參數不能在這裏配置,需要在Waterdrop啓動腳本中指定。
  • input可配置任意的input插件及其參數,具體參數隨不同的input插件而變化。input支持包括File, Hdfs, Kafka, S3, Socket等插件。
  • filter可配置任意的filter插件及其參數,具體參數隨不同的filter插件而變化。filter支持包括Date, Json, Split, Sql, Table, Repartition等40+個插件。filter中的多個插件按配置順序形成了數據處理的pipeline, 上一個filter的輸出是下一個filter的輸入。
  • output可配置任意的output插件及其參數,具體參數隨不同的output插件而變化。

filter處理完的數據,會發送給output中配置的每個插件。output支持包括Elasticsearch, File, Hdfs, Jdbc, Kafka, Mysql, S3等插件。

WaterDrop 未來發展路線

Waterdrop 會分爲3條路線,詳細展開:

  • 提供更多Input, Filter, Output插件,提高易用性、可靠性、數據一致性。
  • 支持Apache Flink / Apache Beam,支持Spark以外的分佈式數據計算模型。
  • 支持流式機器學習,能夠通過簡單的Pipeline和配置,完成常用流式機器學習模型的訓練。

 

Waterdrop 項目由Interesting Lab開源。Interesting Lab (https://github.com/InterestingLab), 中文譯名有趣實驗室。成立於2016年,致力於讓大數據變得更簡單有價值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章