storm UI解释
storm UI解釋
@(STORM)[storm]
1、關(guān)于emit與transfer
(轉(zhuǎn)自http://www.reader8.cn/jiaocheng/20120801/2057699.html)storm ui上emit和transferred的區(qū)別
最開始對(duì)storm ui上展示出來的emit和transferred數(shù)量不是很明白, 于是在storm-user上google了一把, 發(fā)現(xiàn)有人也有跟我一樣的困惑, nathan做了詳細(xì)的回答:
emitted欄顯示的數(shù)字表示的是調(diào)用OutputCollector的emit方法的次數(shù).
transferred欄顯示的數(shù)字表示的是實(shí)際tuple發(fā)送到下一個(gè)task的計(jì)數(shù).
如果一個(gè)bolt A使用all group的方式(每一個(gè)bolt都要接收到)向bolt B發(fā)射tuple, 此時(shí)bolt B啟動(dòng)了5個(gè)task, 那么trasferred顯示的數(shù)量將是emitted的5倍.
如果一個(gè)bolt A內(nèi)部執(zhí)行了emit操作, 但是沒有指定tuple的接受者, 那么transferred將為0.
這里還有關(guān)于spout, bolt之間的emitted數(shù)量的關(guān)系討論, 也解釋了我的一些疑惑:
有 的bolt的execture方法中并沒有emit tuple, 但是storm ui中依然有顯示emitted, 主要是因?yàn)樗{(diào)用了ack方法, 而該方法將emit ack tuple到系統(tǒng)默認(rèn)的acker bolt. 因此如果anchor方式emit一個(gè)tuple, emitted一般會(huì)包含向acker bolt發(fā)射tuple的數(shù)量.
另外collector.emit(new Values(xxx))和collector.emit(tuple, new Values(xxx)) 這兩種不同的emit方法也會(huì)影響后面bolt的emitted和transferred, 如果是前者, 則后續(xù)bolt的這兩個(gè)值都是0, 因?yàn)榍耙粋€(gè)emit方法是非安全的, 不再使用acker來進(jìn)行校驗(yàn).
2、Execute letancy
每個(gè)tuple在執(zhí)行execute方法的平均時(shí)長。
3、Process latency
一個(gè)tuple從收到到ack的時(shí)長。
4、Capacity
如果這個(gè)值越接近1,表示一直在調(diào)用execute方法,即并行度不足。
總結(jié)
以上是生活随笔為你收集整理的storm UI解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: trident State应用指南
- 下一篇: sbt基础