storm 讀取不到對應的kafka資料

2021-09-20 05:33:31 字數 2423 閱讀 7527

坑一:pom檔案主要內容:注意裡面 需要 使用 「exclusion」排除相關的依賴

utf-8

1.71.7

1.1.1

0.9.0.0

org.apache.storm

storm-core

$org.slf4j

log4j-over-slf4j

org.slf4j

slf4j-api

org.apache.storm

storm-kafka

$

org.apache.kafka

kafka_2.11

$org.apache.zookeeper

zookeeper

org.slf4j

slf4j-log4j12

commons-io

commons-io

2.4 org.apache.kafka

kafka-clients

$

坑二: input.getbinarybyfield(「bytes」); 裡面一定要寫成bytes,這是上游kafkaspout 傳遞過來,原始碼中也可以看到。

對應位置如下圖

業務**體現:

public void execute(tuple input) catch (exception e)

}坑三:本地測試是,一直接收不到kafkaspout傳送過來的訊息:

1)問題是已經連線上了kafka,也讀到了對應的分割槽

2)推斷可能是上游的資料傳送不過來—》 可能原因shufflegrouping時 的引數傳遞錯誤。

3)最終發現 原來就是spout_id 獲取錯了

應該將下面**中的

string spout_id = kafkaspout.getclass().get******name()

替換成string spout_id = kafkaspout.class.get******name();

即可。// kafka 使用的zk hosts

brokerhosts hosts = new zkhosts("hadoop000:2181");

// 指定的kafak的乙個根目錄,儲存的是kafkaspout讀取資料的位置資訊(offset)

spoutconfig spoutconfig = new spoutconfig(hosts, topicname, "/" + topicname, uuid.randomuuid().tostring());

spoutconfig.startoffsettime = kafka.api.offsetrequest.latesttime(); // 設定從最近的訊息開始消費

kafkaspout kafkaspout = new kafkaspout(spoutconfig);

string spout_id = kafkaspout.getclass().get******name();

builder.setspout(spout_id, kafkaspout);

string bold_id = logprocessbolt.class.get******name();

builder.setbolt(bold_id, new logprocessbolt()).shufflegrouping(spout_id);

localcluster cluster = new localcluster();

cluster.submittopology("stormtokafkatopology", new config(), builder.createtopology());

坑四: storm重複消費kafak資料:

官網解釋如下:

**中配置為如下即可

spoutconfig spoutconfig = new spoutconfig(hosts, topicname, "/" + topicname, uuid.randomuuid().tostring());

spoutconfig.startoffsettime = kafka.api.offsetrequest.latesttime(); // 設定從最近的訊息開始消費

坑五: storm消費資料,ack,fail這些比配,如果出現問題還可以重試

antd Form表單讀取不到input的值

今天上午突然反饋了乙個問題,表單中的乙個輸入框使用者明明輸入了,但是提交到後台之後是沒有資料的。我在本地測試了一下,發現也是同樣的情況。後來仔細看了一下 原來的input的外面包裹了乙個fragment元素,後來我將fragment元素修改為div或者其他標籤,都是可以正常獲取到這個input的值的...

引用標頭檔案卻找不到相對應的類

問題關鍵出現在標頭檔案中,出現了定義衝突 ifndef mainwindow h define mainwindow h endif mainwindow h每個標頭檔案的開始和結束除會引用如下預處理器變數,而且該變數在程式中是唯一的,主要用來避免多重包含,可是如果你的預處理器變數名重複了 就會發生...

PHP 讀取不到Cookies的可能原因分析

現象 服務端無法讀取到之前寫到客戶端的cookies資訊 php把session的id寫到客戶端的cookies中去,結果每次請求的時候,請求頭並沒有把cookies資訊帶上,分析 可能是因為domain的設定可能有問題,檢視之後cookies的domain資訊,除了有網域名稱之外還有埠的資訊,懷疑...