본문 바로가기

업무 채널

hadoop (하둡) 이클립스에서 생성한 jar 파일 실행하기

이클립스로 (maven) 생성한 jar 파일을 hadoop 으로 실행해보자

hadoop 설치 및 프로젝트 jar 생성은 이전 포스팅을 참고하시길

 

Hadoop(하둡) 설치 및 시작 따라하기

메이븐 (maven) 설치 및 이클립스 연동하기 쉬운설명

Hadoop (하둡) wordcount 예제 소스

 

 

그럼 바로 시작 고고~

 

 

 jar파일 실행 준비

 

 

 

 

'ExWordCount.jar' 파일을 하둡으로 실행해 보도록 하겠다.

먼저 실행을 위한 준비작업을 해야한다.

 

알FTP 를 이용하여(등 다른방법 알아서^^;) ExWordCount.jar 파일을 하둡이 설치된 리눅스 단으로 복사한다.

이동 방법은 굳이 설명하지 않겠다.

 

필요하신분은 받으시라고 올려둔다.

직접 만들어서 실행해 보는데 의미가 있긴하지만..

ExWordCount.jar

패키지명 : kr.bigmark.wordcount

프로젝트명 : WordCount

 

 

 

PuTTY 를 이용하여 하둡폴더가 설치된 곳으로 이동하여 ExWordCount.jar 파일이 잘있는지 확인한다.(안녕?)

위 그림에 'ExWordCount.jar 파일이 직접 생성한 jar 파일이다.

 

ExWordCount 를 실행하기 전에

wordcount 에 필요한 파일들을 먼저 만들어 보겠다.

 

# vi test01

test hadoop hadoop mywork goodjob

# vi test02

hadoop easy hadoop puhaha test 

 

이렇게 두개의 파일을 만들고

input 폴더를 생성하여 안에 test01, test02 를 넣어준다.

 

# mkdir input/

# mv test01 input/

# mv test02 input/

 

 

# ls input/

입력하여 'input' 폴더안에 test01, test02 파일이 정상적으로 들어있는지 확인하자

 

 

 

 

 

 

 jar 파일 실행 및 결과확인 

 

 

준비가 모두 완료되었으면 실행을 해보자

 

# hadoop jar ExWordCount.jar kr.bigmark.wordcount.WordCount input/ output/ 

 

(hadoop jar jar파일명 패키지명.프로젝트명 입력폴더 출력폴더) 순으로 입력한다.

 

 

실행이 완료되면 출력폴더인 'output' 폴더에 _SUCCESS, part-00000 파일이 생성되어 있을 것이다.

그럼 결과를 확인해보자.

 

# cat output/* 

 

 

 

결과를 보면 input 폴더에 있는 파일들의 wordcount (단어갯수) 를 파악하여 출력하는 것을 확인할 수 있다.

 

 

하이브에 대해 궁금하다면 다음 포스팅 참고하세요~

Hive (하이브) 설치 및 환경구축하기

이클립스에서 (java) hive thrift 연동하여 실행하기

Hive 사용법 및 쿼리 샘플코드

  • cbmath 2013.03.19 17:08

    안녕하세요 님 블로그보고 열심히 공부중입니다.


    # hadoop jar ExWordCount.jar kr.bigmark.wordcount.WordCount input/ output/ 이거 입력하기 전과정 까지는 너무나 잘됩니다. 근데 이걸 입력하면




    13/03/19 17:07:55 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
    13/03/19 17:07:55 INFO util.NativeCodeLoader: Loaded the native-hadoop library
    13/03/19 17:07:55 WARN snappy.LoadSnappy: Snappy native library not loaded
    13/03/19 17:07:55 INFO mapred.JobClient: Cleaning up the staging area hdfs://localhost:9000/tmp/hadoop-root/mapred/staging/root/.staging/job_201303191506_0007
    13/03/19 17:07:55 ERROR security.UserGroupInformation: PriviledgedActionException as:root cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/root/input
    Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/root/input
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:197)
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:208)
    at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:989)
    at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:981)
    at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:897)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:824)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1261)
    at kr.bigmark.wordcount.WordCount.main(WordCount.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)


    이렇게 나오긴하는데 output 폴더가 절대로 안 만들어지네요 ㅠㅠ

    답변좀 부탁드리겠습니다 감사합니다 !!

    • Favicon of https://bigmark.tistory.com BlogIcon bigmark 2013.03.20 09:57 신고

      글쎄요. 처음보는 에러네요^^; input path가 존재하지 않는다고 나오는 걸 보니 jar 실행시 정확한 경로를 입력하신 건지 확인해 보시는게 좋을 것 같습니다.

  • Favicon of http://bgg.tomsoutletshoesx.com BlogIcon toms on sale 2013.04.27 22:50

    미안 미안 내가슴아 조금 아플꺼야잠시뿐일꺼야 조금 울고나면 괜찮을꺼야

  • Favicon of http://asi.clshoessaleuks.com/ BlogIcon louboutin shoes 2013.05.03 01:21

    창의성 요소중 인성의 중요성을 나타내는 속담 분석