2
我创建了一个零字节文件与特定的所有者和权限600如何复制到HDFS文件并仍保留权限?
-rw------- 3 cloudera hdfs 56 2014-04-01 18:47 Data/input/test.dat
cloudera:/home/cloudera
当我试图运行通过API副本,我看到它翻转权限从600到644如何我是否保留许可?任何帮助将不胜感激。
副本
***>hadoop fs -ls Data/input/
Found 1 items
-rw------- 3 cloudera cloudera 10 2014-04-01 19:54 Data/input/test.dat
之前
后复制
***>hadoop fs -ls Data/input/
Found 1 items
-rw-r--r-- 3 cloudera cloudera 10 2014-04-01 19:55 Data/input/test.dat
脚本,我已经运行
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class FilePerm{
public static void main(String[] args) throws IOException{
Path src = new Path("/home/cloudera/input1.dat");
Path tgt = new Path("Data/input/test.dat");
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
System.out.println(fs.getConf().get("dfs.support.append"));
fs.copyFromLocalFile(src, tgt);
System.out.println("Completed copy");
}
}
要添加, src是本地UNIX文件系统上的文件,tgt是HDFS上的文件。
感谢您的回复。我试图查看选项将hdfs文件锁定到hdfs上的用户或组(640),而我试图将它们从本地复制到HDFS。 目前,copyFromLocalFile在执行命令期间给予权限。我可以在使用api复制副本后切换权限和所有者,但我不希望HDFS上的任何其他用户偶尔看到我的文件。 – user3315248
尝试上传到只有您有权访问的目录。 – blueberryfields
我可以上传到任何目录。问题是我想限制其他用户在复制过程中使用它。 – user3315248