[HADOOP] 모 놀리 식 항아리 만드는 법. 파일?
HADOOP모 놀리 식 항아리 만드는 법. 파일?
mahout과 다른 라이브러리를 사용하는 hadoop 작업 jar 파일을 만들어야합니다. 나는 모든 jar 파일을 필요로하지 않고 작업을 수행 할 수 있어야한다. 어떻게 할 수 있습니까?
해결법
-
==============================
1.참조 된 모든 클래스를 빌드 디렉토리에 복사하도록 빌드 파일을 구성하십시오. 예를 들어, 개미 :
참조 된 모든 클래스를 빌드 디렉토리에 복사하도록 빌드 파일을 구성하십시오. 예를 들어, 개미 :
<path id="classpathunjar"> <fileset dir="${lib.dir}" includes="*.jar" excludes="sqljdbc4.jar"/> </path> <target name="compile" depends="clean"> ... <unjar dest="${build.dir}"> <path refid="classpathunjar" /> </unjar> ... </target>
그러나 이것을하지 않고 관리 할 수 있다면 더 좋습니다. hadoop 클러스터에서 mapreduce 작업을 실행하는 경우 libjars 기능을 사용하여 모든 노드에 jar를로드하십시오.
-
==============================
2.Hadoop에는 jars-in-jar를 읽을 수있는 기능이 있습니다. Ant 스크립트를 수정하여 lib라는 폴더에 모든 종속성 jar를 포함시키고이 lib 폴더를 출력 Jar에 추가하십시오. jar 빌드 시간이 줄어들어 더 큰 jar 수가 많으면 더 나은 선택이 될 수 있습니다.
Hadoop에는 jars-in-jar를 읽을 수있는 기능이 있습니다. Ant 스크립트를 수정하여 lib라는 폴더에 모든 종속성 jar를 포함시키고이 lib 폴더를 출력 Jar에 추가하십시오. jar 빌드 시간이 줄어들어 더 큰 jar 수가 많으면 더 나은 선택이 될 수 있습니다.
hadoop과 함께 써드 파티 라이브러리를 사용할 때 가질 수있는 여러 가지 옵션에 대한이 기사를 참조하십시오.
-
==============================
3.Jar는 단지 Zip 컨테이너 일뿐입니다.
Jar는 단지 Zip 컨테이너 일뿐입니다.
필요한 클래스를 사용하여 Jar 파일을 수동으로 압축을 풀고 수정하거나 Maven 빌드 시스템의 jar-with-dependencies 설명자를 사용할 수 있습니다.
-
==============================
4.일반적으로 JAR 파일에는 특정 위치에 있어야하는 자원이 있으므로 충돌 할 수도 있지만 필요한 두 가지 자원으로 인해 조합이 방해받을 수 있습니다 (Think META-INF / MANIFEST.MF).
일반적으로 JAR 파일에는 특정 위치에 있어야하는 자원이 있으므로 충돌 할 수도 있지만 필요한 두 가지 자원으로 인해 조합이 방해받을 수 있습니다 (Think META-INF / MANIFEST.MF).
그러나 많은 경우에 매우 쉽습니다. 기본적으로 추가 할 JAR 파일 (zip 파일 형식)의 압축을 풀고 클래스와 무언가를 기존 JAR 파일에 "추가"합니다.
실행 가능한 JAR 파일을 만드는 경우 시작하는 MANIFEST.MF에 ClassPath 항목을 추가하고 추가 된 ClassPath 항목과 호환되는 디렉토리 구조에 두 개의 JAR 파일을 모두 제공하는 것이 더 좋습니다.
-
==============================
5.추가 jar는 lib / 서브 디렉토리 (예, jar 파일 내의 jar) 아래에 놓아야합니다. 나는 다른 곳에서 찾은 다음 메이븐 어셈블리를 사용한다.
추가 jar는 lib / 서브 디렉토리 (예, jar 파일 내의 jar) 아래에 놓아야합니다. 나는 다른 곳에서 찾은 다음 메이븐 어셈블리를 사용한다.
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>job</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <unpack>false</unpack> <scope>runtime</scope> <outputDirectory>lib</outputDirectory> <excludes> <exclude>org.apache.hadoop:hadoop-core</exclude> <exclude>${artifact.groupId}:${artifact.artifactId}</exclude> </excludes> </dependencySet> <dependencySet> <unpack>false</unpack> <scope>system</scope> <outputDirectory>lib</outputDirectory> <excludes> <exclude>${artifact.groupId}:${artifact.artifactId}</exclude> </excludes> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${basedir}/target/classes</directory> <outputDirectory>/</outputDirectory> <excludes> <exclude>*.jar</exclude> </excludes> </fileSet> </fileSets> </assembly>
from https://stackoverflow.com/questions/9829477/how-to-make-a-monolithic-jar-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Rhadoop - rmr을 사용한 단어 수 (0) | 2019.06.27 |
---|---|
[HADOOP] Getting Cascading.tap.hadoop.io.MultiInputSplit 클래스가 계단식 프레임 워크를 사용하여 hadoop 프로그램을 실행하는 동안 예외를 찾을 수 없습니다. (0) | 2019.06.27 |
[HADOOP] 하이브를 asp.net 프로젝트에 연결하는 방법 (0) | 2019.06.27 |
[HADOOP] 셔플 링 단계는 실제로 무엇을합니까? (0) | 2019.06.26 |
[HADOOP] HDFS에서 모든 스파크 집행자의 로컬 작업 디렉토리로 파일 복사 (구성) (0) | 2019.06.26 |