hdfsapi第一個案例(先建立一個包)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TUNZWOXl1bk1mYsJ0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwQjNwQDMwUTM5EjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
本地上傳檔案到hdfs
然後就可以直接運作
在終端輸入檢視指令,發現使用者名是Windows的使用者名
是以需要開啟權限
開啟完權限後,分發到其他節點
然後可以運作,但是發現報錯(因為使用者權限不對,需要修改為指定的使用者)
是以需要修改使用者檔案權限
有以下三種方法是修改使用者權限的操作
第一種
vm options:
-DHADOOP_USER_NAME=root
第二種
設定系統環境變量
System.setProperty("HADOOP_USER_NAME","root");
第三種
擷取操作hdfs的用戶端時,可以指定user參數
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop0001:9000"), conf, "root");
也就是說,權限開啟之後,要修改權限
擷取檔案系統的用戶端的方式:擷取操作對象的6種方式
10hdfsapi第一個案例
到此上傳操作就OK了
下載下傳檔案的環境配置、調用本地api
是因為用的是分布式檔案系統去操作本地檔案是沒有權限的,是以報錯(差的就是沒有操作本地檔案系統的權限)
是以需要搭一個本地hadoop環境。
可以将下面的檔案夾解壓到任務的目錄下面
是以要把這檔案解壓出來,然後配置環境變量,HADOOP_HOME path裡面配置以下path
然後就可以直接執行下載下傳。
如果沒有配置本地環境,需要操作怎麼辦。可以把參數設定為本地
但是一般是 用shell腳本寫程式,然後Linux 直接調用就可以了