- package com.hdfs;
- import org.apache.hadoop.fs.FSDataInputStream;
- import org.apache.hadoop.fs.FileStatus;
- import org.apache.hadoop.fs.FileSystem;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.fs.Path;
- import java.io.IOException;
- public class FileSystemOperationDemo1 {
-     public static void main(String[] args) throws IOException {
-         //getter connection
-         Configuration conf = new Configuration();
-         //create core path
-         Path corePath = new Path("/usr/local/hadoop/etc/hadoop/core-site.xml");
-         //create hdfspath
-         Path hdfsSiteXmlPath = new Path("/usr/local/hadoop/etc/hadoop/hdfs-site.xml");
-         //add resource to connection
-         conf.addResource(corePath);
-         conf.addResource(hdfsSiteXmlPath);
-         Path hdfsPath = new Path("hdfs://192.168.92.132:8020/TestDir/");
-         FileSystem fs = hdfsPath.getFileSystem(conf);
-         //Determine whether the directory or file is exists
-         boolean b = fs.exists(hdfsPath);
-         if (!b) {
-             fs.mkdirs(hdfsPath);//create file instance
-         }
-         //print hostname
-         java.lang.String hostname = conf.get("fs.default.name");
-         System.out.println(hostname);
-         //copy HDFS to Localhost
-         fs.copyToLocalFile(new Path("hdfs://192.168.92.132:8020/profile"), new Path("/"));
-         fs.copyFromLocalFile(new Path("/etc/profile"), new Path("hdfs://192.168.92.132:8020/TestDir"));
-         FileStatus status = fs.getFileStatus(new Path("hdfs://192.168.92.132:8020/profile"));
-         //getter absolute path
-         System.out.println("path:" + status.getPath());
-         //getter relative path
-         System.out.println("path:" + status.getPath().toUri().getPath());
-         //get block size
-         System.out.println("blockSize:" + status.getBlockSize());
-         //get group
-         System.out.println("Group:" + status.getGroup());
-         //get Owner
-         System.out.println("Owner:" + status.getOwner());
-         // getter all statuses
-         FileStatus[] statuses = fs.listStatus(new Path("hdfs://192.168.92.132:8020/TestDir"));
-         for (FileStatus fileStatus : statuses) {
-             System.out.println("relative path:" + fileStatus.getPath().toUri().getPath());
-         }
-         FSDataInputStream fdis = fs.open(new Path("hdfs://192.168.92.132:8020/profile"));
-         byte[] buff = new byte[128];
-         int length = 0;
-         while ((length = fdis.read(buff, 0, 128)) != -1) {
-             System.out.println(length);
-             System.out.println(new java.lang.String(buff,0,length));
-         }
-         System.out.println(fdis.getPos());
-         fdis.seek(10);
-         while ((length = fdis.read(buff, 0, 128)) != -1) {
-             System.out.println(new java.lang.String(buff, 0, length));
-         }
-         fdis.seek(0);
-         byte[] buff2 = new byte[128];
-         fdis.read(buff2, 0, 128);
-         System.out.println(new java.lang.String(buff2));
-         System.out.println(buff2.length);
-         fs.close();
-     }
- }