Hadoop:为distcp指定纱线队列

Hadoop: specify yarn queue for distcp

在我们的集群上,我们设置了动态资源池。

规则设置为首先 yarn 查看指定的队列,然后是用户名,然后是主要组 ...

但是 distcp 我似乎无法指定队列,它只是将其设置为主要组。

这就是我现在 运行 的方式(不起作用):

 hadoop distcp -Dmapred.job.queue.name:root.default .......

-Dmapreduce.job.queuename=root.default

您在指定参数时犯了错误。

您不应使用“:”分隔 key/value 对。你应该使用“=”。

命令应该是

 hadoop distcp -Dmapred.job.queue.name=root.default .......

同样,可以指示 hadoop archive 以自定义队列为目标:

hadoop 存档 <strong>-Dmapreduce.job.queuename='<leaf.queue.name></strong> ...

我借此机会给 hadoop archive 一个提示: 因为它将为每个要创建的文件创建一个映射任务(默认情况下,目标文件大小为 2GB)。在归档数 TB 的数据时,这可能会导致生成数千张地图。

hadoop 档案的 part-* 文件的大小由 undocumented har.partfile.size 控制:你可以增加它使用 <strong>-Dhar.partfile.size=<value in bytes></strong>

设置高于 2GiB 的值(以字节为单位)