2017-11-08 2 views
0

ich einen lokalen flink Cluster leite mitDoes Flink Cache Java-Klassen, wenn sie in Cluster ausgeführt wird (also nicht über eine IDE)

./bin/start_local.sh 

ich flink Job starten, indem

./bin/flink run -p 3 lib/myApp.jar <insert command line args here> 

Diese Arbeiten laufen wie erwartet. Wenn ich jedoch meine JAR-Datei (d. H. lib/myApp.jar) aktualisieren und den Job wie oben beschrieben neu starten sollte, scheint meine neue JAR-Datei nicht wirksam zu sein. In diesem speziellen Fall habe ich die Schemaausgabe von der JAR aktualisiert, indem ich ein Feld umbenannt habe. Die Ausgabe des Jobs enthielt immer noch das alte Feld, wenn der Job mithilfe der aktualisierten JAR neu gestartet wurde.

Gibt es einen Cache, der aktualisiert werden muss? Ist dies der richtige Weg, um eine Anwendung zu aktualisieren? Beachten Sie, dass für die Zwecke hier ist mir Sparpoints für jetzt nicht wichtig.

Danke!

+0

Wenn Sie maven verwenden, haben Sie ein "mvn clean package" probiert? –

+0

Ich benutze Gradle. Und ich habe zuerst sauber gemacht. Funktioniert immer noch nicht. – victtim

Antwort

0

Dies geschieht, weil WebUI immer noch alte JAR-Datei verwendet. Es gibt zwei Methoden, nachdem Sie Ihre JAR-Datei von IDE regenerieren

Option # 1:

Vergewissern Sie sich, wenn u Artefakte erzeugen, die Sie wählen Option für den Wiederaufbau

enter image description here

dann schicken die Datei jar erneut über das Terminal mit dem von Ihnen verwendeten Befehl.

./bin/flink run -p 3 lib/myApp.jar <insert command line args here>

Option # 2: die JAR-Datei web UI

sicherstellen, dass Sie über diese Option in conf.yaml Datei

jobmanager.web.submit.enable: true 

Dann senden Sie Ihre jar verfügbar aktiviert mit einreichen mit der Option in UI

enter image description here

Bitte lassen Sie mich wissen, wenn Sie weitere Probleme haben.

Verwandte Themen