Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 阿帕奇风暴三叉戟和卡夫卡喷口集成_Java_Parallel Processing_Apache Kafka_Apache Storm_Trident - Fatal编程技术网

Java 阿帕奇风暴三叉戟和卡夫卡喷口集成

Java 阿帕奇风暴三叉戟和卡夫卡喷口集成,java,parallel-processing,apache-kafka,apache-storm,trident,Java,Parallel Processing,Apache Kafka,Apache Storm,Trident,我无法找到正确集成卡夫卡和Apache Storm Trident的好文档。我试图调查之前在这里发布的相关问题,但没有足够的信息 我想把《三叉戟》和《卡夫卡》联系起来,作为《猫眼三叉戟卡夫卡》。下面是当前正在运行的示例代码 GlobalPartitionInformation globalPartitionInformation = new GlobalPartitionInformation(properties.getProperty("topic", "mytopic")); Broke

我无法找到正确集成卡夫卡和Apache Storm Trident的好文档。我试图调查之前在这里发布的相关问题,但没有足够的信息

我想把《三叉戟》和《卡夫卡》联系起来,作为《猫眼三叉戟卡夫卡》。下面是当前正在运行的示例代码

GlobalPartitionInformation globalPartitionInformation  = new GlobalPartitionInformation(properties.getProperty("topic", "mytopic"));
Broker brokerForPartition0 = new Broker("IP1",9092);
Broker brokerForPartition1 = new Broker("IP2", 9092);
Broker brokerForPartition2 = new Broker("IP3:9092");

globalPartitionInformation.addPartition(0, brokerForPartition0);//mapping from partition 0 to brokerForPartition0
globalPartitionInformation.addPartition(1, brokerForPartition1);//mapping from partition 1 to brokerForPartition1
globalPartitionInformation.addPartition(2, brokerForPartition2);//mapping from partition 2 to brokerForPartition2
StaticHosts staticHosts = new StaticHosts(globalPartitionInformation);
TridentKafkaConfig tridentKafkaConfig = new TridentKafkaConfig(hosts,properties.getProperty("topic", "mytopic"));
tridentKafkaConfig.scheme = new SchemeAsMultiScheme(new StringScheme());
OpaqueTridentKafkaSpout kafkaSpout = new OpaqueTridentKafkaSpout(tridentKafkaConfig);
有了它,我可以为我的拓扑生成流,如下面的代码所示

TridentTopology topology = new TridentTopology();
Stream analyticsStream  = topology.newStream("spout", kafkaSpout).parallelismHint(Integer.valueOf(properties.getProperty("spout","6")))
虽然我已经提供了并行性和分区,但是只有一个Kafka喷口的执行器正在运行,因此我无法很好地扩展它

有谁能指导我更好地集成ApacheStormTrident(2.0.0)和ApacheKafka(1.0),每个集群有3个节点

而且,一旦它读完卡夫卡,我就会不断地得到这些日志

2018-04-09 14:17:34.119 o.a.s.k.KafkaUtils Thread-15-spout-spout-executor[79 79] [INFO] Metrics Tick: Not enough data to calculate spout lag.  2018-04-09 14:17:34.129 o.a.s.k.KafkaUtils Thread-21-spout-spout-executor[88 88] [INFO] Metrics Tick: Not enough data to calculate spout lag.

在Storm UI中,我可以看到上面消息的ACK。有没有忽略公制刻度的建议?

如果您使用的是Storm 2.0.0,我认为您应该切换到Storm kafka客户端三叉戟喷口。storm kafka模块仅用于支持较旧的kafka版本,因为正在删除底层的kafka API(SimpleConsumer)。新模块支持0.10.0.0及以后版本的卡夫卡


您可以在这里找到新喷口的Trident拓扑示例。

如何利用Kafka主题分区提高Apache Storm中的并行性?我可以从UI中看到,$spoutcord spout始终分配了1个执行器(尽管我有5个分区用于卡夫卡主题)?如何提高吞吐量?您真的应该为此发布另一个问题,但我相信设置并行性提示将设置任务(和初始执行者)的数量。e、 g.
tridentTopology.newStream(“喷口”,tridentSpout).parallelismHint(2)