private void createUfsFile(UfsFileWriteRequestContext context) throws IOException { UfsFileWriteRequest request = context.getRequest(); Preconditions.checkState(request != null); Protocol.CreateUfsFileOptions createUfsFileOptions = request.getCreateUfsFileOptions(); UfsManager.UfsClient ufsClient = mUfsManager.get(createUfsFileOptions.getMountId()); CloseableResource<UnderFileSystem> ufsResource = ufsClient.acquireUfsResource(); context.setUfsResource(ufsResource); UnderFileSystem ufs = ufsResource.get(); CreateOptions createOptions = CreateOptions.defaults(ServerConfiguration.global()) .setOwner(createUfsFileOptions.getOwner()).setGroup(createUfsFileOptions.getGroup()) .setMode(new Mode((short) createUfsFileOptions.getMode())); if (createUfsFileOptions.hasAcl()) { // This acl information will be ignored by all but HDFS implementations createOptions.setAcl(ProtoUtils.fromProto(createUfsFileOptions.getAcl())); } context.setOutputStream(ufs.create(request.getUfsPath(), createOptions)); context.setCreateOptions(createOptions); String ufsString = MetricsSystem.escape(ufsClient.getUfsMountPointUri()); String counterName = Metric.getMetricNameWithTags(WorkerMetrics.BYTES_WRITTEN_UFS, WorkerMetrics.TAG_UFS, ufsString); Counter counter = MetricsSystem.counter(counterName); context.setCounter(counter); String meterName = Metric.getMetricNameWithTags(WorkerMetrics.BYTES_WRITTEN_UFS_THROUGHPUT, WorkerMetrics.TAG_UFS, ufsString); context.setMeter(MetricsSystem.meter(meterName)); } }