hadoop的hdfs文件操作实现上传文件到hdfs_Java教程-查字典教程网
hadoop的hdfs文件操作实现上传文件到hdfs
hadoop的hdfs文件操作实现上传文件到hdfs
发布时间:2016-12-28 来源:查字典编辑
摘要:hdfs文件操作操作示例,包括上传文件到HDFS上、从HDFS上下载文件和删除HDFS上的文件,大家参考使用吧复制代码代码如下:import...

hdfs文件操作操作示例,包括上传文件到HDFS上、从HDFS上下载文件和删除HDFS上的文件,大家参考使用吧

复制代码 代码如下:

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.*;

import java.io.File;

import java.io.IOException;

public class HadoopFile {

private Configuration conf =null;

public HadoopFile(){

conf =new Configuration();

conf.addResource(new Path("/hadoop/etc/hadoop/core-site.xml"));

}

public HadoopFile(Configuration conf){

this.conf =conf;

}

public boolean sendFile(String path,String localfile){

File file=new File(localfile);

if (!file.isFile()) {

System.out.println(file.getName());

return false;

}

try {

FileSystem localFS =FileSystem.getLocal(conf);

FileSystem hadoopFS =FileSystem.get(conf);

Path hadPath=new Path(path);

FSDataOutputStream fsOut=hadoopFS.create(new Path(path+"/"+file.getName()));

FSDataInputStream fsIn=localFS.open(new Path(localfile));

byte[] buf =new byte[1024];

int readbytes=0;

while ((readbytes=fsIn.read(buf))>0){

fsOut.write(buf,0,readbytes);

}

fsIn.close();

fsOut.close();

FileStatus[] hadfiles= hadoopFS.listStatus(hadPath);

for(FileStatus fs :hadfiles){

System.out.println(fs.toString());

}

return true;

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

public boolean delFile(String hadfile){

try {

FileSystem hadoopFS =FileSystem.get(conf);

Path hadPath=new Path(hadfile);

Path p=hadPath.getParent();

boolean rtnval= hadoopFS.delete(hadPath, true);

FileStatus[] hadfiles= hadoopFS.listStatus(p);

for(FileStatus fs :hadfiles){

System.out.println(fs.toString());

}

return rtnval;

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

public boolean downloadFile(String hadfile,String localPath){

try {

FileSystem localFS =FileSystem.getLocal(conf);

FileSystem hadoopFS =FileSystem.get(conf);

Path hadPath=new Path(hadfile);

FSDataOutputStream fsOut=localFS.create(new Path(localPath+"/"+hadPath.getName()));

FSDataInputStream fsIn=hadoopFS.open(hadPath);

byte[] buf =new byte[1024];

int readbytes=0;

while ((readbytes=fsIn.read(buf))>0){

fsOut.write(buf,0,readbytes);

}

fsIn.close();

fsOut.close();

return true;

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类