Introduce a new config property (something like yarn.service.framework.path in-line with mapreduce.application.framework.path) for YARN Service dependency tarball location. This will provide flexibility to the user/cluster-admin to upload the dependency tarball to a location of their choice. If this config property is not set, YARN Service client will default to uploading all dependency jars from the client-host's classpath for every service launch request (as it does today).
Also, accept an optional destination HDFS location for -enableFastLaunch command, to specify the location where user/cluster-admin wants to upload the tarball. If not specified, let's default it to the location we use today. The cluster-admin still needs to set yarn.service.framework.path to this default location otherwise it will not be used. So the command-line will become something like this -