Apache storm 暴风雪,有没有办法记录飞行中有多少元组?
作为调优的一部分,我一直在调整Apache storm 暴风雪,有没有办法记录飞行中有多少元组?,apache-storm,Apache Storm,作为调优的一部分,我一直在调整maxpoutpending参数。但是,最好知道拓扑中随时有多少元组,这样我就可以知道这个参数对拓扑的性能有多大的影响 我翻遍了源头,但什么也没找到。这是我可以在Storm UI中找到的值吗?或者我可以在某个地方重写某些内容来记录此值?如果您的喷口中有足够的消息,您可以强制喷口从头开始读取,并查看您可以在10分钟内处理多少元组。(使用基本数学,您可以获得每秒的元组数) 例如,使用卡夫卡喷口,可以执行以下操作: SpoutConfig spoutCon
maxpoutpending
参数。但是,最好知道拓扑中随时有多少元组,这样我就可以知道这个参数对拓扑的性能有多大的影响
我翻遍了源头,但什么也没找到。这是我可以在Storm UI中找到的值吗?或者我可以在某个地方重写某些内容来记录此值?如果您的喷口中有足够的消息,您可以强制喷口从头开始读取,并查看您可以在10分钟内处理多少元组。(使用基本数学,您可以获得每秒的元组数) 例如,使用卡夫卡喷口,可以执行以下操作:
SpoutConfig spoutConfig = new SpoutConfig(
// your spout config
);
spoutConfig.forceFromStart = true; // this is how you tell the spout to read from the oldest kafka offset
KafkaSpout kafkaSpout = new KafkaSpout(spoutConfig);
然后让拓扑运行15分钟,看看拓扑在过去10分钟内处理了多少元组 这取决于“拓扑中有多少元组”的含义
client.getTopologyInfo(“topolgoyName”)
(使用client=NimbusClient.getConfiguredClient(…)
)TopologyInfo
可能仍然有用,但我不确定是否/如何计算您想知道的值您说过您希望了解maxTuplesPending属性的有效性
使用Storm提供的KafkaSpout(我修改了源代码以添加更多日志记录以查看发生了什么),next()方法一直被调用(谢谢,这是一个很好的建议,不过我应该更清楚。我可以测量拓扑的吞吐量,也可以测量maxTuplesPending对吞吐量的影响。但我希望深入了解maxTuplesPending属性的有效性。具体来说,这些更改对随时“飞行中的元组数”。
2015-10-16T12:20:15.162-0500 s.k.PartitionManager [INFO] PM! 6 - ack
2015-10-16T12:20:15.163-0500 s.k.PartitionManager [INFO] PM! 177 - next
2015-10-16T12:20:15.400-0500 s.k.PartitionManager [INFO] PM! 10 - ack
2015-10-16T12:20:15.401-0500 s.k.PartitionManager [INFO] PM! 178 - next
2015-10-16T12:20:15.649-0500 s.k.PartitionManager [INFO] PM! 22 - ack
2015-10-16T12:20:15.649-0500 s.k.PartitionManager [INFO] PM! 180 - next
2015-10-16T12:20:16.511-0500 s.k.PartitionManager [INFO] PM! 27 - ack
2015-10-16T12:20:16.512-0500 s.k.PartitionManager [INFO] PM! 182 - next