오랜 시간 동안이 문제로 고생하고 나면, 마침내 헤론 개발자의 도움을 받아 답변을 찾았습니다. 대답은 원격 디버깅 jvm 프로세스입니다.
문제 해결 섹션 원격 디버깅 헤론에 필요한 지침을 제공 헤론 문서에 추가되었습니다 (디버깅 자바 토폴로지 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 프로세스).
Intellij에서 원격 디버깅을 설정하는 방법은 this link입니다.
중요 사항 : 원본 및 설치 패키지를 다시 컴파일하는 것을 잊지 마십시오. 컴파일하고 당신이 원하는 어디든지 당신의 체크 포인트를 배치하고 터미널에서 topologiy를 제출 한 후 IDE에서 디버깅을 시작하고 검문소로 이동합니다 이제 헤론
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
를 설치합니다. 실행 경로에 체크 포인트를 추가하는 것을 잊지 마십시오. SubmitterMain 또는 SchedulerMain은 좋은 후보가 될 수 있습니다.