Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 Kafka streams应用程序不使用消息_Java_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Java Kafka streams应用程序不使用消息

Java Kafka streams应用程序不使用消息,java,apache-kafka,apache-kafka-streams,Java,Apache Kafka,Apache Kafka Streams,我已经编写了一个小型kafka streams应用程序,它对输入流执行字计数 import org.apache.kafka.common.serialization.Serde; import org.apache.kafka.streams.KafkaStreams; import org.apache.kafka.streams.kstream.KStream; import org.apache.kafka.streams.kstream.KStreamBuilder; import o

我已经编写了一个小型kafka streams应用程序,它对输入流执行字计数

import org.apache.kafka.common.serialization.Serde;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.kstream.KStream;
import org.apache.kafka.streams.kstream.KStreamBuilder;
import org.apache.kafka.streams.kstream.KTable;

import java.util.Arrays;
import java.util.Properties;

public class kafkastreams
{
    public static void main(String[] args) {
        Properties props=new Properties();
        props.setProperty(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG,"broker1,broker2");
        props.setProperty(StreamsConfig.APPLICATION_ID_CONFIG,"streams");

        props.setProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"latest");
        props.setProperty(StreamsConfig.KEY_SERDE_CLASS_CONFIG,Serdes.String().getClass().getName());
        props.setProperty(StreamsConfig.VALUE_SERDE_CLASS_CONFIG,Serdes.String().getClass().getName());

        KStreamBuilder builder=new KStreamBuilder();
        KStream<String,String> strings=builder.stream("input_topic");
        KTable<String,Long> wordcounts=
        strings.mapValues(value -> value.toLowerCase())
                .flatMapValues(value -> Arrays.asList(value.split(",")))
                .selectKey((k,v)->v)
                .groupByKey()
                .count("counts");

       wordcounts.to(Serdes.String(),Serdes.Long(),"outputtopic");

       KafkaStreams streams=new KafkaStreams(builder,props);
       streams.start();
    }
}
我已将应用程序打包到一个胖罐子中,并一直尝试将其作为

java -cp /path/to/the/fat/jar java-class-name
提交作业后,我在屏幕上看不到任何响应,除了
选择JAVA工具选项:-Xmx1024m

我尝试使用console producer发送一些测试消息,我在控制台上没有看到响应,也没有任何消息被发送到输出主题,我正在从控制台使用者监视输出主题

如果有人能帮上忙,那就太好了

我在kerberized HDP集群(2.6.3)上,kafka版本是0.10.1


谢谢。

请检查您是否正确提供了引导服务器

props.setProperty(
    StreamsConfig.BOOTSTRAP_SERVERS_CONFIG,
    "broker1,broker2"
); -->default is localhost:9092
确保您的主题名称为
input\u topic
outputtopic


由于您在属性中包含了“最新”的内容,您希望在流媒体is作业启动后收到发送到主题的消息

您的应用程序运行了多长时间?我可能需要更多的时间来输出任何东西,因为有一些内部缓存。您还可以通过将缓存大小设置为零来禁用缓存:Thank@MatthiasJ.Sax。我想说,我已经给了它10多分钟的时间将消息推送到另一个主题。我假设这是一个安全问题,希望您能提供有关在启用Kerberos的集群上运行Kafka流的任何指导。后期评论:如果消息最终到达,并且没有其他错误,那么我认为Kerberos不是问题
props.setProperty(
    StreamsConfig.BOOTSTRAP_SERVERS_CONFIG,
    "broker1,broker2"
); -->default is localhost:9092