hadoop 1.0.4가 설치되었습니다. [Hadoop 명령 행 매개 변수가 Java 원격 디버거에 전달되지 않았습니다.
ELIF : - "JDWP = 전송 = dt_socket, 서버 = Y = Y, 주소 = 5000을 중단 agentlib"
HADOOP_DEBUG = 나는 다음을 추가하여는/usr/빈/하둡 파일을 수정 한 "$ COMMAND"= "jar"]]; 다음
CLASS = org.apache.hadoop.util.RunJar
HADOOP_OPTS = "$ HADOOP_OPTS $ HADOOP_CLIENT_OPTS"
ELIF [ "$ 명령어"= "항아리 디버그"]; 다음
CLASS = org.apache.hadoop.util.RunJar
HADOOP_OPTS = "$ HADOOP_OPTS $ HADOOP_CLIENT_OPTS $ HADOOP_DEBUG"
COMMAND = "항아리"
내가 실행할 수있는이 방법은 "하둡 jar SomeJar.jar SomeClass "를 정상적으로 실행하거나"hadoop jar-Debug SomeJar.jar SomeClass "를 실행하여 디버그 모드로 실행하십시오. WordCount 예제에서와 같이 명령 줄 인수를 내 클래스에 전달하려는 경우를 제외하고는 작동합니다. 예를 실행하는 경우 :
"하둡 항아리 디버그 WordCount.jar 단어 수 InputDir OutputDir"
메인 클래스의 첫 번째 줄에 중단 점과 문자열 []에 args는 빈 문자열이 분명히 발생하는 (것으로 밝혀 나중에 실패하는 프로그램). 정상 jar 명령을 사용하여 실행하면 정상적으로 작동합니다 (분명히 명령 행 인수는 일반 jar를 사용하여 정상적으로 전달됩니다).
누구나 무슨 일이 일어나고 있는지 알고 계신가요? 나는 심각하게 붙어있다. 미리 감사드립니다. 이 문제가 발생한 미래에 누군가를위한
업데이트 : 실제 클러스터에서 디버그를 실행할 때 명령 줄 매개 변수가 잘 전달됩니다. 그들은 pseudo-distributed 모드에서 실행될 때만 전달됩니다 ... 이상합니다. – JHowIX