日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kite 使用 go_使用Apache Storm和Kite SDK Morphlines的可配置ETL处理

發布時間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kite 使用 go_使用Apache Storm和Kite SDK Morphlines的可配置ETL处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

kite 使用 go

從我擔任軟件工程師的第一天起,我總是聽到很多方面的相同要求:

“ 我們希望所有內容都可配置,我們希望在運行時更改所有內容,我們希望有一個可視化工具來應用所有這些邏輯,以便非開發人員使用和配置我們的應用程序。 ”

我也喜歡這種通用范圍,但是眾所周知,軟件系統的適應性不強,客戶的需求也不穩定。

在過去的幾年中,我們已經使用傳統的框架/技術(JMX,分布式緩存,Spring或JEE等)構建了此類可配置應用程序(并非100%可配置)。

近年來,我們的體系結構中還必須包含一個附加概念,這就是大數據 (或3V或4V或任何更合適的詞)的概念。 這個新概念淘汰了我們熟悉并在舊的3層應用程序中應用的各種解決方案或變通方法。

有趣的是,我很多次都和十年前一樣。 這是軟件開發的規則,它永遠不會結束,因此個人才能和新冒險也永遠不會結束:-)

主要問題仍然是相同的,即如何構建可配置的ETL分布式應用程序

因此,我構建了一個小型的適應性解決方案,該解決方案在許多使用案例中可能會有所幫助。 我在大數據世界中使用了3種常用工具: JavaApache StormKite SDK Morplines 。 Java是主要的編程語言, Apache Storm是分布式流處理引擎,而Kite SDK Morphlines是可配置的ETL引擎。

風箏SDK Morplines

從其描述復制: Morphlines是一個開源框架,可減少構建和更改Hadoop ETL流處理應用程序所需的時間和精力,該應用程序可將數據提取,轉換并加載到Apache Solr,HBase,HDFS,Enterprise Data Warehouse或Analytic Online Dashboards中。 morphline是一個豐富的配置文件,可輕松定義一個轉換鏈,該轉換鏈可使用來自任何類型數據源的任何類型的數據,處理數據并將結果加載到Hadoop組件中。 它用簡單的配置步驟代替了Java編程,并相應地減少了與開發和維護定制ETL項目相關的成本和集成工作。

除了內置命令外 ,您還可以輕松實現自己的命令 ,并在嗎啉配置文件中使用它。

示例Morphline配置讀取一個JSON字符串,解析它,然后只記錄一個特定的JSON元素:

morphlines : [{id : json_terminal_logimportCommands : ["org.kitesdk.**"]commands : [# read the JSON blob{ readJson: {} }# extract JSON objects into head fields{ extractJsonPaths {flatten: truepaths: {name: /nameage: /age}} }# log data{ logInfo {format : "name: {}, record: {}"args : ["@{name}", "@{}"]}}] }]

風暴變身螺栓

為了在Storm中使用Morphlines,我實現了一個自定義MorphlinesBolt 。 該螺栓的主要職責是:

  • 通過配置文件初始化Morphlines處理程序
  • 初始化映射說明:
    a)從元組到Morphline輸入,以及
    b)從Morphline輸出到新的輸出元組
  • 使用已初始化的Morplines上下文處理每個傳入事件
  • 如果Bolt不是Terminal ,則使用提供的Mapper (類型“ b”),使用Morphline執行的輸出發出一個新的Tuple。

簡單的可配置ETL拓撲

為了測試自定義MorphlinesBolt ,我編寫了2個簡單的測試。 在這些測試中,您可以看到MorphlinesBolt是如何初始化的,然后是每次執行的結果。 作為輸入,我使用了一個自定義的Spout(RandomJsonTestSpout),它僅每100毫秒發出一次新的JSON字符串(可配置)。

DummyJsonTerminalLogTopology

一個簡單的拓撲 ,該拓撲通過配置文件和每個傳入的元組的執行Morphline處理程序來配置Morphline上下文。 在此拓撲上, MorphlinesBolt被配置為端子螺栓,這意味著對于每個輸入Tuple不會發出新的Tuple。

public class DummyJsonTerminalLogTopology {public static void main(String[] args) throws Exception {Config config = new Config();RandomJsonTestSpout spout = new RandomJsonTestSpout().withComplexJson(false);String2ByteArrayTupleMapper tuppleMapper = new String2ByteArrayTupleMapper();tuppleMapper.configure(CmnStormCons.TUPLE_FIELD_MSG);MorphlinesBolt morphBolt = new MorphlinesBolt().withTupleMapper(tuppleMapper).withMorphlineId("json_terminal_log").withMorphlineConfFile("target/test-classes/morphline_confs/json_terminal_log.conf");TopologyBuilder builder = new TopologyBuilder();builder.setSpout("WORD_SPOUT", spout, 1);builder.setBolt("MORPH_BOLT", morphBolt, 1).shuffleGrouping("WORD_SPOUT");if (args.length == 0) {LocalCluster cluster = new LocalCluster();cluster.submitTopology("MyDummyJsonTerminalLogTopology", config, builder.createTopology());Thread.sleep(10000);cluster.killTopology("MyDummyJsonTerminalLogTopology");cluster.shutdown();System.exit(0);} else if (args.length == 1) {StormSubmitter.submitTopology(args[0], config, builder.createTopology());} else {System.out.println("Usage: DummyJsonTerminalLogTopology <topology_name>");}} }

DummyJson2StringTopology

一個簡單的拓撲 ,該拓撲通過配置文件和每個傳入的元組的執行Morphline處理程序來配置Morphline上下文。 在此拓撲上, MorphlinesBolt被配置為普通螺栓,這意味著對于每個輸入Tuple,它都會發出一個新的Tuple。

public class DummyJson2StringTopology {public static void main(String[] args) throws Exception {Config config = new Config();RandomJsonTestSpout spout = new RandomJsonTestSpout().withComplexJson(false);String2ByteArrayTupleMapper tuppleMapper = new String2ByteArrayTupleMapper();tuppleMapper.configure(CmnStormCons.TUPLE_FIELD_MSG);MorphlinesBolt morphBolt = new MorphlinesBolt().withTupleMapper(tuppleMapper).withMorphlineId("json2string").withMorphlineConfFile("target/test-classes/morphline_confs/json2string.conf")//.withOutputProcessors(Arrays.asList(resultRecordHandlers));.withOutputFields(CmnStormCons.TUPLE_FIELD_MSG).withRecordMapper(RecordHandlerFactory.genDefaultRecordHandler(String.class, new JsonNode2StringResultMapper()));LoggingBolt printBolt = new LoggingBolt().withFields(CmnStormCons.TUPLE_FIELD_MSG);TopologyBuilder builder = new TopologyBuilder();builder.setSpout("WORD_SPOUT", spout, 1);builder.setBolt("MORPH_BOLT", morphBolt, 1).shuffleGrouping("WORD_SPOUT");builder.setBolt("PRINT_BOLT", printBolt, 1).shuffleGrouping("MORPH_BOLT");if (args.length == 0) {LocalCluster cluster = new LocalCluster();cluster.submitTopology("MyDummyJson2StringTopology", config, builder.createTopology());Thread.sleep(10000);cluster.killTopology("MyDummyJson2StringTopology");cluster.shutdown();System.exit(0);} else if (args.length == 1) {StormSubmitter.submitTopology(args[0], config, builder.createTopology());} else {System.out.println("Usage: DummyJson2StringTopology <topology_name>");}} }

最后的想法

MorphlinesBolt可以用作任何可配置ETL“解決方案”的一部分(作為單處理Bolt,作為終端Bolt,作為復雜管道的一部分,等等)。

我在github中的示例項目集合中,源代碼作為maven模塊( sv-etl-storm-morphlines )提供。

最好的組合是將MorphlinesBolt與Flux一起使用。 這可能會為您提供完全可配置的ETL拓撲!!!
我還沒有添加為選項,以便保持更少的依賴關系(我可能添加了范圍“ test”)。

該模塊不是最終模塊,我將嘗試對其進行改進,因此許多人會在第一個實現中發現各種錯誤。

對于任何其他想法或澄清,請寫評論:)

這是我2016年的第一篇文章! 希望您身體健康,思想和行動更好。 一切事物的首要美德/價值是人類以及對我們所有人賴以生存的環境(社會,地球,動物,植物等)的尊重。 所有其他都是次要優先事項,不應破壞優先事項所隱含的內容。 始終牢記最重要的美德,并在您采取的任何行動或思想中考慮它們。

翻譯自: https://www.javacodegeeks.com/2016/01/configurable-etl-processing-using-apache-storm-kite-sdk-morphlines.html

kite 使用 go

總結

以上是生活随笔為你收集整理的kite 使用 go_使用Apache Storm和Kite SDK Morphlines的可配置ETL处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天干天天色天天 | 欧美日韩视频免费观看 | 欧美日韩一区二区三区四区五区六区 | 在线观看日韩 | 久久久久麻豆v国产精华液好用吗 | 国产日韩精品在线 | 少女情窦初开的第4集在线观看 | 亚洲熟妇中文字幕五十中出 | 中文字幕久久久 | 久久这里只有精品8 | 自拍偷拍色 | 欧美精品成人一区二区三区四区 | 亚洲毛片a| 中文字幕在线视频免费观看 | 久久国产精品电影 | 精品久久人人 | 日韩欧美精品一区 | 一级做a爰片久久毛片潮喷 天天透天天干 | 欧美少妇激情 | 热久久亚洲| 日日摸日日操 | 日韩激情小视频 | 亚洲国产精品系列 | 大尺度在线观看 | 欧美日韩国产成人在线 | 日本爱爱免费视频 | 亚洲综合一区中 | 最新国产露脸在线观看 | 阿v视频免费在线观看 | 一级在线免费视频 | 日本黄色三级 | 欧美一级艳片视频免费观看 | 特级一级片 | 91精品国产91久久久久久 | 中文字幕视频一区二区 | 男生操女生屁股 | 亚洲毛片在线看 | 久久噜噜噜精品国产亚洲综合 | 亚洲永久在线观看 | 日韩在线视频网址 | 亚洲av日韩av在线观看 | 天天拍天天色 | 国产一区二区三区自拍 | 欧美日本中文字幕 | 免费欧美在线 | 日韩成人精品在线观看 | 亚洲伦理在线视频 | 亚洲激情电影在线 | 亚洲图片 自拍偷拍 | 69热在线观看| 狠狠做深爱婷婷久久综合一区 | 毛片a级片 | 一区二区三区 日韩 | 日本乳汁视频 | 午夜在线免费视频 | 六月色丁香| 9999免费视频 | 91成人免费 | 欧美xxx性 | 国产精品久久久久蜜臀 | 久久国产一级片 | 欧美一a一片一级一片 | 亚洲一区免费在线观看 | 亚洲理论电影在线观看 | 熟女国产精品一区二区三 | 成年在线视频 | 免费播放毛片 | 亚洲一区二区三区色 | 黄页网站视频 | 性欧美18—19sex性高清 | xxx老太太| 亚洲嫩草影院 | 欧美一级黄色片在线观看 | 2022国产精品 | 青草伊人久久 | 884aa四虎影成人精品一区 | 久久中文视频 | 国产性猛交xxxⅹ交酡全过程 | 日韩va视频| 日韩一区精品 | 四虎啪啪 | 欧美一性一乱一交一视频 | 亚洲成人91 | 水蜜桃91| 日韩亚洲精品中文字幕 | 天天噜日日噜 | 国产又大又黄的视频 | 一级的大片 | 光棍影院av | 美国黄色一级视频 | 少妇喷潮明星 | 91污片 | 亚洲日本视频在线观看 | 色婷婷av一区二区三区在线观看 | 久久久久www | 麻豆91在线播放 | www.jizzjizz.com| 国产精品一区二区三区四区五区 | avtt久久|