2016-04-06 12 views
0

Ich versuche Kafka in Eclipse einzurichten. Ich folgte der Dokumentation und installierte die benötigten Plugins und importierte die Projekte. Ich versuche, die Umgebung so einzustellen, dass ich den Kafka-Server von Eclipse aus starten und Zeile für Zeile debuggen kann. Mein Endziel ist es, zu Kafka beizutragen. Um die Code-Architektur zu verstehen, muss ich in der Lage sein, den Code Zeile für Zeile zu debuggen und zu sehen, was im Hintergrund passiert. Ich habe versucht, das Startskript von kafka zu lesen, das einige Parameter setzt, um die jeweilige Klasse tatsächlich aufzurufen. zum Beispiel in kafka-server-start.sh setzt (es setzt mehr Parameter als ich erwähnt)Wie man Kafka-Quellcode zum Debuggen in IDE einrichtet

KAFKA_HEAP_OPTS = some value KAFKA_LOG4J_OPTS = some value EXTRA_ARGS="-name kafkaServer -loggc"

nach, dass es

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "[email protected]" 

Nun ruft ich in diesem Skript ging Es gibt For-Schleifen, die dem Klassenpfad einige Werte hinzufügen, z. B. (es gibt mehr als einen für die Schleife)

Am Ende, wie es tatsächlich ist, den kafka Server startet

# Launch mode 
if [ "x$DAEMON_MODE" = "xtrue" ]; then 
    nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "[email protected]" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null & 
else 
    exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "[email protected]" 
fi 

nicht sicher, wie dies alles zu sagen, wenn es zu verdunkeln läuft. Lassen Sie mich wissen, ob ich die ganze Skriptdatei hier einfügen soll. Selbst wenn ich eine Idee habe, wie ich das machen kann, kann ich es versuchen. Ich denke, ich kann diese Argumente im Argumente-Fenster übergeben, und es gibt auch eine Klassenpfad-Registerkarte in den Debug-Konfigurationen, aber sollte ich alle Pfade aus den Skripten in diesem Fenster hinzufügen?

Antwort

1

einfach Übergeben Sie die Datei server.properties in den Argumenten. Sie können dies aus dem Konfigurationsfenster ausführen und auf "Anwenden" und "Ausführen/Debug" klicken. Das sollte dich in Gang bringen. Sie müssen nicht alle Parameter durchlaufen und sie weitergeben. Wenn Sie diese Parameter übergeben möchten, müssen Sie die Parameter wie Mathhias erklärt bekommen. Aber diese Parameter sind nicht notwendig, um kafka auszuführen.

Aber einfache Lösung ist, klicken Sie mit der rechten Maustaste auf die Hauptklasse von dem Projekt, das Sie ausführen möchten. Zum Beispiel, wenn ich will kafka Server laufen zu lassen ich in Kern Projekt im kafka Hauptprojekt

kafka-> core -> src.main.scala.kafka - > kafka.scala 

Rechtsklick auf diesen wählen Debug Wie dann auf Debug-Konfigurationen gehen: in diesem Fenster übergeben Sie den Pfad des Servers. Eigenschaftendatei und klicken Sie auf Anwenden. Sie können die Datei server.properties im tar finden, in dem Sie das Startskript gefunden haben.

+0

Durch die Übergabe der Datei server.properties wird kafka von der IDE ausgeführt. Danke für die Vereinfachung. –

0

Zuerst ändern Sie die Kafka-Skript echo der eigentliche Befehl:

echo $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "[email protected]" 

Danach müssen Sie die Lauf Konfiguration in Eclipse bearbeiten:

  • Der Stoff aus $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS und in Feld geht JVM Argumente (im Panel "Argumente").
  • Die CLASSPATH wird über Panel „Classpath“ konfiguriert
  • [email protected] sollte die tatsächliche Klasse enthalten main enthält, die aufgerufen wird (und vielleicht Programm Argumente, die Sie im Panel „Argumente“ einstellen)
Verwandte Themen