二、關于hdfs權限問題

1、示例代碼

package com.stu.demo;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
public class Demo {
@Test
public void test01() throws Exception{
//配置參數,指定NameNode地址
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.125.111:9000");
//創建客服端
FileSystem client = FileSystem.get(conf);
//創建目錄
client.mkdirs(new Path("/Demo/demo111"));
//關閉客戶端
client.close();
}
}


2、出錯信息:org.apache.hadoop.security.AccessControlException: Permission denied: user=Сì, access=WRITE, inode="/Demo/demo223":root:supergroup: d rwx r-x r-x

出錯原因:當前用Windows操作所以是本地用戶,其他用戶是沒有寫的權限的,所以要修改HDFS的權限。

3、解決方式

第一種方式://指定當前用戶為root用戶
System.setProperty("HADOOP_USER_NAME", "root");

第二種方式:通過java的-D方式參數,-D可以理解是取參數的,如圖所示:

第三種方式:dfs.permissions -->false ; 默認是ture,修改就行。

第四種方式:命令 -chmod 改變hdfs的目錄權限

請關注公眾號獲取更多資料



】【打印繁體】【】【】 【】【】【】 【關閉】 【返回頂部
上一篇Hadoop分布式———分布式存儲系.. 下一篇Hadoop3 50070端口訪問不到HDFS頁..