Linux Hadoopシェルスクリプトで.classエラーが発生する

Linux Hadoopシェルスクリプトで.classエラーが発生する

hadoopでmap Reduceを実行するためにこのスクリプトを実行しようとしています。ただし、このスクリプトを実行すると、スクリーンショットに添付されたエラーが表示されます。スクリプト:

rm -rf /home/sk/デスクトップ/abc/wordcountc/

rm /home/sk/Desktop/abc/wordcountj.jar

mkdir /home/sk/Desktop/abc/wordcountc/

sudo chmod 777 /home/sk/Desktop/abc/wordcountc

CD /usr/local/Hadoop

dfs.shを起動

Yarn.shを起動

平和の定義

bin/hdfs dfs -rm -r -skipTrash /ユーザー

bin/hdfs dfs -rm -r -skipTrash /opt

bin/hdfs dfs -rm -r -skipTrash /opt2

bin/hdfs dfs -mkdir /ユーザー

bin/hdfs dfs -put '/home/sk/Desktop/input' /user

CD /ホーム/sk/デスクトップ/abc/

javac -classpath /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.0.jar:/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.0 .jar:/usr/local/hadoop/share/hadoop/common/lib/commons-cli-1.2.jar -d /home/sk/Desktop/abc*.java

mv /home/sk/Desktop/abc/*.class /home/sk/Desktop/abc/wordcountc/

CD /ホーム/sk/デスクトップ/abc

jar -cvf wordcountj.jar -C /home/sk/Desktop/abc/wordcountc 。

CD /usr/local/Hadoop

bin/hadoop jar /home/sk/Desktop/abc/wordcountj.jar OutDegree /user/input 出力wc

クラスが生成されないように、私の間違いがどこにあるか教えてください。ここに画像の説明を入力してください。

ベストアンサー1

フラグは引数をディレクトリパスとして使用します-djavac

オラクルは言うこのロゴ情報:

クラスファイルの宛先ディレクトリを設定します。ディレクトリはすでに存在している必要があり、javac作成されません。クラスがパッケージの一部である場合は、パッケージjavac名を反映するサブディレクトリにクラスファイルを配置し、必要に応じてディレクトリを作成します。

ただし、指定したパラメータは/home/sk/Desktop/abc*.javaまったくディレクトリパスのようには見えません。

そんな意味でしたか/home/sk/Desktop/?それともこのロゴが必要ですか-d?これは実行されないかもしれません。これはabc*.javaコンパイルしたいJavaソースファイルです。

またはあなたが欲しい-d /home/sk/Desktop/ /home/sk/Desktop/abc*.java

おすすめ記事