code: public void executorRemoved(String executorId, String appId) {
      logger.info("Clean up non-shuffle files associated with the finished executor {}", executorId);
      AppExecId fullId = new AppExecId(appId, executorId);
      final ExecutorShuffleInfo executor = executors.get(fullId);
      if (executor == null) {
        // Executor not registered, skip clean up of the local directories.
        logger.info("Executor is not registered (appId={}, execId={})", appId, executorId);
      } else {
        logger.info("Cleaning up non-shuffle files in executor {}'s {} local dirs", fullId,
                executor.localDirs.length);
  
        // Execute the actual deletion in a different thread, as it may take some time.
        directoryCleaner.execute(() -> deleteNonShuffleFiles(executor.localDirs));
      }
    }
docs: Removes all the non-shuffle files in any local directories associated with the finished
  executor.