问题标签 [s3distcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
297 浏览

apache-spark - 如何使用 spark、s3Distcp 和 aws EMR 从一个 s3 位置读取大型数据集并将其重新分区到另一个位置

我正在尝试将 s3 中的数据移动到静止时(源)上的日期字符串分区的另一个位置,在该位置它在静止时(目标)分区为 year=yyyy/month=mm/day=dd/

虽然我能够读取 Spark 中的整个源位置数据并在 tmp hdfs 中以目标格式对其进行分区,但 s3DistCp 无法将其从 hdfs 复制到 s3。它因 OutOnMemory 错误而失败。

我正在尝试编写近 200 万个小文件(每个 20KB)

我的 s3Distcp 使用以下参数运行 sudo -H -u hadoop nice -10 bash -c "if hdfs dfs -test -d hdfs:///<source_path>; then /usr/lib/hadoop/bin/hadoop jar /usr/share/aws/emr/s3-dist-cp/lib/s3-dist-cp.jar -libjars /usr/share/aws/emr/s3-dist-cp/lib/ -Dmapreduce.job.reduces=30 -Dmapreduce.child.java.opts=Xmx2048m --src hdfs:///<source_path> --dest s3a://<destination_path> --s3ServerSideEncryption;fi"

它失败了

0 投票
0 回答
326 浏览

java - 使用 hadoop 纱线运行 distcp java 作业

我想使用 java 代码将 hdfs 中存在的文件复制到 s3 存储桶。我的 java 代码实现如下所示:

现在这段代码运行良好,但问题是它没有在纱线集群上启动 distcp 作业。它会启动本地作业运行程序,因为它会在大文件副本的情况下超时。

请帮助我了解如何配置纱线配置,以便 distcp 作业在集群上运行而不是在本地运行

0 投票
0 回答
127 浏览

amazon-web-services - EMR 上的 s3-dist-cp 是否使用 EMR 一致视图元数据?

在运行一些 Hive 查询时,我在 EMR 上使用 EMR 一致视图功能。

现在我需要使用 s3-dist-cp 绕过 Hive 接口直接从 s3 访问和复制对象,该接口使用存储在 DynamoDB 中的 EMRFS 一致视图元数据。

当我查找 s3-distp-cp 或其他资源的官方文档时,我没有找到明确的答案。

根据 2017 年夏季的线程,s3-dist-cp 缺乏对 EMR 一致视图功能的支持。

  1. 目前,EMR 版本上的 s3-dist-cp 并未完全使用 EMRFS,并且具有直接使用 aws-java-sdk 的代码。这样做的原因是,在某些情况下,这将比直接使用 EMRFS 提供性能改进。我们已经努力在 s3-dist-cp 中增加 EMRFS 的使用,但还没有。因此,此时,我建议尝试使用 DistCp。

https://forums.aws.amazon.com/thread.jspa?messageID=787883

2020年有什么变化吗?

0 投票
0 回答
44 浏览

hadoop - 推测执行如何影响 s3-dist-cp 作业?

我注意到由于“慢节点”问题,有时 s3-dist-cp 需要比平时更长的时间。在火花的情况下,我启用了推测执行,它工作正常。但是,当谈到 s3-dist-cp 时,我想先了解可能的影响。

在常规 dist-cp 的情况下,我发现(链接:https ://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html#MapReduce_and_other_side-effects ):

我知道 s3-dist-cp 是一项完全独立的工作,但我想知道是否有任何警告。我找不到任何相关文档。

感谢您的任何建议!

0 投票
2 回答
45 浏览

hadoop - 如何在特定日期后获取所有配置单元文件以进行 s3 上传(python)

我正在编写一个程序,每天将我们所有配置单元表从特定数据库上传到 s3。然而,这个数据库包含许多年前的记录,对于完整的副本/distcp 来说太大了。

我想在 HDFS 中搜索包含 db 的整个目录,并且只获取 last_modified_date 在指定(输入)日期之后的文件

然后我会将这些匹配文件的完整 distcp 到 s3。(如果我需要将匹配文件的路径/名称复制到一个单独的文件中,然后从这个额外的文件中复制 distcp,那也可以。)

在网上看,我发现我可以使用-t标志按文件的最后修改日期对文件进行排序,所以我从这样的东西开始:hdfs dfs -ls -R -t <path_to_db>,但这还不够。它正在打印 500000 个文件,我仍然需要弄清楚如何修剪这些输入日期之前的文件......

编辑:我正在编写一个 Python 脚本,很抱歉最初没有澄清!

编辑pt2:我应该注意我需要遍历几千个,甚至几十万个文件。我已经编写了一个基本脚本来尝试解决我的问题,但是运行它需要非常长的时间。需要一种方法来加快进程....

0 投票
1 回答
26 浏览

amazon-web-services - 如何重现使用 s3DistCp 复制的 gzip 文件的校验和(从 Google Cloud Storage 到 AWS S3)

我使用 s3DistCp(如这篇 AWS 文章所述)将大量 gzip 文件从 Google Cloud Storage 复制到 AWS 的 S3 。当我尝试比较文件的校验和时,它们不同(md5/sha-1/sha-256 有同样的问题)。

如果我比较几个文件(diff或另一个校验和)的大小(字节)或解压缩内容,它们匹配。(在这种情况下,我正在比较通过从 Google 直接拉下的gsutil文件与从 S3 拉下我的 distcp 文件)。

使用file,我确实看到了两者之间的区别:

我的目标/问题:

我的目标是验证我下载的文件是否与原始文件的校验和匹配,但我不想直接在 Google 上重新下载或分析文件。我可以对我的 s3 存储文件做些什么来重现原始校验和吗?

我尝试过的事情:

使用不同的压缩重新压缩: 虽然我不希望 s3DistCp 更改原始文件的压缩,但这是我重新压缩的尝试:

0 投票
1 回答
19 浏览

python - 一个 distcp 命令将多个文件上传到 s3(无目录)

我目前正在使用 Hadoop/HDFS 的 s3a 适配器,以允许我将许多文件从 Hive 数据库上传到特定的 s3 存储桶。我越来越紧张,因为我在网上找不到任何关于通过 distcp指定一堆文件路径(而不是目录)进行复制的信息。

我已经设置我的程序使用函数收集文件路径数组,将它们全部注入 distcp 命令,然后运行命令:

这基本上只是创建了一个具有 15-20 个不同文件路径的长 distcp 命令。这行得通吗?我应该使用-cpor-put命令而不是distcp

(当我可以直接复制它们并跳过这些步骤时,将所有这些文件复制到他们自己的目录然后对整个目录进行 distcp 对我来说没有意义......)