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 的值(以字节为单位)
在我们的集群上,我们设置了动态资源池。
规则设置为首先 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>