2012-08-11 4 views
4

Cloudera 4의 linux (CentOS) 설치에서 단순한 WordCount.java map-reduce 예제를 컴파일하려고합니다. hadoop 클래스를 참조 할 때 컴파일러 오류가 계속 발생하지만 어느 것이 있는지 알 수 없습니다/usr/lib/hadoop 아래에있는 수백 개의 jar 파일을 컴파일하려면 클래스 경로에 추가해야합니다. 어떤 도움이라도 대단히 감사하겠습니다! 내가 가장 좋아하는 것은 단어 수를위한 자바 파일이다. (어떤 경우에는 내가 발견 한 것이 웬일인지 나쁘다.) 관련된 명령과 함께 컴파일하고 실행한다.Cloudera 4에서 WordCount.java를 컴파일하려면 어떻게해야합니까?

Eclipse 대신 javac를 사용하여이 작업을 수행하려고합니다. 저의 주요한 문제점 중 하나는 고전적인 WordCount 예제를 컴파일하기 위해 포함시켜야 할 Cloudera 4 설치의 Hadoop 라이브러리가 정확히 무엇인지입니다. 기본적으로 Java MapReduce API 클래스 (Mapper, Reducer 등)를 클래스 경로에 넣어야합니다.

답변

5

내 hadoop 클래스를 작성하는 스크립트가 있습니다. 시도 :

#!/bin/bash 

program=`echo $1 | awk -F "." '{print $1}'` 

if [ ! -d "${program}_classes" ] 
    then mkdir ${program}_classes/; 
fi 

javac -classpath /usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar:/usr/lib/hadoop/client/h\ 
adoop-mapreduce-client-core-2.0.0-cdh4.0.1.jar -d ${program}_classes/ $1 

jar -cvf ${program}.jar -C ${program}_classes/ .; 

당신은 아마 실종 된 키 항아리 :

/usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.1.jar 

/usr/lib/hadoop/client/hadoop-mapreduce-client-core-2.0.0-cdh4.0.1.jar 
0

Eclipse를 사용하는 경우 Hadoop 패키지를 추가하십시오. java2s 또는 유사한 사이트에서 가져올 수 있습니다. 네가 지금까지 한 일에 대해 아무 것도 모른다고 말할 수 없었다.

2

그런 다음 클라우 데라 CDH4 가상 머신을 실행하고 다음 실행을하셔야합니다 경우 :

javac -classpath /usr/lib/hadoop/hadoop-common-2.0.0-cdh4.0.0.jar:/usr/lib/hadoop/client/hadoop-mapreduce-client-core-2.0.0-cdh4.0.0.jar -d wordcount_classes WordCount.java 
1

O R 당신은 환경 내보낼 수 있습니다

export JAVA_HOME=/usr/java/default 

export PATH=${JAVA_HOME}/bin:${PATH} 

export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar 

를하고 아래의 명령을 사용

$ bin/hadoop com.sun.tools.javac.Main WordCount.java 

$ jar cf wc.jar WordCount*.class 
관련 문제