在經過了很長時間的這個問題之後,我終於找到了一個答案,在Heron開發者的幫助下(對他們而言)。 答案是遠程調試jvm進程。
甲故障排除部分(參見調試Java拓撲在this page)已經被添加到文檔蒼鷺給出用於遠程調試鷺需要的指令。這很好,但不是我所需要的,因爲它僅用於調試實例(螺栓/噴口......)。但我需要像調度調試核心部件,發射器等
爲了使全遠程調試爲鷺你應該添加第二行到execute.py(可以在這裏找到鷺/工具/ CLI/SRC /蟒蛇)文件:
java_opts = ['-D' + opt for opt in java_defines]
//add this line here
java_opts.append('-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005')
地址:你已經在你的IDE配置的端口。
suspend:y表示掛起執行,直到客戶端(調試器或IDE)連接到服務器(jvm進程)。
您可以在this link中找到在Intellij中設置遠程調試的說明。
重要提示:不要忘記重新編譯源代碼並安裝bin軟件包。 編譯並安裝鷺
bazel build --config=ubuntu heron/...
bazel run --config=ubuntu -- scripts/packages:heron-client-install.sh --user
bazel run --config=ubuntu -- scripts/packages:heron-api-install.sh --user --maven
現在把你的關卡,無論你想從終端提交您的topologiy,然後在IDE中開始調試,它會帶你到檢查點。只要記住要將檢查點添加到執行路徑中,SubmitterMain或SchedulerMain就可以成爲很好的候選者。