问题标签 [distcp]

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 投票
1 回答
4118 浏览

amazon-emr - 如何正确 EMR S3DistCp groupBy?

我正在使用 aws .net sdk 向 EMR 运行 s3distcp 作业,以使用 --groupBy arg 连接文件夹中的所有文件。但是无论我尝试过什么“groupBy”arg,它总是失败,或者只是复制文件而不连接,就像在 arg 列表中没有指定 --groupBy 一样。

该文件夹中的文件是 spark saveAsTextFiles,命名如下:

部分-0000
部分-0001
部分-0002
...
...

0 投票
2 回答
1026 浏览

loops - s3-dist-cp 和 hadoop distcp 作业在 EMR 中无限循环

我正在尝试将 193 GB 数据从 s3 复制到 HDFS。我正在为 s3-dist-cp 和 hadoop distcp 运行以下命令:

我在主节点上运行这些,并检查转移的金额。花了大约一个小时,复制过来后,所有内容都被删除了,我的集群中的 4 个核心实例中的磁盘空间显示为 99.8%,并且 hadoop 作业永远运行。一旦我运行命令,

这会立即打印,然后复制一个小时的数据。它重新开始。

我在这里错过了什么吗?任何帮助表示赞赏。

另外我想知道在哪里可以找到主节点上的日志文件以查看作业是否失败并因此循环?谢谢

0 投票
5 回答
7711 浏览

hadoop - Hdfs 到 s3 Distcp - 访问密钥

为了将文件从 HDFS 复制到 S3 存储桶,我使用了命令

但是这里可以看到访问密钥和 sectet 密钥,这是不安全的。有什么方法可以从文件中提供凭据。我不想编辑配置文件,这是我遇到的方法之一。

0 投票
1 回答
657 浏览

hadoop - 带有文件列表的 Hadoop distcp

我想使用 distcp 将文件列表(> 1K 文件)复制到 hdfs 中。我已经在本地目录中存储了文件列表,现在我可以使用 -f 复制所有文件吗?如果是,我必须在文件列表文件中维护什么格式?还是有其他更好的方法?

0 投票
2 回答
3561 浏览

hadoop - 使用 spark 跨 hadoop 集群复制数据

我有一种情况,我必须将数据/文件从 PROD 复制到 UAT(hadoop 集群)。为此,我现在正在使用'distcp'。但它需要永远。由于 distcp 在后台使用 map-reduce,有没有办法使用 spark 来加快处理速度?就像我们可以将 hive 执行引擎设置为'TEZ'(替换map-reduce)一样,我们可以将执行引擎设置为 spark fordistcp吗?或者有没有其他'spark'方法可以跨集群复制数据,甚至可能不关心 distcp?

我的第二个问题来了(假设我们可以将distcp执行引擎设置为 spark 而不是 map-reduce,否则请不要费心回答这个问题):- 据我所知,Spark 比 map-reduce 快,主要是因为它存储数据在它可能需要多次处理的内存中,这样它就不必从磁盘一直加载数据。在这里,我们正在跨集群复制数据,因此无需多次处理一个文件(或块或拆分),因为每个文件将进入内存然后将通过网络发送,被复制到目标集群磁盘,该文件的故事结束。那么如果不使用主要功能,Spark 怎么会加快处理速度呢?

0 投票
1 回答
1180 浏览

oozie - oozie distcp 作业执行

我有一个执行 distcp 操作的 oozie 工作流程。工作流文件如下:

我想使用 distcp 使用 -m 设置映射器的数量。我该怎么做?

但对我没有用。我得到的错误如下:

0 投票
0 回答
44 浏览

hadoop - 使用 MapReduce 处理后如何将数据传输到另一个集群?

我是 Hadoop 新手。我想编写一个 MR 作业,对数据进行一些处理并将结果移动到另一个集群。我知道我可以简单地更改驱动程序函数中的目标,但我认为它会按顺序而不是以分布式方式传输数据。有什么方法可以从 MR 工作中调用 DistCp 吗?

0 投票
0 回答
737 浏览

java - 使用 Distcp java API 时出现 NoSuchMethodError

我正在尝试使用 Distcp Java API 将数据从一个 hadoop 集群复制到另一个集群。

但是我收到以下异常:

我正在使用以下代码:

我正在使用 hadoop 2.7.1,并且 distcp 依赖项是这样的:

0 投票
1 回答
377 浏览

amazon-web-services - oozie distcp s3 到 s3 复制无效参数 org.jets3t.service.impl.rest.HttpException

我有一个 distcp 动作如下

我在 jceks 文件中添加了两个凭据,如下所示

s3a 凭证用于源 aws 位置,s3n 凭证用于目标。

当我运行 oozie 操作时,我得到一个异常,这是堆栈跟踪。

当我使用相同的凭据从命令行测试 distcp 时,它工作得非常好。

0 投票
1 回答
5282 浏览

hadoop - Distcp - Container is running beyond physical memory limits

I've been strugling with distcp for several days and I swear I have googled enough. Here is my use-case:

USE CASE

I have a main folder in a certain location say /hdfs/root, with a lot of subdirs (deepness is not fixed) and files.

Volume: 200,000 files ~= 30 GO

I need to copy only a subset for a client, /hdfs/root in another location, say /hdfs/dest This subset is defined by a list of absolute path that can be updated over time.

Volume: 50,000 files ~= 5 GO

You understand that I can't use a simple hdfs dfs -cp /hdfs/root /hdfs dest because it is not optimized, it will take every files, and it hasn't an -update mode.

SOLUTION POC

I ended up using hadoop distcp in two ways:

and

Algo 2 does not even start, it seems that building a diff between source and blacklist is too hard for him, so I use Algo 1, and it works.

OOZIE WORKFLOW

Know I need to schedule all the workflow in a Oozie workflow. I have put the algo 2 in a shell action, since I have a lot of distcp command and I don't master recursion or loop in oozie.

Once started, after a while, I get the following error: Container runs beyond physical memory limits. Current usage: 17.2 GB of 16 GB physical memory used

Alright then, i'm gonna add more memory :

And still I get: Container runs beyond physical memory limits. Current usage: 32.8 GB of 32 GB physical memory used But the job lived twice as long as the previous one.

The RAM on my cluster is not infinite, so I can't go further. Here are my hypothesis:

  1. A distcp job does not release memory (JVM garbage collector ?)
  2. Oozie sees the addition of all distcp jobs as the current memory usage, which is stupid
  3. This is not the right way to do this (well I know, but still)

Also, there are a lot of things I did not understand about memory management, it's pretty foggy (yarn, oozie, jvm, mapreduce).

While googling, I noticed few people are talking about real distcp use case, this post is 4 days old: https://community.hortonworks.com/articles/71775/managing-hadoop-dr-with-distcp-and-snapshots.html and explains the snapshot usage, that I can't use in my case.

I've also heard about http://atlas.incubator.apache.org that would eventually solve my problem by "tagging" files and grant access to specific users, so we can avoid copying to a certain location. My admin team is working on it, but we won't get it to production know.

I'm quite desperate. Help me.