2016-03-21 6 views
0

Ich versuche Apache Kafka mit Apache Flink zu verbinden, indem ich einen Kafka Consumer in Scala erstelle. Das ist mein Consumer-Code:Es konnten keine Appender für den Logger gefunden werden (org.apache.kafka.clients.consumer.ConsumerConfig)

val properties = new Properties() 
properties.setProperty("bootstrap.servers", "localhost:9092") 
properties.setProperty("zookeeper.connect", "localhost:2181") 
properties.setProperty("group.id", "test") 

val env = StreamExecutionEnvironment.getExecutionEnvironment 
val stream = env 
      .addSource(new FlinkKafkaConsumer09[String]("test", new SimpleStringSchema(), properties)) 
      .print 
env.enableCheckpointing(5000) 

Als ich dieses Programm ausführen ich einige Warnungen von log4j erhalten und das Programm beendet wird, wird keine Ausgabe angezeigt. Mein Kafka Producer ist betriebsbereit.

log4j:WARN No appenders could be found for logger (org.apache.kafka.clients.consumer.ConsumerConfig). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
+0

Sie führen dies von einer IDE oder einer externen Flink-Installation aus. Haben Sie bei einer externen Installation die Protokolldateien des Job Managers und des Task Managers überprüft? Flink-Stream-Programme drucken in die './Log/* out'-Dateien der Task-Manager. –

+0

@FabianHueske werden keine Protokolldateien erstellt. Ich führe das von Eclipse aus. –

Antwort

3

Ich glaube nicht, dass der log4j WARN der Grund für das Programm Beendigung ist. Diese Probleme treten normalerweise auf, wenn log4j im Klassenpfad nicht verfügbar ist.

Der Grund, warum keine Ausgabe produziert wird, ist, weil der env.execute() Aufruf fehlt, so dass der Job nie gestartet wird.

+0

Arbeitete! Können Sie mir sagen, wie log4j im Klassenpfad hinzugefügt wird? –

+1

Meine Antwort ist tatsächlich ungenau: Das Problem mit log4j ist, dass es höchstwahrscheinlich keine Konfigurationsdatei in Ihrem Klassenpfad gibt. Um das zu beheben, fügen Sie einen Ressourcenordner hinzu und legen Sie eine 'log4j.properties'-Datei darin ab (stellen Sie sicher, dass Ihre IDE den Ordner richtig erkennt und die Datei zum Klassenpfad hinzufügt). Sie können diese Datei als Referenz verwenden: https://github.com/apache/flink/blob/master/flink-streaming-connectors/flink-connector-kafka-0.8/src/test/resources/log4j-test.properties –