HDFS操做 1.shell 1.1 建立目錄 hadoop fs -mkdir 目錄名(其中/爲根目錄) 1.2 遍歷目錄 hadoop fs -ls 目錄名 1.3 刪除目錄 hadoop fs -rmr 目錄名 1.4 修改目錄 hadoop fs -mv 原目錄 目標目錄 1.5 上傳文件 hadoop fs -put 文件原路徑 文件HDFS路徑 1.6 查看文件 hadoop fs -cat 文件名(需包含目錄) 1.7 刪除文件 hadoop fs -rmr 文件名 1.8 修改文件 hadoop fs -mv 源文件 目標文件 2.javaAPI 2.1 FileSystem類 1.1 寫文件————create方法 1.2 讀取文件————open方法 1.3 刪除文件————delete方法 1.4 建立目錄————mkdir方法 1.5 列出目錄內容————listStatus方法 1.6 顯示目錄和文件元數據信息————getFileStatus方法 2.2 使用步驟 2.1 導入相關jar 2.2 獲得Configuration對象 2.3 獲得hdfs的URI對象 2.4 獲得FileSystem對象 2.5 調用filesystem的相關方法 示例: package testHadoop; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; public class testJavaAPI { public static void main(String[] args) throws Exception{ String url = "hdfs://hadoop:9000"; Configuration conf = new Configuration(); URI uri = new URI(url); FileSystem fs = FileSystem.get(uri, conf); listPath(url, fs,"/");//遍歷目錄 fs.mkdirs(new Path("/input/test"));//建立目錄 System.out.println("建立文件夾成功!"); listPath(url, fs,"/input/test"); fs.delete(new Path("/input/test"));//刪除目錄 listPath(url, fs, "/input"); //建立文件 FSDataOutputStream out = fs.create(new Path("/input/test.ini")); out.writeUTF("This is first test data!"); out.flush(); out.close(); System.out.println("建立文件成功!"); listPath(url, fs, "/input"); //讀取文件 FSDataInputStream in = fs.open(new Path("/input/test.ini")); IOUtils.copyBytes(in, System.out, 1024); IOUtils.closeStream(in); System.out.println("讀取文件成功!"); //刪除文件 fs.delete(new Path("/input/test.ini")); System.out.println("刪除文件成功!"); listPath(url, fs, "/input"); //本地文件上傳到服務器 File file = new File("d:/data.txt"); FileInputStream in_local = new FileInputStream(file); FSDataOutputStream out_local = fs.create(new Path("/input/data.ini")); int i; while ((i=in_local.read())!= -1){ out_local.write(i); } out_local.flush(); in_local.close(); out_local.close(); listPath(url, fs, "/input"); } private static void listPath(String url, FileSystem fs ,String path) throws FileNotFoundException, IOException { FileStatus[] status = fs.listStatus(new Path(path)); for(FileStatus s : status){ String isDir = s.isDir()?"目錄":"文件"; System.out.println(s.getPath().getName() + " " + isDir); } System.out.println("遍歷文件夾成功"); } }