2017-04-09 6 views
0

저는 MR (Spark 기반 Java의 경우) MR 작업을 YARN 클러스터에 제출하는 올바른 방법은 무엇인지 이해하려고합니다. 작업이 외부 항아리에 종속되어있는 YARN 클러스터에 작업을 제출하는 올바른 방법은 무엇입니까?

상황 아래 고려 : 클라이언트 컴퓨터가 코드를 코드 (MR 또는 스파크) 작업을 개발하고, 말을 사용

하는 것은 제 3 자 항아리의 사용합니다. 이제 개발자가 YARN 클러스터에 작업을 제출해야하는 경우 클래스를 찾을 수없는 런타임 예외가 없도록 작업을 클러스터에 제출하는 올바른 방법은 무엇입니까? 작업이 jar 파일로 제출되므로 개발자가 어떻게 제 3 자 항아리를 "넣을"수 있습니까?

나는 이것을 이해하는데 어려움을 겪고있다.

답변

2

Gradle 또는 Maven을 사용하여 컴파일 된 코드뿐만 아니라 모든 전이 의존성을 포함하는 "fat jar"를 간단히 빌드해야합니다.

Maven Assembly Plugin 또는 Shadow Plugin과 같은 Gradle 플러그인을 사용할 수 있습니다.

출력은 spark-submit에 입력해야합니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 "uber jar"라고 불리는 것입니까? 항아리 안에 항아리가 들어있을 수 있습니까? 그것은 "의존성"클래스 또는 항아리를 패키지합니까? – CuriousMind

+1

예, 우버 항아리는 뚱뚱한 병을 말하는 멋진 용어입니다. –

+1

예, "uber jar"는 "팻 항아리"의 또 다른 용어입니다. 그리고 정말로, 당신이 정말로하고 싶지 않은 지저분한 커스텀'ClassLoader' 코드를 작성하고 싶지 않다면, 모든 것이 폭발 할 필요가 있습니다. – Vidya