将文件从 HDFS 复制到本地计算机

2024-03-30

我在尝试将文件从 HDFS 文件系统“下载”到本地系统时遇到问题。 (即使相反的操作没有问题)。 *注意:文件存在于 HDFS 文件系统的指定路径上

这是一个代码片段:

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS", "${NAMENODE_URI}");
    FileSystem hdfsFileSystem = FileSystem.get(conf);

    String result = "";

    Path local = new Path("${SOME_LOCAL_PATH}");
    Path hdfs = new Path("${SOME_HDFS_PATH}");

    String fileName = hdfs.getName();

    if (hdfsFileSystem.exists(hdfs))
    {
        hdfsFileSystem.copyToLocalFile(hdfs, local);
        result = "File " + fileName + " copied to local machine on location: " + localPath;
    }
    else
    {
        result = "File " + fileName + " does not exist on HDFS on location: " + localPath;
    }

    return result;

我得到的异常如下:

12/07/13 14:57:46 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:206)
    at org.apache.hadoop.util.Shell.run(Shell.java:188)
    at org.apache.hadoop.fs.FileUtil$CygPathCommand.<init>(FileUtil.java:412)
    at org.apache.hadoop.fs.FileUtil.makeShellPath(FileUtil.java:438)
    at org.apache.hadoop.fs.FileUtil.makeShellPath(FileUtil.java:465)
    at org.apache.hadoop.fs.RawLocalFileSystem.execCommand(RawLocalFileSystem.java:573)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:565)
    at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:403)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:452)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:420)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:774)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:755)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:654)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:259)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:232)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:183)
    at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1837)
    at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1806)
    at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1782)
    at com.hmeter.hadoop.hdfs.hdfsoperations.HdfsOperations.fileCopyFromHdfsToLocal(HdfsOperations.java:75)
    at com.hmeter.hadoop.hdfs.hdfsoperations.HdfsOperations.main(HdfsOperations.java:148)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 22 more

知道可能出现什么问题吗?为什么 Cygwin 需要 cyqpath?我在 Windows 7 上运行此代码。

Thanks


尝试使用 API 中的此方法:

//where delSrc is do you want to delete the source, src and dst you already have and useRawLocalFileSystem should be set to true in your case
hdfsFileSystem.copyToLocalFile(delSrc, src, dst, useRawLocalFileSystem);

在你的情况下替换:

hdfsFileSystem.copyToLocalFile(hdfs, local);

with:

hdfsFileSystem.copyToLocalFile(false, hdfs, local, true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件从 HDFS 复制到本地计算机 的相关文章

随机推荐

  • 查找用 Phing 替换文件中的文本

    有谁知道如何使用 Phing 查找和替换文件中的文本 如果您不想复制文件而只想替换文件所在的当前文件夹中的字符串 请执行反射性任务 http www phing info docs guide trunk chapters appendix
  • Facebook XFBML 未在 Internet Explorer 8 中呈现

    我贴出这个测试页来说明这个问题 死链接 我测试过的每个浏览器都可以正常工作 但在 Internet Explorer 8 中除外 奇怪的是 Internet Explorer 8 甚至不报告错误 哇 这就是问题所在 所以现在我无事可做或调试
  • 什么是 devise_mapping 变量以及如何包含它?

    我正在尝试在我的 Rails 应用程序中使用 Devise 实现身份验证 Rails 2 3 8 Devise 1 0 7 在 Windows Vista 上运行的 mongrel 但我收到以下错误 undefined local vari
  • 如何正确传递具有扩展属性的嵌套属性? (JSX)

    1 你好 我有代码 class Component extends React Component render this props nested prop this props parse nested prop return div
  • 如何在 javascript 中在运行时添加/删除对象的属性[重复]

    这个问题在这里已经有答案了 我想知道如何在 JavaScript 运行时添加 删除对象的属性 如何在 JavaScript 中实现这一点 假设你的对象是myobj 那么你可以像这样添加一个成员 myobj myvar value or my
  • 使用 logrotate 每小时轮换文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试设置位于 tmp hr logs 的日志文件的日志轮转 为了进行设置 我在 Linux 中使用了 logrotate 并且我可以在
  • Rails 自定义配置返回空哈希

    我正在使用 Rails 4 并且我想使用自定义配置功能 如下所述 http guides rubyonrails org configuring html custom configuration http guides rubyonrai
  • 基于行内 NA 数量的条件行删除

    我希望根据以下两个条件从数据集中删除行 如果有 3 个连续单元格 则删除行NA or 如果有四个或更多单元格NA 我的样本数据 data lt rbind c 1 1 2 3 4 2 3 2 c NA 1 NA 4 1 1 NA 2 c 1
  • NSMenuItem 的选择器放置在哪里

    我试图理解 Cocoa 中的一些事情 但我陷入了一件事 我正在跟进简约的 Cocoa 编程 http cocoawithlove com 2010 09 minimalist cocoa programming html 那里有一个NSMe
  • 为什么我们要把一个mysql表分成许多更小的表?

    这似乎是一种常见的做法divide the data of one table into many databases many tables为了提高性能 我可以理解many databases部分原因是更多的数据库提供了更多的CPU 更多
  • matplotlib 补丁集合中的 Zorder 规范?

    我正在尝试绘制一系列矩形和圆形 其中圆形位于前景中 根据以下帖子 我必须设置 zorder 参数 我添加到图表中的补丁在 alpha 1 时不是不透明的 为什么 https stackoverflow com questions 53906
  • 使用复选框从 jquery 自动完成中选择多个选项

    我正在与jquery 自动完成 https jqueryui com autocomplete 我正在尝试以下代码 Html
  • 尝试保存其他实体时 Doctrine 事件侦听器中的无限循环

    我希望每次新的时候Distance保存实体 从 Place A 到 Place B 反向距离 从 Place B 到 Place A 也被插入到数据库中 https stackoverflow com q 30569463 2516943
  • 给定一个数字,找到与原始数字具有完全相同的数字组的下一个更高的数字

    我刚刚搞砸了一次面试 并且在面试问题上几乎取得了零进展 给定一个数字 找到下一个具有完全相同的数字 一组数字作为原始数字 例如 给出 38276 返回 38627 我想首先找到小于个位的第一个数字 从右侧 的索引 然后我会旋转子集中的最后一
  • android parse.com 保存安装错误。找不到要更新的对象

    我在下面收到此错误 但不知道该怎么办 我什至不知道要在这里发布什么代码 因为我似乎找不到代码中导致此错误的位置 还有一件更重要的事情要提 这个错误不会发生在我的第一个测试设备 运行 Android 4 0 4 的 HTC难以置信 上 但我的
  • Spring 返回 HTTP 406 的 JSON (NOT_ACCEPTABLE)

    Spring允许定义 ExceptionHandlers代替 RestControllerAdvice 我已经定义了很多其他的ExceptionHandlers其中适用于 HTTP 400 404 405 但是 HTTP 406 NOT A
  • 读取所有注册表值的快速方法

    我正在编写一个实用程序 需要创建 HKCR 中所有注册表值的列表 我使用递归函数来执行此操作 var list new Dictionary
  • jQuery 不调用 php

    由于某种原因 jQuery 没有加载我的 php 文件 单击该按钮 页面就会刷新 我已经验证 jQuery 可以正常工作 并且单击功能也可以正常工作 一旦到达 post它似乎没有调用该文件并经历暂停并回显结果 该目录对于 php 文件是正确
  • 获取最小时差

    我最近在一次编码面试中被问到这个问题 我得到了一系列 HH MM 格式的时间 我需要找到以分钟为单位的最小时差 时间本质上是循环的 因此 23 55 和 00 12 应该相差 17 该函数还需要将 00 00 处理为与 24 00 相同的东
  • 将文件从 HDFS 复制到本地计算机

    我在尝试将文件从 HDFS 文件系统 下载 到本地系统时遇到问题 即使相反的操作没有问题 注意 文件存在于 HDFS 文件系统的指定路径上 这是一个代码片段 Configuration conf new Configuration conf