从 HDFS 到 Amazon S3 的 Hadoop distcp 问题

2024-04-12

我正在尝试使用以下方法将数据从 HDFS 移动到 S3distcp. The distcp作业似乎成功了,但在 S3 上,文件未正确创建。有两个问题:

  1. 文件名和路径不会被复制。所有文件最终都为block_<some number>在桶的根部。
  2. 它在 S3 上创建了一堆额外的文件,其中包含一些元数据和日志。

我找不到这方面的任何文档/示例。我缺少什么?我该如何调试?

以下是更多详细信息:

$ hadoop version 
Hadoop 0.20.2-cdh3u0
Subversion  -r 
Compiled by diego on Sun May  1 15:42:11 PDT 2011
From source with checksum 
hadoop fs –ls hdfs://hadoopmaster/data/paramesh/
…<bunch of files>…

hadoop distcp  hdfs://hadoopmaster/data/paramesh/ s3://<id>:<key>@paramesh-test/
$ ./s3cmd-1.1.0-beta3/s3cmd ls s3://paramesh-test

                       DIR   s3://paramesh-test//
                       DIR   s3://paramesh-test/test/
2012-05-10 02:20         0   s3://paramesh-test/block_-1067032400066050484
2012-05-10 02:20      8953   s3://paramesh-test/block_-183772151151054731
2012-05-10 02:20     11209   s3://paramesh-test/block_-2049242382445148749
2012-05-10 01:40      1916   s3://paramesh-test/block_-5404926129840434651
2012-05-10 01:40      8953   s3://paramesh-test/block_-6515202635859543492
2012-05-10 02:20     48051   s3://paramesh-test/block_1132982570595970987
2012-05-10 01:40     48052   s3://paramesh-test/block_3632190765594848890
2012-05-10 02:20      1160   s3://paramesh-test/block_363439138801598558
2012-05-10 01:40      1160   s3://paramesh-test/block_3786390805575657892
2012-05-10 01:40     11876   s3://paramesh-test/block_4393980661686993969

您应该使用 s3n 而不是 s3。

s3n 是本机文件系统实现(即常规文件),使用 s3 在文件上强加 hdfs 块结构,因此如果不通过 h​​dfs 库就无法真正读取它们。

Thus:

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

从 HDFS 到 Amazon S3 的 Hadoop distcp 问题 的相关文章

随机推荐

  • Spark 和 AWS S3 连接错误:无法通过 Spark-shell 从 S3 位置读取文件

    在下面的 Spark shell 中 我尝试连接到 S3 并加载文件以创建数据帧 spark shell packages com databricks spark csv 2 10 1 5 0 scala gt val sqlContex
  • 哪个 ORM 支持这个

    我有一个可选的查询部分 需要在特定条件下执行 这是示例代码 int cat 1 int UserID 12 string qry select from articles if cat gt 0 qry where categoryID c
  • 如何仅在特定 API 级别上执行代码

    例如 这段代码 if Build VERSION SDK INT gt Build VERSION CODES GINGERBREAD myCalendarView setOnDateChangeListener new OnDateCha
  • 如何向 CMFCPopupMenu 添加图标?

    我想用CMFCPopupMenu用于右键单击期间的弹出菜单 如何添加图标CMFCPopupMenu 这是我在基本 MFC 应用程序中尝试的示例代码 CMFCPopupMenu TestCMFCPopMenu new CMFCPopupMen
  • str在 data.frame 中按行分割并按列分配结果

    所以我有数据框 dat data frame x c Sir Lancelot the Brave King Arthur The Black Knight The Rabbit stringsAsFactors F gt dat x 1
  • Java 8 Streams:将对象列表转换为一组对象

    我正在尝试将对象列表转换为一组对象 以确保集合中是否不存在重复项 我正在尝试使用 Streams 我有一个类产品如下 class Product int id String name float price public Product i
  • 模拟通过实例使用的类方法

    我正在尝试使用模拟修补类方法 如所述在文档中 http www voidspace org uk python mock patch html patch Mock 对象本身工作正常 但它的方法却不能 例如 它们的属性如下call coun
  • 从 Delphi 将列表导出到 OpenOffice Calc

    我正在使用 Delphi 7 我想使用自动化而不是使用文件将列表内容从我的程序导出到 OpenOffice Calc 任务很简单 创建新文档 迭代行 列并更改单元格数据 我找到了一些代码 但它并不完整 我希望有人有一些示例代码可以完成这个非
  • 将 Python 安装到自托管 Windows 构建代理

    我已经安装了 Windows 代理 并且需要能够运行 Python 脚本 我知道我需要安装Python 但我不知道如何安装 我将标准安装中的 Python 文件添加到 AGENT TOOLSDIRECTORY Python 3 8 2 x6
  • Swift 的 Facebook 登录按钮

    在 Xcode 中 如果我创建一个UIView然后将自定义类添加为FBSDKLoginButton 当我单击时 它会引导我完成 Facebook 登录 然后返回到与FBSDKLoginButton但不是说登录按钮 而是说现在注销 当单击登录
  • 使用装饰器恢复生成器

    让我们有一个类 它的功能有时会失败 但经过一些操作后它就可以完美地工作 现实生活中的例子是 Mysql 查询 它会引发 mysql exceptions OperationalError 2006 MySQL server has gone
  • 终止递归调用

    据我所知 terminate 当异常处理出现问题时被调用 通常只是没有被捕获 我得到的只是一个错误行terminate called recursively 经过一段时间的谷歌搜索后 我发现了很多例子 terminate called af
  • 如何在 Visual Studio 中将 .NET Framework 更改为 .NET Standard/Core?

    我在 Visual Studio 中有一个 C 解决方案 它最初是在 NET Framework 中创建的 我想将项目转换为 NET Standard Core 如果我进入项目 gt 属性 我会看到附加的屏幕 其中目标框架是 NET Fra
  • 我应该如何解释 ghc 堆分析器的输出?

    我有一个在 haskell 中实现的服务器进程 它充当一个简单的内存数据库 客户端进程可以连接然后添加和检索数据 该服务使用的内存比我预期的要多 我正在尝试找出原因 我拥有的最粗略的指标是linux top 当我启动该过程时 我看到一个大小
  • SeekBar minHeight 和 maxHeight 通过代码

    有谁知道如何设置最小值和最大值SeekBar代码的高度 我想重现与以下 XML 摘录相同的行为
  • 在地图上显示线串的方向 - 自动缩放地图

    我有这段代码 它在地图上绘制一个线串 它是用户提供的 2 个坐标点的轨迹 public class Quickstart public static void main String args throws Exception displa
  • 使用 std 算法将容器分区/批量/分块为大小相等的块

    我遇到过一种情况 我必须将一组记录批量处理到数据库中 我想知道如何才能做到这一点标准算法 给定 10002 条记录 我希望将其划分为 100 条记录的 bin 进行处理 其余为 2 条记录的 bin 希望下面的代码能够更好地说明我想要完成的
  • 强制浏览器将下载的文件保存在特定位置

    我的项目是一个Asp Net MVC4Web应用程序 目前它有一个方法来生成文本文件并将其发送到客户端的浏览器进行下载 我需要修改它以强制浏览器将文件保存在客户端计算机上的自定义 预定义 位置 这是不可能的 因为这会带来严重的安全问题 用户
  • 根据 URL 参数选择下拉菜单 - PHP 还是 jQuery?

    根据 URL 参数为我的表单选择输出 选定 的最佳方法是什么 在我的 URL 中 我可能有这个参数 term retail 我如何告诉下面的代码选择零售选项
  • 从 HDFS 到 Amazon S3 的 Hadoop distcp 问题

    我正在尝试使用以下方法将数据从 HDFS 移动到 S3distcp The distcp作业似乎成功了 但在 S3 上 文件未正确创建 有两个问题 文件名和路径不会被复制 所有文件最终都为block