簡體   English   中英

轉換Storm-wordCount拓撲以使用Kafka Spout

[英]Convert Storm - wordCount topology to use a Kafka Spout

我是Storm和Kafka的新手,一段時間后,我可以將它們都安裝在本地虛擬機上。 我目前有一個工作的wordCount拓撲,它從dropBox文本文件中提取句子:

public void nextTuple() {


 final String APP_KEY = "XXXX";
final String APP_SECRET = "XXXX";
DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET);
DbxRequestConfig config = new DbxRequestConfig("StormTopology/1.0", Locale.getDefault().toString());
String accessToken = "XXXXXXXX";
DbxClient client = new DbxClient(config, accessToken);
String sentence="";
try {FileOutputStream outputStream = new FileOutputStream("fromSpout.txt"); 
try {
    //client.delete("/*.txt");
   DbxEntry.File downloadedFile = client.getFile("/spout.txt", null,outputStream);

   sentence= readFile("fromSpout.txt");          
   if (sentence==null || sentence == "" || sentence == " " || sentence == "/t") {
           Utils.sleep(1000);
           return;
           }                    
        } 
catch (DbxException ex) {  } 
catch (IOException ex) { }       
        //return 1;
finally {
      outputStream.close();
         }
    }
catch (FileNotFoundException ex){}
catch (IOException ex) {}       


if (sentence.length()<2) {  Utils.sleep(10000);  return; }
try { client.delete("/spout.txt");}
 catch (DbxException ex) {  } 
_collector.emit(new Values(sentence)); 
Utils.sleep(1000);      

現在,我想升級噴嘴以使用來自Kafka的文本,以便提交到拓撲中的下一個螺栓。 我試圖按照git中的許多文章和代碼進行操作,但沒有成功。 例如: 這個kafka壺嘴 有人可以幫忙給我一些指導,以實現新的spout.java文件嗎? 謝謝!

從storm 0.9.2版本開始,有一個外部storm-kafka軟件包可以執行此操作。 實際上,此軟件包是從storm-kafka-0.8-plus貢獻回風暴社區的。 並且有一個測試項目顯示了其用法。

詳細來說,首先將依賴添加到您的Maven(或lein / gradle)中:

groupId: org.apache.storm
artifactId: storm-kafka
version: 0.9.2-incubating

然后創建拓撲和噴口,如下所示:

import storm.kafka

TridentTopology topology = new TridentTopology();
BrokerHosts zk = new ZkHosts("localhost");
TridentKafkaConfig spoutConf = new TridentKafkaConfig(zk, "test-topic");
spoutConf.scheme = new SchemeAsMultiScheme(new StringScheme());
OpaqueTridentKafkaSpout spout = new OpaqueTridentKafkaSpout(spoutConf);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM