したがって、mapreduceプログラムへの入力としてCity.datとCountry.datの2つのファイルが必要です。
私のメインメソッドでは、次のようにコマンドライン引数を解析します。
Path cityInputPath = new Path(args[0]);
Path countryInputPath = new Path(args[1]);
Path outputPath = new Path(args[2]);
MultipleInputs.addInputPath(job, countryInputPath, TextInputFormat.class, JoinCountryMapper.class);
MultipleInputs.addInputPath(job, cityInputPath, TextInputFormat.class, JoinCityMapper.class);
FileOutputFormat.setOutputPath(job, outputPath);
次のコマンドを使用してプログラムを実行している場合:
hadoop jar capital.jar org.myorg.Capital /user/cloudera/capital/input/City.dat /user/cloudera/capital/input/Country.dat /user/cloudera/capital/output
次のエラーが発生します。
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory /user/cloudera/capital/input/Country.dat already exists
なぜこれを私の出力ディレクトリとして扱うのですか?出力ディレクトリとして別のディレクトリを指定しました。誰かがこれを説明できますか?