java操作hdfs实例,自己封装好的

来源:互联网 发布:淘宝装修显示模板过期 编辑:程序博客网 时间:2024/06/09 20:48
package com.hkj.hadoop.testhdfs;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.URI;import java.net.URISyntaxException;import java.net.URL;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FSDataOutputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IOUtils;/** *  * @author 汪本成 * */public class app1 {private static final String hdfs = "hdfs://master:9000/user/spark/hdfs/data.txt";private static final String path = "hdfs://master:9000";private static final String dir_path = "hdfs://master:9000/user/spark/hdfs/demo";private static final String file_path = "/user/spark/hdfs/demo";public static void main(String[] args) throws IOException, URISyntaxException{mkdirFile();readFile();uploadFile();downloadFile();deleteFile();}/**创建文件夹 * @throws URISyntaxException  * @throws IOException **/public static void mkdirFile() throws IOException, URISyntaxException{Path path = new Path(dir_path);loadFs().mkdirs(path);}/**上传文件 * @throws URISyntaxException  * @throws IOException **/public static void uploadFile() throws IOException, URISyntaxException{final FSDataOutputStream out = loadFs().create(new Path(file_path));final FileInputStream in = new FileInputStream("G:/hello.txt");IOUtils.copyBytes(in, out, 1024,true);}/** * 下载文件 * @throws IllegalArgumentException * @throws IOException * @throws URISyntaxException */public static void downloadFile() throws IllegalArgumentException, IOException, URISyntaxException {final FSDataInputStream in = loadFs().open(new Path(file_path));IOUtils.copyBytes(in, System.out, 1024, true);}/**读取文件内容**/public static void readFile() throws IOException{URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());URL url = new URL(hdfs);InputStream in = url.openStream();IOUtils.copyBytes(in, System.out, 1024, true);}/** * 删除文件 * @throws IllegalArgumentException * @throws IOException * @throws URISyntaxException */public static void deleteFile() throws IllegalArgumentException, IOException, URISyntaxException {loadFs().delete(new Path(file_path), true);}/**初始化Fs**/public static FileSystem loadFs() throws IOException, URISyntaxException{final FileSystem fs = FileSystem.get(new Configuration());return fs;}}

记住代码不要一起跑,要创建的文件或者同名的话会报错的,按顺序慢慢来,多的就不说了

0 0
原创粉丝点击