windows上傳文件到虛擬機的hdfs上

org.apache.hadoop.security.AccessControlException: Permission denied: user=ASUS, access=WRITE, inode
今天在windows連接虛擬機的hdfs,通過IDEA上傳文件到虛擬機的hdfs上,出現了權限不足問題,原因是以windows的用戶上傳文件,所以出錯,原代碼如下:

package cn.edu.lingnan.hdfsclient;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;

import java.io.IOException;
import java.net.URI;

public class HDFSClient {
    @Test
    public void put() throws IOException
    {
        FileSystem fileSystem = FileSystem.get(URI.create("hdfs://192.168.218.130:9000"),new Configuration());
        fileSystem.copyFromLocalFile(new Path("D:\\1.txt"),new Path("/"));
        fileSystem.close();
    }
}

後來加了一句以虛擬機的用戶上傳文件:

System.setProperty("hadoop","user");

運行還是出錯,經過上網搜索發現是要在hadoop的hdfs-site.xml配置文件加上用戶纔行:

<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

然後代碼就能順利執行,文件也能成功上傳了。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章