1. 程式人生 > 其它 >使用Java API之檔案重新命名copyFromLocalFile

使用Java API之檔案重新命名copyFromLocalFile

問題描述:

(1)在Xshell中,Windows系統中cat命令不起作用。

解決措施:

(1)cat是Linux系統專有的命令,在Dos裡沒有cat這個命令。用Windows批處理命令type代替cat。

 1 package com.imooc.bigdata.hadoop.hdfs;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.fs.FileSystem;
 5 import org.apache.hadoop.fs.Path;
 6 import org.junit.After;
7 import org.junit.Before; 8 import org.junit.Test; 9 10 import java.net.URI; 11 12 /** 13 * 使用Java API操作HDFS檔案系統 14 * 15 * 因為是放在test下面,所以最好使用單元測試的方式 16 * 在pom中引入的jUnit單元測試的方式 17 * 單元測試有兩個方法:(1)在單元測試之前進行;(2)在單元測試之後進行 18 * 19 * 關鍵點: 20 * 1)建立Configuration 21 * 2)獲取FileSystem 22 * 3)剩下的是HDFS API的操作
23 */ 24 25 public class HDFSApp { 26 27 public static final String HDFS_PATH = "hdfs://hadoop000:8020"; 28 //Configuration、FileSystem是每一個方法使用之前必須構建的 29 Configuration configuration = null; 30 FileSystem fileSystem = null; 31 32 @Before 33 public void setup() throws Exception{ 34 System.out.println("-----setup-----");
35 configuration = new Configuration(); 36 configuration.set("dfs.replication", "1"); 37 /* 38 *構造一個訪問指定HDFS系統的客戶端物件 39 * 第一個引數:HDFS的URI 40 * 第二個引數:客戶端指定的配置引數 41 * 第三個引數:客戶的使用者名稱 42 */ 43 fileSystem = FileSystem.get(new URI("hdfs://hadoop000:8020"), configuration, "hadoop"); 44 } 45 46 /* 47 * 拷貝本地主機檔案至HDFS檔案系統 48 */ 49 @Test 50 public void copyFromLocalFile() throws Exception{ 51 Path src = new Path("/Users/Lenovo/Documents/hello.txt"); 52 Path dst = new Path("/hdfsApi/test/"); 53 fileSystem.copyFromLocalFile(src, dst); 54 } 55 56 @After 57 public void tearDown(){ 58 System.out.println("-----tearDown-----"); 59 60 //置空 61 configuration = null; 62 fileSystem = null; 63 } 64 }