Sylph一站式流計(jì)算平臺(tái)
簡(jiǎn)介
Sylph 被定位為大數(shù)據(jù)生態(tài)中的一站式流計(jì)算平臺(tái),您可以使用它來(lái)開(kāi)發(fā)、管理、監(jiān)控、運(yùn)維您的流計(jì)算.
什么沒(méi)看懂? 沒(méi)關(guān)系apache-hive您總聽(tīng)過(guò)吧?(如果依然不知道,那么您最先需要看下最基礎(chǔ)的hadoop三件套Hdfs,Yarn,Hive(MapReduce))
hive將您編寫(xiě)的hive-sql轉(zhuǎn)換成分布式MR批計(jì)算Job(默認(rèn)engine),然后自動(dòng)在Hadoop-Yarn上執(zhí)行,那么Sylph就是將Stream-Sql轉(zhuǎn)換成分布式(Flink,…)流計(jì)算Job,然后同樣自動(dòng)在Hadoop-Yarn上執(zhí)行,
您可以形象的把它比喻為Stream-Hive
demo
我們來(lái)看一個(gè)簡(jiǎn)單導(dǎo)航demo:
-- 注冊(cè)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' ); -- 描述計(jì)算邏輯 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兩步走:
+ 第一步: 您只需編寫(xiě)好Stream Sql,然后Sylph會(huì)編譯您的sql,將其翻譯成具體的物理計(jì)算引擎
+ 第二步: 然后你接下來(lái)只需點(diǎn)擊任務(wù)上線,然后sylph就會(huì)將這個(gè)分布式流計(jì)算任務(wù)提交到Hadoop-Yarn上運(yùn)行。 ok到此,你的大數(shù)據(jù)分布式流計(jì)算程序已經(jīng)上線了,接下來(lái)您可以直接在sylph的代理頁(yè)面查看您的job, 了解下參數(shù)情況等,可以在這里管理和殺死job。
對(duì)了如果您的分布式j(luò)ob掛了,那么sylph還會(huì)嘗試重新期待并恢復(fù)它。
簡(jiǎn)要設(shè)計(jì)
下面我將列出一些主要的特性, 這里先簡(jiǎn)單看下sylph的設(shè)計(jì):
特性盤(pán)點(diǎn):
-
1, 如上所訴您已經(jīng)出窺了一些sylph一站式方面的特性
-
2, Stream SQL支持
-
3, connector-plugin層提供統(tǒng)一抽象層,隨著時(shí)間推移我們會(huì)有非常多穩(wěn)定connector供你選擇,如果您選擇自己編碼那么您的代碼邏輯甚至無(wú)需做改動(dòng),就可以同時(shí)支持Flink,Spark等引擎
-
4, Stream SQL支持支持Watermark技術(shù),注:Apache Flink-Table-SQL目前還不支持
-
5, 支持批流維表join(俗稱打?qū)?,注: Apache Flink-Table-SQL目前還不支持
-
6, Stream SQL支持同時(shí)支持基于Prscess Time和 Event Time兩種語(yǔ)義進(jìn)行計(jì)算,注:Apache Flink-Table-SQL目前還不支持
寫(xiě)給未來(lái):
未來(lái)我們會(huì)添加local模式,on ks8等模式,因?yàn)橐徽臼降脑?您甚至無(wú)做任何業(yè)務(wù)代碼修改就可以非常容易進(jìn)行過(guò)渡和升級(jí),并且local模式可能會(huì)在沒(méi)有hadoop的邊緣計(jì)算場(chǎng)景中帶來(lái)價(jià)值.
此致:
最后歡迎您的閱讀!
