Więc muszę dwa pliki jako dane wejściowe do mojego programu mapreduce: City.dat i Country.datHadoop MapReduce plików Multiple Input
Moim głównym sposobem im analizowania argumenty wiersza polecenia tak:
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);
Jeśli mam teraz prowadzę programm za pomocą następującego polecenia:
hadoop jar capital.jar org.myorg.Capital /user/cloudera/capital/input/City.dat /user/cloudera/capital/input/Country.dat /user/cloudera/capital/output
pojawia się następujący błąd:
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory /user/cloudera/capital/input/Country.dat already exists
Dlaczego traktuje to jako mój katalog wyjściowy? Podałem inny katalog jako katalog wyjściowy. Czy ktoś może to wyjaśnić?
Czy możesz zmienić nagłówek pytania, ponieważ dezorientuje on każdego, kto przechodzi przez to pytanie po raz pierwszy. –