hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统

介绍如何在 Windows 环境中, 将保存在 HDFS 上的文件导出到本机上

数据导入到 HDFS 后

当然也要有方法将数据从 HDFS 导出到本机系统上

在 HADOOP JAVA API 所提供的  FileSystem 类

就提供 copyToLocalFile 函数将文件复制回本机文件系统

理论上这是可以轻易的做到这件事情

但实际使用时, 才发现一个问题

当客户端用的是 windows 而不是 linux

程序也不是在 cluster 主机上执行时

此时调用 copyToLocalFile 函数

Hadoop 会丢出一个例外:

Cannot run program "chmod": CreateProcess error=2, ?t?Χ??????

解决方法是在电脑上安装 cygwin

这样 hadoop 就可以调用到 chmod 命令

但如果要求所有使用者一定要在 window 上安装 cygwin 这样也挺怪的

所以想到了另一个方法

就是直接用 file stream 方式

将 HDFS 数据读出后, 再写回本地端的文件系统

这样就可以解决数据导出的问题

/*

将 HDFS 上文件, 导出至本机磁盘上

*/

public void exportFile(Path hdfsSource, String targetPath){

Configuration conf = new Configuration();

conf.set("hadoop.job.ugi","hadoop,supergroup");

String uri="hdfs://clou

你可能感兴趣的:(hdfs文件如何导出到服务器)