Я до сих пор не знаю, почему временная метка файла ресурсов несовместима, и нет способа исправить это в конфигурации, AFAIK.
Однако мне удалось найти обходной путь, чтобы пропуститьвопрос. Позвольте мне резюмировать это здесь для любого, кто может столкнуться с той же самой проблемой.
Проверяя журнал ошибок и просматривая его по Hadoop
исходному коду, мы можем отследить проблему в hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java
.
Просто удалите операторы исключения,
private void verifyAndCopy(Path destination)
throws IOException, YarnException {
final Path sCopy;
try {
sCopy = resource.getResource().toPath();
} catch (URISyntaxException e) {
throw new IOException("Invalid resource", e);
}
FileSystem sourceFs = sCopy.getFileSystem(conf);
FileStatus sStat = sourceFs.getFileStatus(sCopy);
if (sStat.getModificationTime() != resource.getTimestamp()) {
/**
throw new IOException("Resource " + sCopy +
" changed on src filesystem (expected " + resource.getTimestamp() +
", was " + sStat.getModificationTime());
**/
LOG.debug("[Gearon][Info] The timestamp is not consistent among resource files.\n" +
"Stop throwing exception . It doesn't affect other modules. ");
}
if (resource.getVisibility() == LocalResourceVisibility.PUBLIC) {
if (!isPublic(sourceFs, sCopy, sStat, statCache)) {
throw new IOException("Resource " + sCopy +
" is not publicly accessible and as such cannot be part of the" +
" public cache.");
}
}
downloadAndUnpack(sCopy, destination);
}
Сборка hadoop-yarn-project
и копирование 'hadoop-yarn-common-xxxjar to
$ HADOOP_HOME / share / hadoop / yarn`.
Оставьте эту тему здесь и спасибо за любые дальнейшие объяснения о том, как ее исправитьбез изменения hadoop
источника.