0
我用下面的代碼刪除HDFS文件系統問題與
conf = new org.apache.hadoop.conf.Configuration();
// TODO: Change IP
conf.set("fs.defaultFS", "hdfs://aaa.bbb.com:1234/user/hdfs");
conf.set("hadoop.job.ugi", "hdfs");
conf.set("fs.hdfs.impl",
org.apache.hadoop.hdfs.DistributedFileSystem.class.getName()
);
conf.set("fs.file.impl",
org.apache.hadoop.fs.LocalFileSystem.class.getName()
);
fs = FileSystem.get(conf);
fs.delete(new Path("/user/hdfs/file.copy"), true);
文件與Java API HDFS我創建了一個在我的本地機器被稱爲「XYZ」的用戶,很讓我驚訝,我能夠刪除hdfs文件系統中的文件(file.copy),該文件的所有者爲xyz。這意味着有人可以通過創建hdfs或root用戶來刪除任何文件。
我知道Java API有一種使用Kerberos對用戶進行身份驗證的方法,我相信我們的hadoop系統配置有問題。有人能幫我正確設置安全嗎?我相信遠程用戶應該提供一些密鑰或密鑰文件來驗證自己。只有相同的用戶名不會!
PS:我使用了Cloudera 5.3.1