转自:http://blog.csdn.net/msc067/article/details/7239563
运行方式:指定两个输入参数,依次为本地文件(或文件夹)路径、HDFS文件(或文件夹)路径
import java.io.File;
import java.io.FileOutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.io.IOUtils;
public class HDFS_Downloader
{
public static FileSystem hdfs;
public static void downloadFile(String srcPath, String dstPath) throws Exception
{
FSDataInputStream in = null;
FileOutputStream out = null;
try
{
in = hdfs.open(new Path(srcPath));
out = new FileOutputStream(dstPath);
IOUtils.copyBytes(in, out, 4096, false);
}
finally
{
IOUtils.closeStream(in);
IOUtils.closeStream(out);
}
}
public static void downloadFolder(String srcPath, String dstPath) throws Exception
{
File dstDir = new File(dstPath);
if (!dstDir.exists())
{
dstDir.mkdirs();
}
FileStatus[] srcFileStatus = hdfs.listStatus(new Path(srcPath));
Path[] srcFilePath = FileUtil.stat2Paths(srcFileStatus);
for (int i = 0; i < srcFilePath.length; i++)
{
String srcFile = srcFilePath[i].toString();
int fileNamePosi = srcFile.lastIndexOf('/');
String fileName = srcFile.substring(fileNamePosi + 1);
download(srcPath + '/' + fileName, dstPath + '/' + fileName);
}
}
public static void download(String srcPath, String dstPath) throws Exception
{
if (hdfs.isFile(new Path(srcPath)))
{
downloadFile(srcPath, dstPath);
}
else
{
downloadFolder(srcPath, dstPath);
}
}
public static void main(String[] args)
{
if (args.length != 2)
{
System.out.println("Invalid input parameters");
}
else
{
try
{
Configuration conf = new Configuration();
hdfs = FileSystem.get(URI.create(args[0]), conf);
download(args[0], args[1]);
}
catch (Exception e)
{
System.out.println("Error occured when copy files");
}
}
}
}
分享到:
相关推荐
3、HDFS的使用(读写、上传、下载...主要包含HDFS的读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等。 本文分为2个部分,即环境准备和示例。
Java管理hdfs文件和文件夹的工具类,最近版本hadoop2.4。
hdfs dfs -test -e 文件或目录名 第三步,查看检测结果: echo $? 若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。 二、Java代码实现 import org.apache.hadoop.conf.Configuration; ...
hdfs文件的下载
主要介绍了Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
hdfs文件的查看 hdfs fs -cat /文件名
通过调用hdfs的api,进行文件上传、创建、删除、重命名等操作的代码
hdfs 文件的上传,hdfs fs -put /文件名
讲解HDFS小文件处理方案方法
上传文件到HDFS的java代码实现。已经测试了,可以直接运行。
第三章 分布式文件系统HDFS3 Hadoop存储系统HDFS的文件是分块存储,每个文件块默认大小为32MB。 T F 评测结果:答案正确(5 分) 1-2 HDFS系统采用NameNode定期向DataNode发送心跳消息,用于检测系统是否正常运行...
文档详细的讲述了Hadoop中HDFS文件操作命令和HDFS编程
hdfs-compress 压缩hdfs文件 一般压缩hdfs指 ,数据文件的压缩 和 mapred 中间结果压缩 工程只做数据压缩,至于MR中间结果压缩减少网络IO,只需要配置 mapred-site.xml 即可,网上资料很多。 工程只实现了lzo的压缩...
本文档是关于hadoop中HDFS的文件读写操作的一份ppt,适用于学习hadoop新手.
阐述了如何利用利用javaAPI访问HDFS的文件
hdfs代码实例 通过Java代码在HDFS上创建目录、上传文件、下载文件、删除文件、文件重命名、文件列表等操作。
HDFS文件系统,大数据资源文件
从HDFS中读文件,用groupby进行sort,然后写入Hbase中
《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统.pdf
windows平台下的HDFS文件浏览器,就像windows管理器一样管理你的hdfs文件系统。现在官网已经停止更新这款软件。具体配置如下: HDFS配置页面及端口http://master:50070 配置HDFS服务器 配置WebHDFS HDFS Explorer...