如何在Flink程序中打印kafka主题数据?

时间:2018-11-05 11:27:13

标签: java apache-kafka apache-flink

我通过以下说明创建了一个主题:

C:\kafka_2.12-0.10.2.1>.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test < C:\User11\Desktop\Data.csv

然后,我测试了该主题的数据是否正确。之后,我想在Flink程序中打印主题。我的程序是这样:

 try{
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

    Properties properties = new Properties();
    DataStream<String> stream = env
            .addSource(new FlinkKafkaConsumer09<String>("test", new SimpleStringSchema(),properties));

           stream.print();
    env.execute();
    } catch (Exception e) {
        e.printStackTrace();
    }

但是我得到了这个信息(因为信息太长了,我不得不写一些信息):

  

[main]信息org.apache.flink.streaming.api.environment.LocalStreamEnvironment-在本地嵌入式Flink微型集群上运行作业   [main]信息org.apache.flink.runtime.minicluster.MiniCluster-启动Flink微型集群   [main]信息org.apache.flink.runtime.minicluster.MiniCluster-启动度量标准注册表   [main] INFO org.apache.flink.runtime.metrics.MetricRegistryImpl-未配置指标报告器,也不会公开/报告指标。   [main] INFO org.apache.flink.runtime.minicluster.MiniCluster-启动RPC服务   [flink-akka.actor.default-dispatcher-2]信息akka.event.slf4j.Slf4jLogger-Slf4jLogger已启动   [main] INFO org.apache.flink.runtime.minicluster.MiniCluster-启动高可用性服务   [main] INFO org.apache.flink.runtime.blob.BlobServer-创建的BLOB服务器存储目录C:\ Users \ user11 \ AppData \ Local \ Temp \ blobStore-a02ff126-35cc-4c1b-b300-8689d19ff5d2   [main]信息org.apache.flink.runtime.blob.BlobServer-在0.0.0.0:57907启动BLOB服务器-最大并发请求数:50-最大积压:1000

此外,我也看到了此链接,但并没有解决我的问题: How to access/read kafka topic data from flink?

您能告诉我这里是什么问题吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

问题解决了。首先,我使用以下命令完成了Kafka主题:

/home/kafka_2.11-2.0.0/bin/kafka-console-producer.sh --broker-list 10.32.0.2:9092,10.32.0.3:9092,10.32.0.4:9092 --topic flinkTopic < transactions2.csv

然后,使用此代码,我可以打印Kafka主题:

 final StreamExecutionEnvironment env = 
 StreamExecutionEnvironment.getExecutionEnvironment();
 Properties prop = new Properties();
 prop.setProperty("bootstrap.servers", 
 "10.32.0.2:9092,10.32.0.3:9092,10.32.0.4:9092");
 prop.setProperty("group.id", "test");
    FlinkKafkaConsumer<String> myConsumer= new FlinkKafkaConsumer<> 
  ("flinkTopic", new SimpleStringSchema(),prop);
    myConsumer.setStartFromEarliest();
    DataStream<String> stream = env.addSource(myConsumer);
    stream.print();
    env.execute("Flink Streaming Java API Skeleton");

我希望它对其他人有用。