十三、根据HDFS提供的API,实现文件上传、下载、删除、重命名、移动
来源:互联网 发布:外推群发软件 编辑:程序博客网 时间:2024/05/01 19:59
一、
根据HDFS提供的API,实现以下功能:
针对文件: 上传、下载、删除、重命名、移动
package HdfsApi;import java.io.File;import java.io.FileInputStream;import java.io.IOException;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 HdfsApi { //获取FSpublic static FileSystem getFs() throws IOException{//获取配置文件Configuration conf = new Configuration();//获取文件系统FileSystem fs = FileSystem.get(conf);return fs;}//读取文件public static void readFile(String src) throws IOException{// 获取 FileSystemFileSystem fs = getFs();//读的路径Path readPath = new Path(src);FSDataInputStream inStream = null;try {//打开输入流inStream = fs.open(readPath);IOUtils.copyBytes(inStream, System.out, 4096, false);} catch (Exception e) {e.printStackTrace();}finally{IOUtils.closeStream(inStream);}}public static void putFlie() throws IOException{ //获取filesystemFileSystem fs=getFs();//上传到路径File readpath=new File("/opt/app/hadoop/wc.input");//本地路径Path putpath=new Path("/data/put-wc.input");FileInputStream in=new FileInputStream(readpath);FSDataOutputStream out =fs.create(putpath);try {IOUtils.copyBytes(in, out, 4096, false);} catch (Exception e) {e.printStackTrace();}finally{IOUtils.closeStream(in);IOUtils.closeStream(out);}}//上传文件 public static void writeFile(String src,String dst) throws IOException{//获取filesystemFileSystem fs = getFs();//本地路径File inFile = new File(src);//目标路径Path outFile = new Path(dst);FileInputStream inStream = null;FSDataOutputStream outStream = null;try {//打开输入流inStream = new FileInputStream(inFile);//打开输出流outStream = fs.create(outFile);IOUtils.copyBytes(inStream, outStream,4096, false);} catch (Exception e) {// TODO: handle exception}finally{IOUtils.closeStream(inStream);IOUtils.closeStream(outStream);}}//下载文件 public static void downLoad(String src,String dst) throws IOException{FileSystem fs = getFs();//设置下载地址和目标地址fs.copyToLocalFile(new Path(src), new Path(dst));fs.close();}//重命名和移动public static void renameMV(String src,String dst) throws IOException{FileSystem fs = getFs();fs.rename(new Path(src), new Path(dst));fs.close();}//删除文件public static void delete(String fileName) throws IOException{FileSystem fs = getFs(); fs.deleteOnExit(new Path(fileName));}//获取文件列表public static void listFile(String dirName) throws IOException{FileSystem fs = getFs();FileStatus[] fileStatuses = fs.listStatus(new Path(dirName));for(FileStatus fileName:fileStatuses){System.out.println(fileName.getPath().getName());}}//创建目录public static void mkdir() throws IOException {FileSystem fs = getFs(); fs.mkdirs(new Path("/data/bb"));fs.close();}//创建目录public static void deletedir() throws IOException {FileSystem fs = getFs(); fs.delete(new Path("/data/bb"), true);fs.close();} public static void main(String[] args) throws IOException {}}
二、实现把本地某个目录下面所有小文件合并上传到HDFS文件系统
package HdfsApi;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FileStatus;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.LocalFileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IOUtils;public class PutMerge {public static void main(String[] args) throws IOException {//step 1 : 获取 FileSystemConfiguration conf = new Configuration();LocalFileSystem localFs = FileSystem.getLocal(conf);FileSystem dfs = FileSystem.get(conf);//step 2 : 设置输入输出 in/out PathPath inPath = new Path("/opt/app/hadoop-2.5.0/etc/hadoop");Path outPath = new Path("/data2/putmerge.xml");FileStatus[] fileStatuses = localFs.listStatus(inPath);OutputStream outStream = null;InputStream inStream = null;try {//step 4 : 打开输出流outStream = dfs.create(outPath);for(FileStatus fileName:fileStatuses){//step 3 : 打开输入流inStream = localFs.open(fileName.getPath());IOUtils.copyBytes(inStream, outStream, 4096, false);IOUtils.closeStream(inStream);System.out.println(fileName.getPath());}} catch (Exception e) {e.printStackTrace();}finally{IOUtils.closeStream(outStream);System.out.println("PutMerge Success");}}}
0 0
- 十三、根据HDFS提供的API,实现文件上传、下载、删除、重命名、移动
- HDFS 使用java api实现上传/下载/删除文件
- HDFS 使用Java api实现上传/下载/删除文件
- [API学习]删除、复制、重命名、移动文件
- 调用JAVA API 对 HDFS 进行文件的读取、写入、上传、下载、删除等操作
- Java实现远程HDFS的文件操作(新建、上传、下载、删除)
- Java实现远程HDFS的文件操作(新建、上传、下载、删除)
- [Hadoop]HDFS文件的相关操作(上传、新建、删除和重命名)
- Eclipse 上传 删除 下载 分析 hdfs 上的文件
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- Delphi 文件的操作:重命名、复制、移动、删除(制作一个信息上传控件)
- Delphi 文件的操作:重命名、复制、移动、删除(制作一个信息上传控件)
- 使用Servlet3.0提供的API实现文件上传
- java中ftp上传、下载、重命名、删除功能实现
- 三得公益人人开发模式系统App商城
- Mysql Seconds_Behind_Master 解析
- 房间安排
- ssm+rpc+maven框架搭建(1)
- 87.hdu--1106--排序
- 十三、根据HDFS提供的API,实现文件上传、下载、删除、重命名、移动
- Android Drawable之InsetDrawable
- 决策树的究极进化之Bagging和Boosting
- Python爬虫入门学习--(单线程爬虫)
- MMAP简单介绍
- Java 使用Redis缓存工具的图文详细方法
- android studio http proxy 设置代理
- Python模块安装方法
- DSP的InitSysCtrl()函数详谈