From 0f2d0fd98ec2464528212c10d68087573c664d0c Mon Sep 17 00:00:00 2001 From: qiuxin2012 Date: Thu, 2 Dec 2021 16:31:37 +0800 Subject: [PATCH 1/2] set all file to 777 --- .../apache/hadoop/fs/RawLocalFileSystem.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java index 2a237a0674abe..a6472ea321201 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java @@ -528,10 +528,10 @@ protected boolean mkOneDirWithMode(Path p, File p2f, FsPermission permission) if (permission == null) { permission = FsPermission.getDirDefault(); } - // permission = permission.applyUMask(FsPermission.getUMask(getConf())); - System.out.println("WARN disable permission umask not to " + - permission.applyUMask(FsPermission.getUMask(getConf()))); - System.out.println("WARN permission is still:" + permission); + permission = permission.applyUMask(FsPermission.getUMask(getConf())); + // System.out.println("WARN disable permission umask not to " + + // permission.applyUMask(FsPermission.getUMask(getConf()))); + // System.out.println("WARN permission is still:" + permission); if (Shell.WINDOWS && NativeIO.isAvailable()) { try { NativeIO.Windows.createDirectoryWithMode(p2f, permission.toShort()); @@ -734,9 +734,9 @@ public String getGroup() { */ private synchronized void loadPermissionInfo() { // disable NativeIO to avoid graphene issue - System.out.println("WARN RawLocalFileSystem.loadPermissionInfo disabled loadPermissionInfoByNativeIO and " + - "loadPermissionInfoByNonNativeIO!!!"); - /* + // System.out.println("WARN RawLocalFileSystem.loadPermissionInfo disabled loadPermissionInfoByNativeIO and " + + // "loadPermissionInfoByNonNativeIO!!!"); + System.out.println("INFO RawLocalFileSystem.loadPermissionInfo"); if (!isPermissionLoaded() && NativeIO.isAvailable()) { try { loadPermissionInfoByNativeIO(); @@ -749,7 +749,6 @@ private synchronized void loadPermissionInfo() { if (!isPermissionLoaded()) { loadPermissionInfoByNonNativeIO(); } - */ } /// loads permissions, owner, and group from `ls -ld` @@ -866,18 +865,23 @@ public void setOwner(Path p, String username, String groupname) @Override public void setPermission(Path p, FsPermission permission) throws IOException { - System.out.println("WARN: HADOOP.RawLocalFileSystem disabled NativeIO and " + - "ProcessBuilder chmod to avoid issues in Graphene"); - /* disable NativeIO and ProcessBuilder chmod to avoid issues in Graphene + // System.out.println("WARN: HADOOP.RawLocalFileSystem disabled NativeIO and " + + // "ProcessBuilder chmod to avoid issues in Graphene"); + System.out.println("INFO: HADOOP.RawLocalFileSystem setPermission " + p + + "to " + permission); + // disable NativeIO and ProcessBuilder chmod to avoid issues in Graphene if (NativeIO.isAvailable()) { - NativeIO.POSIX.chmod(pathToFile(p).getCanonicalPath(), - permission.toShort()); + File f = pathToFile(p); + f.setReadable(true, false); + f.setWritable(true, false); + f.setExecutable(true, false); +// NativeIO.POSIX.chmod(pathToFile(p).getCanonicalPath(), +// permission.toShort()); } else { String perm = String.format("%04o", permission.toShort()); Shell.execCommand(Shell.getSetPermissionCommand(perm, false, FileUtil.makeShellPath(pathToFile(p), true))); } - */ } /** From e40944905f042558ddc105bf5a977a311e7b0979 Mon Sep 17 00:00:00 2001 From: qiuxin2012 Date: Fri, 3 Dec 2021 09:15:18 +0800 Subject: [PATCH 2/2] update --- .../src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java index a6472ea321201..caae06b077ba6 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java @@ -312,6 +312,9 @@ private FSDataOutputStream create(Path f, boolean overwrite, if (exists(f) && !overwrite) { throw new FileAlreadyExistsException("File already exists: " + f); } + if (!exists(f)) { + Files.createFile(pathToFile(f).toPath()); + } Path parent = f.getParent(); if (parent != null && !mkdirs(parent)) { throw new IOException("Mkdirs failed to create " + parent.toString());