Description
The original issue was the jobclient test did not send the requested resource type, when specified in the command line eg:
hadoop jar hadoop-mapreduce-client-jobclient-tests.jar sleep -Dmapreduce.reduce.resource.yarn.io/gpu=1 -m 10 -r 1 -mt 90000
After some investigation, it turned out it only affects resource types with name containing '.' characters. And the root cause is regexp from the getRequestedResourcesFromConfig method.
"^" + Pattern.quote(prefix) + "[^.]+$"
This regexp explicitly forbids any dots in the resource type name, which is inconsistent with the default resource type for gpu and fpga, which are yarn.io/gpu and yarn.io/fpga respectively.