How to fix resource changed on src filesystem issue

前端 未结 1 818
遥遥无期
遥遥无期 2021-01-15 13:31

I\'m trying to use Hive on MR executing SQL and it fails half way with errors below:

Application application_1570514228864_0001 f         


        
相关标签:
1条回答
  • 2021-01-15 14:34

    I still didn't know why the timestamp of resource file is inconsistent and there isn't a way to fix it in configuration way, AFAIK.

    However, I managed to find a workaround to skip the issue. Let me summarize it here for anyone who might run into same issue.

    By checking error log and search it at Hadoop source code, we can trace the issue at hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/FSDownload.java.

    Just remove the exception throwing statements,

      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);
      }
    

    Build hadoop-yarn-project and copy 'hadoop-yarn-common-x.x.x.jarto$HADOOP_HOME/share/hadoop/yarn`.

    Leave this thread here and thanks for any further explanation about how to fix it without changing hadoop source.

    0 讨论(0)
提交回复
热议问题