HDFS的Java API操作代码

来源:互联网 发布:识别植物的软件 编辑:程序博客网 时间:2024/04/28 10:40

 

HDFS的Java API操作代码

 

 

 

代码部分:

 

<pre name="code" class="java">package FileSystem; import java.io.FileInputStream;import java.io.IOException;import java.net.URI; importorg.apache.hadoop.conf.Configuration;importorg.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 HDFS {       static final String PATH="hdfs://192.168.1.100:9000/";       static final String DIR="hdfs://192.168.1.100:9000/dir";       static final String FILE="/dir/xiaobaozi";       public static void main(String args[]) throws Exception{              FileSystem fileSystem = getFileStstem();              //创建文件夹       //     mkdir(fileSystem);              //上传文件       //     putData(fileSystem);              //下载文件       //     getData(fileSystem);              //浏览文件夹       //     list(fileSystem);              //删除文件夹              remove(fileSystem);       }       privatestatic FileSystem getFileStstem() throws Exception {              //TODO Auto-generated method stub              Configuration conf=new Configuration();              URI uri=new URI(PATH);              final FileSystem fileSystem=FileSystem.get(uri, conf);              return fileSystem;       }       //创建文件夹       privatestatic void mkdir(FileSystem fileSystem) throws IOException{              fileSystem.mkdirs(newPath(DIR));              System.out.println("创建成功!");       }       //上传文件       privatestatic void putData(FileSystem fileSystem) throws IOException{              final FSDataOutputStream out=fileSystem.create(new Path(FILE));              final FileInputStream in=new FileInputStream("D:/File_hdfs.txt");              IOUtils.copyBytes(in,out, 1024, true);              System.out.println("上传成功!");       }       //下载文件       privatestatic void getData(FileSystem fileSystem) throws IOException{              final FSDataInputStream in=fileSystem.open(new Path(FILE));              IOUtils.copyBytes(in,System.out,1024, true);              System.out.println("下载文件!");       }       //浏览文件夹       privatestatic void list(FileSystem fileSystem) throws IOException{              final FileStatus[] listStatus=fileSystem.listStatus(new Path("/"));              for(FileStatus fileStatus:listStatus){                     String isDir=fileStatus.isDir()?"文件夹":"文件";                     final String permission=fileStatus.getPermission().toString();                     final short replication=fileStatus.getReplication();                     final long len=fileStatus.getLen();                     final String path=fileStatus.getPath().toString();                     System.out.println(isDir+"\t"+permission+"\t"+replication+"\t"+len+"\t"+path);              }              System.out.println("浏览文件夹!");       }       //删除文件夹       privatestatic void remove(FileSystem fileSystem) throws IOException{              fileSystem.delete(newPath(DIR), true);              System.out.println("删除文件夹!");       }}





对应的HDFS 操作的变化:

 

1、创建一个文件夹:

 

或命令为:[hadoop@baolibinbin]$ hadoop fs -ls hdfs://192.168.1.100:9000/

 

2、上传文件:

 

 

3、下载文件:

 

 

 

4、浏览文件夹:

 

 

5、删除文件夹:

 

 

 

 

 

0 0