Я пытаюсь запустить задание mapreduce. Я устанавливаю выходной путь как: / local / mypath / mr_reuslt Но получаю:
SEVERE: Mkdirs failed to create: /local/mypath/mr_reuslt/_temporary
Но я уверен, что из своего аккаунта я могу сделать mkdir для hadoop,Если я вручную сделаю hadoop fs -mkdir / local / mypath / mr_reuslt / _tevent, он создаст папки.Нет другого сообщения об исключении, связанного с этим.Я действительно не думаю, что это проблема разрешения.Когда я явно вызываю create file в mk job, он создается.Может ли кто-нибудь дать мне несколько советов о том, что здесь происходит?Извините, я должен упомянуть, что я пытался вызвать работу по сокращению карты из моего Java-кода.Я звоню:
ToolRunner.run(new Validation(), new String[]{...,...,...});
из моего кода Java.Это проблема?Могу я спросить, есть ли какой-нибудь хороший способ, которым мы можем вызвать задание 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-приложение.Спасибо!