4

Cloudera 4のLinux(CentOS)インストールで単純なWordCount.java map-reduceの例をコンパイルしようとしています。hadoopクラスのいずれかを参照するとコンパイラエラーが発生し続けますが、 / usr / lib / hadoopの下にある数百は、コンパイルするためにクラスパスに追加する必要があります。どんな助けでも大歓迎です!私が最も欲しいのは、単語数のJavaファイル(私が見つけたものが何らかの理由で悪い場合に備えて)と、それをコンパイルして実行するための関連するコマンドです。

私はEclipseではなくjavacだけを使用してこれを実行しようとしています。いずれにせよ、私の主な問題は、Cloudera 4インストールのHadoopライブラリが正確に何であるかということです。これは、古典的なWordCountの例をコンパイルするために含める必要があります。基本的に、Java MapReduce APIクラス(Mapper、Reducerなど)をクラスパスに配置する必要があります。

4

4 に答える 4

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
于 2012-08-13T13:15:56.323 に答える
2

Cloudera 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
于 2012-09-03T20:14:05.707 に答える
1

または、環境をエクスポートできます。

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
于 2015-11-05T02:28:25.607 に答える
0

Eclipseを使用している場合は、Hadoopパッケージを追加してください。java2sまたは同様のサイトから入手できます。今まで何をしていたのか、何も知らずにはいられませんでした。

于 2012-08-11T04:05:38.907 に答える