복붙노트

[HADOOP] Hadoop을 Java 클래스로 실행하려면 어떻게해야합니까?

HADOOP

Hadoop을 Java 클래스로 실행하려면 어떻게해야합니까?

나는 하둡 (Hadoop) 책을 읽고있다.

나는 예 3-1을 혼동합니다.

Java 소스 파일 인 URLCat.java가 있습니다.  javac를 사용하여 URLCat.class로 컴파일 한 다음 jar를 사용하여 jar 파일로 포장합니다.

이 책은

% hadoop URLCat hdfs://localhost/user/tom/quangle.txt

그것을 실행합니다. 나는 여러가지 방법을 시도했다.

% hadoop jar URLCat.jar .......

그러나 작동하지 않았다. 나는 이런 오류가있어 :

이것에 대한 이유는 무엇이며, 어떻게해야합니까?

해결법

  1. ==============================

    1.명령 구문은 약간 다릅니다.

    명령 구문은 약간 다릅니다.

    hadoop fs -cat hdfs:///user/tom/quangle.txt
    

    당신은 당신의 길에 숨은 집이 있습니까? 매개 변수없이 hadoop을 호출 할 수 있습니까?

  2. ==============================

    2.매우 간단합니다.

    매우 간단합니다.

    [me@myhost ~]$ hadoop jar
    RunJar jarFile [mainClass] args...
    

    그래서, 당신이 원하는 것은 hadoop jar입니다 .Jar.jar your.class.with.Main [모든 args]

  3. ==============================

    3.당연히 고양이를 사용할 수도 있지만 그와 같은 요점은 아닙니다 (즉, 일하기 위해 노력하는 것이 아니라 배우는 것).

    당연히 고양이를 사용할 수도 있지만 그와 같은 요점은 아닙니다 (즉, 일하기 위해 노력하는 것이 아니라 배우는 것).

    책에 따라 HADOOP CLASSPATH 환경 변수를 설정해야합니다. 내 경우에는 책의 빌드 예제를 사용하여 모든 수업을 / media / data / hadef guide / book / build / classes에 있습니다.

    다음은 그 예입니다.

    hduser@MuleBox ~ $ export HADOOP_CLASSPATH=
    hduser@MuleBox ~ $ hadoop URLCat hdfs://localhost/user/hduser/quangle.txt
    Exception in thread "main" java.lang.NoClassDefFoundError: URLCat
    Caused by: java.lang.ClassNotFoundException: URLCat
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    Could not find the main class: URLCat.  Program will exit.
    hduser@MuleBox ~ $ export HADOOP_CLASSPATH=/media/data/hadefguide/book/build/classes
    hduser@MuleBox ~ $ hadoop URLCat hdfs://localhost/user/hduser/quangle.txt
    On the top of the Crumpetty Tree
    The Quangle Wangle sat,
    But his face you could not see,
    On account of his Beaver Hat.
    
  4. ==============================

    4.hadoop URLCat 명령을 작동 시키려면 jar (URLCat.jar)가 클래스 경로에 있어야합니다. 당신은 libo / dir에 그것을 넣을 수 있습니다.

    hadoop URLCat 명령을 작동 시키려면 jar (URLCat.jar)가 클래스 경로에 있어야합니다. 당신은 libo / dir에 그것을 넣을 수 있습니다.

    hadoop jar URLCat.jar를 실행하려면 Main 클래스가 정의 된 jar를 작성해야합니다. 그렇지 않으면 명령 행의 다음 인수가 클래스 이름이라고 생각합니다. 시도해 볼 수있는 것은 hadoop jar입니다. URLCat.jar URLCat hdfs : // ...

  5. ==============================

    5.나는이 사이트와 hadoop 튜토리얼에서 발견 된 도움을 기반으로 이것을했다.

    나는이 사이트와 hadoop 튜토리얼에서 발견 된 도움을 기반으로 이것을했다.

    mkdir urlcat_classes<br>
    javac -classpath /usr/lib/hadoop/hadoop-0.20.2-cdh3u1-core.jar -d     urlcat_classes URLCat.java<br>
    jar -cvf urlcat.jar -C urlcat_classes .<br>
    hadoop jar urlcat.jar no.gnome.URLCat       
    hdfs://localhost/user/claus/sample.txt<br>
    <br>
    no.gnome is from 'package no.gnome;' in URLCat.java.<br><br>
    

    문안 인사 클로스

  6. ==============================

    6.1 단계 : Java 프로그램 컴파일 :

    1 단계 : Java 프로그램 컴파일 :

    2 단계 : jar 파일 만들기 :

    3 단계 : 프로그램 실행 : (hdfs 파일 위치 언급)

  7. ==============================

    7.컴파일 된 .class 파일이있는 디렉토리로 이동하십시오.

    컴파일 된 .class 파일이있는 디렉토리로 이동하십시오.

    hadoop을 실행할 때 패키지 이름을 포함한 전체 클래스 이름 사용 (전체 클래스 이름에 대해 명령 줄에서 Java 프로그램을 실행할 때 "잘못된 이름"NoClassDefFoundError 수신 또는 작업을 실행할 디렉토리 참조) URLCat hdfs : // localhost / user /tom/quangle.txt.

    필자의 경우 URLCat.java는 com.tom.app에 있었으므로 hadoop 명령은 hadoop com.tom.app.URLCat hdfs : //localhost/user/tom/quangle.txt입니다.

  8. ==============================

    8.얼마나 유용한 답이 지금 확실하지 않습니다. 나는 같은 책 (Hadoop의 명확한 가이드)의 예를 실제로 연구하면서 같은 문제에 직면했다. 다음과 같이 예제 프로그램을 실행할 수있었습니다.

    얼마나 유용한 답이 지금 확실하지 않습니다. 나는 같은 책 (Hadoop의 명확한 가이드)의 예를 실제로 연구하면서 같은 문제에 직면했다. 다음과 같이 예제 프로그램을 실행할 수있었습니다.

    희망이 도움이된다.

  9. ==============================

    9.hdfs api를 통해 HDFS에 액세스 할 수 있습니다. 그것을 이해하면 hdfs api를 사용하여 dfs를 실행중인 hadoop 클러스터에 접속하여 그 클러스터에서 데이터를 가져올 수 있습니다.

    hdfs api를 통해 HDFS에 액세스 할 수 있습니다. 그것을 이해하면 hdfs api를 사용하여 dfs를 실행중인 hadoop 클러스터에 접속하여 그 클러스터에서 데이터를 가져올 수 있습니다.

    왜 명령을 다음과 같이 호출해야합니까? hadoop jar URLCat.jar

    왜 단지 java URLCat

    클라이언트가 반드시 hadoop을 설치 한 다음 hadoop 클러스터에 연결해야하는 이유는 무엇입니까?

  10. from https://stackoverflow.com/questions/3606679/how-can-i-run-hadoop-run-with-a-java-class by cc-by-sa and MIT license