1. 程式人生 > >大資料學習——上傳本地檔案到叢集根目錄下

大資料學習——上傳本地檔案到叢集根目錄下

TestHDFS.java

package cn.itcast.hdfs;

import java.io.IOException;

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

public class TestHDFS {
    public static void main(String[] args) throws IOException {
        Configuration conf 
= new Configuration(); //1首先需要一個hdfs的客戶端物件 conf.set("fs.defaultFS", "hdfs://mini1:9000"); FileSystem fs = FileSystem.get(conf); fs.copyFromLocalFile(new Path("E://he.txt"), new Path("/")); fs.close(); } }

此時報錯,許可權不足:

 

修改後的程式碼(偽造一個root身份):

package cn.itcast.hdfs;

import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class TestHDFS { public static void main(String[] args) throws IOException { Configuration conf = new Configuration(); //偽造root使用者身份
System.setProperty("HADOOP_USER_NAME","root"); //1首先需要一個hdfs的客戶端物件 conf.set("fs.defaultFS", "hdfs://mini1:9000"); FileSystem fs = FileSystem.get(conf); fs.copyFromLocalFile(new Path("E://he.txt"), new Path("/")); fs.close(); } }

 

或者是執行時加一個引數:

 

VM-arguements:

-DHADOOP——USER_NAME=root