[HADOOP] HDFS FileSystem에서 hadoop jar를 실행하는 방법은 무엇입니까?
HADOOPHDFS FileSystem에서 hadoop jar를 실행하는 방법은 무엇입니까?
나는 항상 다음과 같이 로컬 파일 시스템에서 작업을 실행하고 있습니다.
hadoop jar /home/usr/jar/myjar.jar com.test.TestMain
어떻게 같은 명령을 실행할 수 있지만 myjar.jar은 hdfs에 있습니까?
같은 것
hadoop jar hdfs:///home/usr/jar/myjar.jar com.test.TestMain
그러나 물론 이것은 작동하지 않습니다 ...
해결법
-
==============================
1.jar 파일을 실행하기 위해 Hadoop의 bin / hadoop 스크립트를 보면이 조건을 사용합니다.
jar 파일을 실행하기 위해 Hadoop의 bin / hadoop 스크립트를 보면이 조건을 사용합니다.
elif [ "$COMMAND" = "jar" ] ; then CLASS=org.apache.hadoop.util.RunJar
이것은 RunJar 클래스를 사용하여 jar를 실행한다고 말합니다. RunJar 클래스가 표시되면 지원되는 인수는-
RunJar jarFile [mainClass] args...
여기서 jarFile은 RunJar 클래스 내의 다음 코드를 사용하여 액세스합니다.
int firstArg = 0; String fileName = args[firstArg++]; File file = new File(fileName);
따라서 fileName은 jarFile을 가리 키므로 파일 시스템에 HDFS를 마운트 할 수 없다면 java File 클래스에서 액세스 할 수있게되지 않으면 내보기의 fileName은 위에서 볼 수있는 HDFS 경로가 될 수 없습니다.
-
==============================
2.
hadoop fs -copyToLocal hdfs:///home/usr/jar/myjar.jar /tmp/myjar.jar && hadoop jar /tmp/myjar.jar com.test.TestMain
from https://stackoverflow.com/questions/20333135/how-to-execute-hadoop-jar-from-hdfs-filesystem by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop MapReduce 작업이 시작되었지만 맵 클래스를 찾을 수 없습니까? (0) | 2019.08.12 |
---|---|
[HADOOP] Talend에서 tHiveRow 구성 요소를 사용하여 여러 하이브 쿼리 실행 (0) | 2019.08.12 |
[HADOOP] Apache에서 데이터 프레임을 캐시하는 방법 (0) | 2019.08.12 |
[HADOOP] 행 키가 반전 된 URL 인 경우 HBase REST API (Stargate)를 찾는 방법 (0) | 2019.08.12 |
[HADOOP] META-INF / services에서 항목을 덮어 쓰지 않는 뚱뚱한 항아리를 만드는 방법 (0) | 2019.08.12 |