我有3台机器运行storm supervisors(v0.9.4,每台运行4个worker),3台机器运行kafka代理(单个主题,分区=6,复制=2),2台机器运行elasticsearch。每台机器都是4gb双核、3.00ghz的机器;全部连接到1gbps局域网。
我使用控制台生成器将包含200万个事件(约250mb)的apache访问日志文件提供给kafka代理。加载到Kafka大约需要20秒。
与此同时,我的三叉戟拓扑正在运行,当所有的200万个事件被编入elasticsearch时,大约需要7分钟。拓扑结构由一个trident函数(extractdata)组成,该函数使用正则表达式提取字段并构造json。
问题:(我不相信这个集群目前需要7分钟的时间来索引。大约是每秒5公里。)
为什么喷口延迟比其他喷口延迟高(参见下图)(我用的是猫眼石(kafkaspout)
如果我在16gb ram和8核机器上运行它,会有显著的区别吗?每秒会接近10万个事件吗?
根据我目前的结果,对于任何给定的集群大小和硬件规格(可能是线性关系),是否可以近似计算吞吐量?
以下是我获得的一些配置/统计数据。
topology.workers: 12
topology.debug: false
topology.max.spout.pending: 1
topology.message.timeout.secs: 60
topology.trident.batch.emit.interval.millis: 500
暂无答案!
目前还没有任何答案,快来回答吧!