복붙노트

[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. ==============================

    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

  2. from https://stackoverflow.com/questions/43017899/how-to-run-a-class-from-java-jar-file-on-hadoop by cc-by-sa and MIT license