介绍如何在 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://cloud-a:9000";

try{

FileSystem fs = FileSystem.get(URI.create(uri),conf);

FSDataInputStream in = fs.open(hdfsSource);

FileOutputStream fos = new FileOutputStream(targetPath);

int bytesRead;

byte[] buffer = new byte[4096];

while ((bytesRead = in.read(buffer)) > 0) {

fos.write(buffer, 0, bytesRead);

}

in.close();

fos.close();

//使用 copyToLocalFile 会丢出 Cannot run program "chmod"例外

//fs.copyToLocalFile(hdfsSource, new Path(targetPath));

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

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

  1. app文件上传到服务器教程,app上传文件到云服务器

    app上传文件到云服务器 内容精选 换一换 本节操作以CentOS操作系统为例,介绍配置SFTP.使用SFTP上传或下载文件.文件夹的操作步骤.以root用户登录云服务器.执行以下命令查看ssh版本, ...

  2. c 服务器文件是存在,客户端服务器在较大的文件的c文件传输问题

    下面的代码适用于最后一个数据包包含的数据少于最大长度的较小文件,该功能通过显示接收到的文件正确退出. 如果传输的文件的最后一个数据包或缓冲区包含与我的情况下接收缓冲区阵列512的大小相同的确切数量.然 ...

  3. 服务器获取密钥文件,如何获取云服务器时使用的私钥文件

    如何获取云服务器时使用的私钥文件 内容精选 换一换 用户通过管理控制台创建或者导入密钥对后,在购买弹性云服务器时,登录方式选择密钥对,并选择创建或者导入的密钥对.用户购买弹性云服务器成功后,可使用密钥 ...

  4. asp.net fileupload 文件上传后服务器上找不到文件,Asp.net中FileUpload控件上传文件例子...

    FileUpload 控件显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器.用户通过在控件的文本框中输入本地计算机上文件的完整路径(例如,C:\MyFiles ...

  5. php 自定义文件后缀,自定义更改服务器asp/php/.net等文件后缀名

    现在很多网站都更改了文件名后缀,比如将index.aspx改为index.do文件名,或将index.asp?id=1改为index.html?id=1,其实也没什么好处,唯一好处就是让人家不知道是什 ...

  6. node将当前文件上传到服务器,以编程方式将文件从node.js上传到另一个Web服务器...

    我需要将文件从node.js应用程序推送到其他地方运行的Web服务器,该服务器通过典型的上载机制接受文件.例如,假设接收服务器有一个网页,这样的形式:以编程方式将文件从node.js上传到另一个Web ...

  7. linux终端跟苹果手机传文件,【Linux】服务器与本地机传输文件--MAC

    总是会遇到在服务器与本地电脑之间上下传输文件的场景,那这个时候我们该怎么做呢? 基础版 利用httpfileserver进行传输 首先,在服务器上执行命令: jumbo install python- ...

  8. macbook服务器文件,使用MacBook生成服务器使用的p12证书文件

    #将aps_development.cer转换成aps_development.pem格式 openssl x509 -in aps_development.cer -inform DER -out ...

  9. 小米删除了文件无网络无服务器,小米手机里的文件删了怎么恢复?超详细解决方法...

    手机里文件被删除后,虽然很心疼,但是却不知道要怎么找回数据,所以许多小伙伴们都错失了恢复误删文件的机会.今天我就以小米手机为例,和大家分享:安卓手机里的文件删除了怎么恢复的操作技巧. 如果是手机照片恢 ...

最新文章

  1. SQL替换字段中部分字符
  2. oracle安装就是home3,rhel3上安装Oracle(来自Oracle网站)
  3. Android 开发, Android 安全 精品资料收集 (持续更新...)
  4. .html,.htm和.shtml的区别
  5. 比拼浮点运算速度,超算排行榜是这样“算”出来的
  6. python 中arange函数_浅谈Python中range与Numpy中arange的比较
  7. React- jsx的使用可以渲染html标签 或React组件
  8. bug in MicrosoftAjax.debug.js
  9. 为什么要用Web Service
  10. java判断题及答案_Java面试题及解析(判断题)
  11. APT攻防整理-攻击方法/工具
  12. Axis2生成wsdl的一种方法
  13. 机械振动学|单自由度系统
  14. Win7窗口最大化和最小化快捷键
  15. 怎样检测和应对数据集的Outliers
  16. python编程视频剪辑_专治爱剪辑的片头片尾的脚本(Python)
  17. 6步速通:修复损坏的word文件
  18. 毕业设计-进销存管理系统
  19. 好用的日历插件(三款常用的日历插件)
  20. Mac 定时提醒应用 stretchly 配置

热门文章

  1. SpringBoot集成MyBatis的分页插件PageHelper
  2. 2020身高体重标准表儿童_2020年儿童标准体重表出炉!过胖影响发育!(附身高体重标准表)...
  3. 用jsp实现右导航窗格_手机导航如何投放到汽车中控屏?建议用这2种办法,轻松实现同屏...
  4. java中必检异常有哪些_Java面试题经典面试题220道(附答案)
  5. python如何创建一个列表_在python中创建列表的最佳和/或最快方法
  6. 的图片怎么循环渲染_十分钟教你做个炫酷的图片切换过度效果
  7. sha256校验工具_使用AIDE工具做入侵检测
  8. Verilog HDL语言实现ROM、RAM+有限状态机
  9. Verilog HDL语言设计实现过程赋值+译码器
  10. C++常用字符串分割方法