Skip to content

Commit

Permalink
HADOOP-12124. Add HTrace support for FsShell (cmccabe)
Browse files Browse the repository at this point in the history
  • Loading branch information
Colin Patrick Mccabe committed Jun 30, 2015
1 parent 68e588c commit ad60807
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
2 changes: 2 additions & 0 deletions hadoop-common-project/hadoop-common/CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,13 @@
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
Expand All @@ -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]";
Expand Down Expand Up @@ -272,7 +278,8 @@ private TableListing createOptionTableListing() {
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);
Expand All @@ -284,7 +291,12 @@ public int run(String argv[]) throws Exception {
if (instance == null) {
throw new UnknownCommandException();
}
exitCode = instance.run(Arrays.copyOfRange(argv, 1, argv.length));
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) {
Expand Down

0 comments on commit ad60807

Please sign in to comment.