[HADOOP] 어떻게 하둡에 자바 jar 파일에서 클래스를 실행?
HADOOP어떻게 하둡에 자바 jar 파일에서 클래스를 실행?
이클립스에서 내 보낸 jar 파일이 (Runnable를 JAR >> 복사 하위 폴더에 라이브러리를 필요).
자바에서는 실행할 수있는 manifest.xml의 주요 클래스를 설정 한 경우 :
java -jar MyTest.jar arguments
당신은 jar 파일의 또 다른 주요 클래스를 실행하거나 manifest.xml에 메인 클래스를 설정하지 않은 경우 실행하려는 경우 :
java -cp MyTest.jar MyOtherMainClass arguments
하둡에서 메인 클래스가 실행할 수있는 manifest.xml에 설정되어있는 경우 :
hadoop jar MyTest.jar arguments
당신은 입력 할 경우 :
hadoop jar MyTest.jar MyOtherMainClass arguments
이 항아리의 원래 메인 클래스의 "인수"배열의 인수 (클래스가 실행하지)로 MyOtherMainClass을 고려할 것입니다.
당신이 jar 파일에 다른 기본 클래스를 실행하려면 이제 경우에 당신은 무엇을 입력 것인가?
나는 비슷한 뭔가를 기대합니다 :
hadoop java -cp MyTest.jar MyOtherMainClass arguments
하지만 그건 제공합니다 :
Error: Could not find or load main class java
주의 사항 : 나는에서 "하둡"을 제거하는 경우 "하둡 자바 -cp MyTest.jar MyOtherMainClass 인수"정상적으로 실행됩니다
해결법
-
==============================
1.문제는 당신이 원하는 클래스를 실행할 수 방지 따라서 jar 파일의 메인 클래스를 설정하도록 강요하고 이클립스에서 온다. 당신이 jar 파일과 실행의 manifest.xml 파일에서 기본 클래스를 제거하기 만하면됩니다 :
문제는 당신이 원하는 클래스를 실행할 수 방지 따라서 jar 파일의 메인 클래스를 설정하도록 강요하고 이클립스에서 온다. 당신이 jar 파일과 실행의 manifest.xml 파일에서 기본 클래스를 제거하기 만하면됩니다 :
hadoop jar MyTest.jar MyOtherMainClass arguments
여기를보세요 : http://www.roman10.net/2012/07/26/specify-the-main-class-in-a-jar-file-for-hadoop/
나는 URL이 삭제 된 경우 동일한 텍스트를 입력 :
jar 파일의 하둡 지원 실행. 내 이전 게시물에 덮여 정상적인 자바 실행에서 실행 jar 파일의 경우, 하나는, 명령 줄에서 기본 클래스를 지정할 수 있습니다 : jar 파일의 메인 클래스 전환 할 수 있습니다.
그러나, 규칙은 하둡 실행 실행 jar 파일에 대한 약간 다릅니다. 기본적으로 다음과 같은 규칙이 (내가 하둡 1.0.3에서 테스트) 개최,
jar 파일은 매니페스트 파일에 지정된 기본 클래스가 포함되어있는 경우 명령이 또 다른 주요 클래스를 지정하는 경우에도, 하둡은 메인 클래스를 취할 것입니다. 이것은 우리가 매니페스트 파일에 덮어 쓰기하는 메인 클래스를 지정할 수 있습니다 일반 자바 실행 다르다. jar 파일이 매니페스트 파일의 메인 클래스를 포함하지 않는 경우, 하둡은 우리가 메인 클래스를 지정할 수 있습니다. 일식에서, 하나의 프로젝트를 같은 실행 가능한 jar 파일을 내보낼 때, 항상 실행 구성에서 기본 클래스를 부탁드립니다.
선택의 주요 클래스는 매니페스트 파일에 넣어 될 것입니다. 아래는 메인 클래스를하여 HelloWorld로 설정되어 내 helloworld를 프로젝트의 META-INF / MANIFEST.MF 파일의 내용이다.
매니페스트-버전 : 1.0 클래스 경로 :. 메인 클래스 : hello.HelloWorld 하나는, 파일 추출기를 사용하여 jar 파일을 찾아 파일 편집기를 사용하여 매니페스트 파일을 열고, 단순히 메인 클래스의 구성을 제거 할 수있는 마지막 줄을 삭제하고 메시지가 표시 될 때 jar 파일의 변경 사항을 저장할 수 있습니다. 이것은 기본 클래스없이 실행 가능한 jar 파일을 생성합니다.
다음 샘플 명령에 도시 한 바와 같이 변형의 JAR 파일은, 사용자가 제공 한 메인 클래스 구성 하둡 사용될 수있다
$ 하둡 항아리 hello.jar의 hello.HelloWorld
from https://stackoverflow.com/questions/43017899/how-to-run-a-class-from-java-jar-file-on-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 잘못된 FS를 받고 : 파일을 하이브 쿼리를 실행하는 동안 (0) | 2019.09.17 |
---|---|
[HADOOP] 어떻게 하둡 가정 환경 변수를 얻으려면? (0) | 2019.09.17 |
[HADOOP] 뒤 명령을 사용하여 HDFS 파일 시스템의 크기 (0) | 2019.09.17 |
[HADOOP] 카운터 감속기 코드에서 작동하지 않습니다 (0) | 2019.09.17 |
[HADOOP] 아파치 돼지 java.lang.OutOfMemoryError와는 : 요청 배열 크기는 VM 제한을 초과 (0) | 2019.09.17 |