在我们的集群上,我们设置了动态资源池。
设置规则以便第一个纱线将查看指定的队列,然后查看用户名,然后查看主组......
但是,使用distcp我似乎无法指定队列,它只是将其设置为主组。
这就是我现在运行它的方式(不起作用):
hadoop distcp -Dmapred.job.queue.name:root.default .......
在我们的集群上,我们设置了动态资源池。
设置规则以便第一个纱线将查看指定的队列,然后查看用户名,然后查看主组......
但是,使用distcp我似乎无法指定队列,它只是将其设置为主组。
这就是我现在运行它的方式(不起作用):
hadoop distcp -Dmapred.job.queue.name:root.default .......
您在参数规范中犯了一个错误。
您不应该使用“:”来分隔键/值对。您应该使用“=”。
命令应该是
hadoop distcp -Dmapred.job.queue.name=root.default .......
-Dmapreduce.job.queuename=root.default
同样,可以指示hadoop 归档以自定义队列为目标:
hadoop archive -Dmapreduce.job.queuename='<leaf.queue.name> ...
我借此响应的机会为 hadoop 存档提供提示:因为它将为每个要创建的文件创建一个映射任务(默认情况下,目标文件大小为 2GB)。在归档数 TB 的数据时,这可能会导致数以千计的地图。
hadoop 档案的 part-* 文件的大小由未记录的 har.partfile.size 控制: 您可以通过设置一个高于 2GiB 的值(以字节为单位)来增加它-Dhar.partfile.size=<value in bytes>