大資料學習——上傳本地檔案到叢集根目錄下
阿新 • • 發佈:2019-01-03
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