HADOOP-12124. Add HTrace support for FsShell (cmccabe)
(cherry picked from commit ad60807238
)
This commit is contained in:
parent
7c698bc350
commit
016c794e75
|
@ -168,6 +168,8 @@ Release 2.8.0 - UNRELEASED
|
|||
TestCryptoStreamsWithOpensslAesCtrCryptoCodec when OpenSSL is not
|
||||
installed. (wang)
|
||||
|
||||
HADOOP-12124. Add HTrace support for FsShell (cmccabe)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HADOOP-11785. Reduce the number of listStatus operation in distcp
|
||||
|
|
|
@ -33,8 +33,13 @@ import org.apache.hadoop.fs.shell.Command;
|
|||
import org.apache.hadoop.fs.shell.CommandFactory;
|
||||
import org.apache.hadoop.fs.shell.FsCommand;
|
||||
import org.apache.hadoop.tools.TableListing;
|
||||
import org.apache.hadoop.tracing.TraceUtils;
|
||||
import org.apache.hadoop.util.Tool;
|
||||
import org.apache.hadoop.util.ToolRunner;
|
||||
import org.apache.htrace.Sampler;
|
||||
import org.apache.htrace.SamplerBuilder;
|
||||
import org.apache.htrace.Trace;
|
||||
import org.apache.htrace.TraceScope;
|
||||
|
||||
/** Provide command line access to a FileSystem. */
|
||||
@InterfaceAudience.Private
|
||||
|
@ -47,6 +52,7 @@ public class FsShell extends Configured implements Tool {
|
|||
private FileSystem fs;
|
||||
private Trash trash;
|
||||
protected CommandFactory commandFactory;
|
||||
private Sampler traceSampler;
|
||||
|
||||
private final String usagePrefix =
|
||||
"Usage: hadoop fs [generic options]";
|
||||
|
@ -272,7 +278,8 @@ public class FsShell extends Configured implements Tool {
|
|||
public int run(String argv[]) throws Exception {
|
||||
// initialize FsShell
|
||||
init();
|
||||
|
||||
traceSampler = new SamplerBuilder(TraceUtils.
|
||||
wrapHadoopConf("dfs.shell.htrace.", getConf())).build();
|
||||
int exitCode = -1;
|
||||
if (argv.length < 1) {
|
||||
printUsage(System.err);
|
||||
|
@ -284,7 +291,12 @@ public class FsShell extends Configured implements Tool {
|
|||
if (instance == null) {
|
||||
throw new UnknownCommandException();
|
||||
}
|
||||
TraceScope scope = Trace.startSpan(instance.getCommandName(), traceSampler);
|
||||
try {
|
||||
exitCode = instance.run(Arrays.copyOfRange(argv, 1, argv.length));
|
||||
} finally {
|
||||
scope.close();
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
displayError(cmd, e.getLocalizedMessage());
|
||||
if (instance != null) {
|
||||
|
|
Loading…
Reference in New Issue