1

カスタム jar を作成したいのですが、そのメイン クラスは map reduce ジョブのチェーンであり、最初のジョブの出力が 2 番目の jar の入力となります。

FileOutputFormat.setOutputPath("ここにはどのパスが必要ですか?"); に何を設定しますか?

引数に -outputdir を指定すると、FileAlraedy exists というエラーが発生します。指定しないと、出力がどこに到達するかわかりません。チェーンされた mapreduce ジョブのすべてのジョブからの出力を確認できるようにしたいと考えています。

前もって感謝します。助けてください!

4

2 に答える 2

0

実行しているジョブの前にその出力ディレクトリが存在するため、「FileAlraedy exists」エラーが発生する可能性があります。Hadoop ジョブの出力として指定したディレクトリを必ず削除してください。そうしないと、これらのジョブを実行できません。

于 2013-06-04T19:36:22.077 に答える
0

コードの柔軟性が向上するため、コマンドラインから出力を取得することをお勧めします。変更がパスに関連している場合は、一度だけ jar をコンパイルします。クラスターを起動して jar をコンパイルする場合の EMR の場合

たとえば。

dfs_ip_folder=HDFS_IP_DIR
dfs_op_folder=HDFS_OP_DIR
hadoop jar hadoop-examples-*.jar wordcount ${dfs_ip_folder} ${dfs_op_folder} 

注 : dfs_ip_folder を作成し、その中に入力データを保存する必要があります。dfs_op_folder は、ローカル ファイル システムではなく HDFS 上に自動的に作成されます HDFS op フォルダーにアクセスするには、ローカル ファイル システムにコピーするか、cat を実行します。例えば。

hadoop fs -cat ${dfs_op_folder}/<file_name>
hadoop fs -copyToLocal ${dfs_op_folder} ${your_local_input_dir_path}
于 2013-10-18T17:35:08.343 に答える