Sylph一站式流計算平臺
簡介
Sylph 被定位為大數(shù)據(jù)生態(tài)中的一站式流計算平臺,您可以使用它來開發(fā)、管理、監(jiān)控、運維您的流計算.
什么沒看懂? 沒關(guān)系apache-hive您總聽過吧?(如果依然不知道,那么您最先需要看下最基礎(chǔ)的hadoop三件套Hdfs,Yarn,Hive(MapReduce))
hive將您編寫的hive-sql轉(zhuǎn)換成分布式MR批計算Job(默認engine),然后自動在Hadoop-Yarn上執(zhí)行,那么Sylph就是將Stream-Sql轉(zhuǎn)換成分布式(Flink,…)流計算Job,然后同樣自動在Hadoop-Yarn上執(zhí)行,
您可以形象的把它比喻為Stream-Hive
demo
我們來看一個簡單導(dǎo)航demo:
-- 注冊json解析 udf create function get_json_object as 'ideal.sylph.runner.flink.udf.UDFJson'; -- 定義數(shù)據(jù)流接入 create input table topic1( _topic varchar, _key varchar, _message varchar, _partition integer, _offset bigint ) with ( type = 'kafka', kafka_topic = 'TP_A_1,TP_A_2', "auto.offset.reset" = latest, kafka_broker = 'localhost:9092', kafka_group_id = 'streamSql_test1' ); -- 定義數(shù)據(jù)流輸出位置 create output table event_log( key varchar, user_id varchar, event_time bigint ) with ( type = 'hdfs', -- write hdfs hdfs_write_dir = 'hdfs:///tmp/test/data/xx_log', eventTime_field = 'event_time', format = 'parquet' ); -- 描述計算邏輯 insert into event_log select _key,get_json_object(_message, 'user_id') as user_id, cast(get_json_object(_message, 'event_time') as bigint) as event_time from topic1
快速了解
快速兩部了解sylph兩步走:
+ 第一步: 您只需編寫好Stream Sql,然后Sylph會編譯您的sql,將其翻譯成具體的物理計算引擎
+ 第二步: 然后你接下來只需點擊任務(wù)上線,然后sylph就會將這個分布式流計算任務(wù)提交到Hadoop-Yarn上運行。 ok到此,你的大數(shù)據(jù)分布式流計算程序已經(jīng)上線了,接下來您可以直接在sylph的代理頁面查看您的job, 了解下參數(shù)情況等,可以在這里管理和殺死job。
對了如果您的分布式j(luò)ob掛了,那么sylph還會嘗試重新期待并恢復(fù)它。
簡要設(shè)計
下面我將列出一些主要的特性, 這里先簡單看下sylph的設(shè)計:
特性盤點:
-
1, 如上所訴您已經(jīng)出窺了一些sylph一站式方面的特性
-
2, Stream SQL支持
-
3, connector-plugin層提供統(tǒng)一抽象層,隨著時間推移我們會有非常多穩(wěn)定connector供你選擇,如果您選擇自己編碼那么您的代碼邏輯甚至無需做改動,就可以同時支持Flink,Spark等引擎
-
4, Stream SQL支持支持Watermark技術(shù),注:Apache Flink-Table-SQL目前還不支持
-
5, 支持批流維表join(俗稱打?qū)?,注: Apache Flink-Table-SQL目前還不支持
-
6, Stream SQL支持同時支持基于Prscess Time和 Event Time兩種語義進行計算,注:Apache Flink-Table-SQL目前還不支持
寫給未來:
未來我們會添加local模式,on ks8等模式,因為一站式的原因,您甚至無做任何業(yè)務(wù)代碼修改就可以非常容易進行過渡和升級,并且local模式可能會在沒有hadoop的邊緣計算場景中帶來價值.
此致:
最后歡迎您的閱讀!
