hdfs叢集第一個客戶端程式
阿新 • • 發佈:2018-11-19
- 在叢集實體機中,我們可以直接通過實體機操作hdfs系統,直接使用hdfs命令將實體機中的檔案上傳至叢集檔案系統中,但實際應用中叢集會面向客戶端操作,不再是傳統命令操作,而是通過相應的客戶端程式來執行
測試之前先注意一下幾點:
- 1.叢集啟動狀況,是否正常
- 2.測試環境是否搭好(這裡使用的eclipse匯入jar方式,也可以使用pom配置,intellij搭建也可以)
- 3.測試的檔案在客戶端磁碟路徑中不要帶中文字元(檔案內容可以帶中文)
- 4.檔案路徑不能寫錯,上傳之後支援不會報錯,但叢集檔案不存在
- 5.下面URL中用主機名代替的ip,因為做了hosts對映,windows端和叢集中各個節點最好都給hosts檔案中做主機對映(不配置hosts也可以直接寫ip,但相對繁瑣)
測試檔案內容:
測試原始碼如下:
package hdfs0508; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HDFSClient { public static void main(String[] args) throws Exception { //0.獲取系統配置資訊 Configuration conf = new Configuration(); //conf.set("fs.defaultFS", "hdfs://hadoop18020");此方法需要走後門連線叢集, //1.獲取HDFS檔案系統, FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop1:8020") , conf, "york"); //2.拷貝檔案到叢集,true表示檔案上傳成功後自動刪除原始檔,即刪除客戶端下的原始檔 fileSystem.copyFromLocalFile(true,new Path("C:/win10Hadoop/xiyou.txt"),new Path("/user/york/input")); //3.關閉fileSystem fileSystem.close(); } }
執行結果:
- 1.日誌資訊(未加log4j日誌包,出現警告提醒,匯入即可):
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
- 叢集命令檢視上傳的檔案:
- 網頁檢視
可支援下載: