Я пытаюсь запустить MapReduce job.I установить выходной путь как:/местные/mypath/mr_reuslt Но получить:О Hadoop mrjob не MKDIR
SEVERE: Mkdirs failed to create: /local/mypath/mr_reuslt/_temporary
Но я уверен, что с моего счета я могу сделать mkdir до hadoop. Если я вручную делаю hadoop fs -mkdir/local/mypath/mr_reuslt/_temporary, он создает папки. Других сообщений об исключениях, связанных с ним, нет. Я действительно не думаю, что это проблема разрешения. Когда я явно вызываю файл create в задаче mk, он создается. Может ли кто-нибудь, пожалуйста, дать мне некоторое представление о том, что здесь происходит? Извините, я должен упомянуть, что я пытался вызвать работу по сокращению карты из своего java-кода. я называю:
ToolRunner.run(new Validation(), new String[]{...,...,...});
из моего кода Java. Это проблема? Могу ли я спросить, есть ли какой-либо хороший способ, которым мы можем invokde mapreduce работать с нормальным кодом Java?
Вот мой тестовый код:
for(final ExecJob e: jobSet){
Thread t = new Thread(new Runnable(){
@Override
public void run() {
String inputPath = pathsForValidation.get(e);
String outputPath = inputPath+validationExten;
logger.log(LogLevel.INFO,"Should validate data in "+inputPath+", validation result in "+outputPath);
try {
ToolRunner.run(new Validation(), new String[]{TransferToHadoopUtilities.hdfsPath,inputPath,outputPath});
} catch (Exception e1) {
logger.log(LogLevel.ERROR,"Thread encountered exception:");
TransferToHadoopUtilities.logger.log(e1);
}finally{
Thread.currentThread().interrupt();
}
}
});
t.start();
}
Я просто запустить этот код в моей Java программы. Не делать hadoop jar ...
Но начинайте как приложение Java. Спасибо!
какой пользователь + группа hasop работает под? –
Я не в группе adm, но у меня очень высокое разрешение на мою учетную запись, чтобы сделать любой каталог или удалить any.Thank you :) –
У вас могут быть достаточные разрешения, но пользователь, который работает Hadoop, может не –