Как исправить ресурс, измененный при проблеме с файловой системой src - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь использовать Hive для MR, выполняющего SQL, и он не работает на полпути с ошибками ниже:

Application application_1570514228864_0001 failed 2 times due to AM Container for appattempt_1570514228864_0001_000002 exited with exitCode: -1000
Failing this attempt.Diagnostics: [2019-10-08 13:57:49.272]Failed to download resource { { s3a://tpcds/tmp/hadoop-yarn/staging/root/.staging/job_1570514228864_0001/libjars, 1570514262820, FILE, null },pending,[(container_1570514228864_0001_02_000001)],1132444167207544,DOWNLOADING} java.io.IOException: Resource s3a://tpcds/tmp/hadoop-yarn/staging/root/.staging/job_1570514228864_0001/libjars changed on src filesystem (expected 1570514262820, was 1570514269265

Ключевое сообщение из журнала ошибок с моей точки зрения: libjars changed on src filesystem (expected 1570514262820, was 1570514269265,В SO есть несколько тем об этой проблеме, но пока нет ответа, например thread1 и thread2 .

Я нашел что-то ценное из apache jira и redhat bugzilla . Я синхронизировал часы по NTP через все связанные узлы. Но та же самая проблема все еще там.

Любой комментарий приветствуется, спасибо.

1 Ответ

0 голосов
/ 16 октября 2019

Я до сих пор не знаю, почему временная метка файла ресурсов несовместима, и нет способа исправить это в конфигурации, 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 источника.

...