http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java index a5a40f1..b2dc600 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java @@ -43,10 +43,12 @@ import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.source.JvmMetrics; import org.apache.hadoop.metrics2.util.MBeans; import org.apache.hadoop.security.SecurityUtil; +import org.apache.hadoop.tracing.TraceUtils; import org.apache.hadoop.util.DiskChecker; import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; +import org.apache.htrace.core.Tracer; import org.mortbay.util.ajax.JSON; import com.google.common.base.Preconditions; @@ -69,6 +71,7 @@ public class JournalNode implements Tool, Configurable, JournalNodeMXBean { private ObjectName journalNodeInfoBeanName; private String httpServerURI; private File localDir; + Tracer tracer; static { HdfsConfiguration.init(); @@ -105,6 +108,11 @@ public class JournalNode implements Tool, Configurable, JournalNodeMXBean { this.localDir = new File( conf.get(DFSConfigKeys.DFS_JOURNALNODE_EDITS_DIR_KEY, DFSConfigKeys.DFS_JOURNALNODE_EDITS_DIR_DEFAULT).trim()); + if (this.tracer == null) { + this.tracer = new Tracer.Builder("JournalNode"). + conf(TraceUtils.wrapHadoopConf("journalnode.htrace", conf)). + build(); + } } private static void validateAndCreateJournalDir(File dir) throws IOException { @@ -203,6 +211,10 @@ public class JournalNode implements Tool, Configurable, JournalNodeMXBean { MBeans.unregister(journalNodeInfoBeanName); journalNodeInfoBeanName = null; } + if (tracer != null) { + tracer.close(); + tracer = null; + } } /** @@ -326,5 +338,4 @@ public class JournalNode implements Tool, Configurable, JournalNodeMXBean { public Long getJournalCTime(String journalId) throws IOException { return getOrCreateJournal(journalId).getJournalCTime(); } - }
http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeRpcServer.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeRpcServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeRpcServer.java index 16fe6b3..6c0783a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeRpcServer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeRpcServer.java @@ -85,6 +85,7 @@ class JournalNodeRpcServer implements QJournalProtocol { CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION, false)) { server.refreshServiceAcl(confCopy, new HDFSPolicyProvider()); } + this.server.setTracer(jn.tracer); } void start() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java index d7e62bb..816eec4 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java @@ -47,9 +47,8 @@ import org.apache.hadoop.io.ReadaheadPool.ReadaheadRequest; import org.apache.hadoop.io.nativeio.NativeIO; import org.apache.hadoop.net.SocketOutputStream; import org.apache.hadoop.util.DataChecksum; -import org.apache.htrace.Sampler; -import org.apache.htrace.Trace; -import org.apache.htrace.TraceScope; +import org.apache.htrace.core.Sampler; +import org.apache.htrace.core.TraceScope; import static org.apache.hadoop.io.nativeio.NativeIO.POSIX.POSIX_FADV_DONTNEED; import static org.apache.hadoop.io.nativeio.NativeIO.POSIX.POSIX_FADV_SEQUENTIAL; @@ -708,8 +707,8 @@ class BlockSender implements java.io.Closeable { */ long sendBlock(DataOutputStream out, OutputStream baseStream, DataTransferThrottler throttler) throws IOException { - TraceScope scope = - Trace.startSpan("sendBlock_" + block.getBlockId(), Sampler.NEVER); + TraceScope scope = datanode.tracer. + newScope("sendBlock_" + block.getBlockId()); try { return doSendBlock(out, baseStream, throttler); } finally { http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java index 337706e..2646089 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java @@ -187,12 +187,13 @@ import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod; import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.TokenIdentifier; -import org.apache.hadoop.tracing.SpanReceiverHost; import org.apache.hadoop.tracing.SpanReceiverInfo; import org.apache.hadoop.tracing.TraceAdminPB.TraceAdminService; import org.apache.hadoop.tracing.TraceAdminProtocol; import org.apache.hadoop.tracing.TraceAdminProtocolPB; import org.apache.hadoop.tracing.TraceAdminProtocolServerSideTranslatorPB; +import org.apache.hadoop.tracing.TraceUtils; +import org.apache.hadoop.tracing.TracerConfigurationManager; import org.apache.hadoop.util.Daemon; import org.apache.hadoop.util.DiskChecker; import org.apache.hadoop.util.DiskChecker.DiskErrorException; @@ -202,6 +203,7 @@ import org.apache.hadoop.util.ServicePlugin; import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.Time; import org.apache.hadoop.util.VersionInfo; +import org.apache.htrace.core.Tracer; import org.mortbay.util.ajax.JSON; import com.google.common.annotations.VisibleForTesting; @@ -286,6 +288,8 @@ public class DataNode extends ReconfigurableBase public static final Log METRICS_LOG = LogFactory.getLog("DataNodeMetricsLog"); + private static final String DATANODE_HTRACE_PREFIX = "datanode.htrace."; + /** * Use {@link NetUtils#createSocketAddr(String)} instead. */ @@ -365,11 +369,18 @@ public class DataNode extends ReconfigurableBase private boolean isPermissionEnabled; private String dnUserName = null; - private SpanReceiverHost spanReceiverHost; + final Tracer tracer; + private final TracerConfigurationManager tracerConfigurationManager; private static final int NUM_CORES = Runtime.getRuntime() .availableProcessors(); private static final double CONGESTION_RATIO = 1.5; + private static Tracer createTracer(Configuration conf) { + return new Tracer.Builder("DataNode"). + conf(TraceUtils.wrapHadoopConf(DATANODE_HTRACE_PREFIX , conf)). + build(); + } + private long[] oobTimeouts; /** timeout value of each OOB type */ private ScheduledThreadPoolExecutor metricsLoggerTimer; @@ -381,6 +392,9 @@ public class DataNode extends ReconfigurableBase @InterfaceAudience.LimitedPrivate("HDFS") DataNode(final Configuration conf) { super(conf); + this.tracer = createTracer(conf); + this.tracerConfigurationManager = + new TracerConfigurationManager(DATANODE_HTRACE_PREFIX, conf); this.fileDescriptorPassingDisabledReason = null; this.maxNumberOfBlocksToLog = 0; this.confVersion = null; @@ -401,6 +415,9 @@ public class DataNode extends ReconfigurableBase final List<StorageLocation> dataDirs, final SecureResources resources) throws IOException { super(conf); + this.tracer = createTracer(conf); + this.tracerConfigurationManager = + new TracerConfigurationManager(DATANODE_HTRACE_PREFIX, conf); this.blockScanner = new BlockScanner(this, conf); this.lastDiskErrorCheck = 0; this.maxNumberOfBlocksToLog = conf.getLong(DFS_MAX_NUM_BLOCKS_TO_LOG_KEY, @@ -1137,9 +1154,6 @@ public class DataNode extends ReconfigurableBase this.dnConf = new DNConf(conf); checkSecureConfig(dnConf, conf, resources); - this.spanReceiverHost = - SpanReceiverHost.get(conf, DFSConfigKeys.DFS_SERVER_HTRACE_PREFIX); - if (dnConf.maxLockedMemory > 0) { if (!NativeIO.POSIX.getCacheManipulator().verifyCanMlock()) { throw new RuntimeException(String.format( @@ -1821,9 +1835,6 @@ public class DataNode extends ReconfigurableBase MBeans.unregister(dataNodeInfoBeanName); dataNodeInfoBeanName = null; } - if (this.spanReceiverHost != null) { - this.spanReceiverHost.closeReceivers(); - } if (shortCircuitRegistry != null) shortCircuitRegistry.shutdown(); LOG.info("Shutdown complete."); synchronized(this) { @@ -1832,6 +1843,7 @@ public class DataNode extends ReconfigurableBase // Notify the main thread. notifyAll(); } + tracer.close(); } @@ -2264,6 +2276,7 @@ public class DataNode extends ReconfigurableBase if (localDataXceiverServer != null) { localDataXceiverServer.start(); } + ipcServer.setTracer(tracer); ipcServer.start(); startPlugins(conf); } @@ -3262,19 +3275,19 @@ public class DataNode extends ReconfigurableBase @Override public SpanReceiverInfo[] listSpanReceivers() throws IOException { checkSuperuserPrivilege(); - return spanReceiverHost.listSpanReceivers(); + return tracerConfigurationManager.listSpanReceivers(); } @Override public long addSpanReceiver(SpanReceiverInfo info) throws IOException { checkSuperuserPrivilege(); - return spanReceiverHost.addSpanReceiver(info); + return tracerConfigurationManager.addSpanReceiver(info); } @Override public void removeSpanReceiver(long id) throws IOException { checkSuperuserPrivilege(); - spanReceiverHost.removeSpanReceiver(id); + tracerConfigurationManager.removeSpanReceiver(id); } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java index 665432e..b5d8f4f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiver.java @@ -126,7 +126,7 @@ class DataXceiver extends Receiver implements Runnable { private DataXceiver(Peer peer, DataNode datanode, DataXceiverServer dataXceiverServer) throws IOException { - + super(datanode.tracer); this.peer = peer; this.dnConf = datanode.getDnConf(); this.socketIn = peer.getInputStream(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java index 565555e..19c6415 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java @@ -71,13 +71,15 @@ import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.authorize.RefreshAuthorizationPolicyProtocol; import org.apache.hadoop.tools.GetUserMappingsProtocol; -import org.apache.hadoop.tracing.SpanReceiverHost; import org.apache.hadoop.tracing.TraceAdminProtocol; +import org.apache.hadoop.tracing.TraceUtils; +import org.apache.hadoop.tracing.TracerConfigurationManager; import org.apache.hadoop.util.ExitUtil.ExitException; import org.apache.hadoop.util.GenericOptionsParser; import org.apache.hadoop.util.JvmPauseMonitor; import org.apache.hadoop.util.ServicePlugin; import org.apache.hadoop.util.StringUtils; +import org.apache.htrace.core.Tracer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -318,6 +320,8 @@ public class NameNode implements NameNodeStatusMXBean { public static final HAState ACTIVE_STATE = new ActiveState(); public static final HAState STANDBY_STATE = new StandbyState(); + private static final String NAMENODE_HTRACE_PREFIX = "namenode.htrace."; + public static final Log MetricsLog = LogFactory.getLog("NameNodeMetricsLog"); @@ -345,7 +349,8 @@ public class NameNode implements NameNodeStatusMXBean { private JvmPauseMonitor pauseMonitor; private ObjectName nameNodeStatusBeanName; - SpanReceiverHost spanReceiverHost; + protected final Tracer tracer; + protected final TracerConfigurationManager tracerConfigurationManager; ScheduledThreadPoolExecutor metricsLoggerTimer; /** @@ -620,9 +625,6 @@ public class NameNode implements NameNodeStatusMXBean { startHttpServer(conf); } - this.spanReceiverHost = - SpanReceiverHost.get(conf, DFSConfigKeys.DFS_SERVER_HTRACE_PREFIX); - loadNamesystem(conf); rpcServer = createRpcServer(conf); @@ -810,8 +812,13 @@ public class NameNode implements NameNodeStatusMXBean { this(conf, NamenodeRole.NAMENODE); } - protected NameNode(Configuration conf, NamenodeRole role) - throws IOException { + protected NameNode(Configuration conf, NamenodeRole role) + throws IOException { + this.tracer = new Tracer.Builder("NameNode"). + conf(TraceUtils.wrapHadoopConf(NAMENODE_HTRACE_PREFIX, conf)). + build(); + this.tracerConfigurationManager = + new TracerConfigurationManager(NAMENODE_HTRACE_PREFIX, conf); this.conf = conf; this.role = role; setClientNamenodeAddress(conf); @@ -894,10 +901,8 @@ public class NameNode implements NameNodeStatusMXBean { MBeans.unregister(nameNodeStatusBeanName); nameNodeStatusBeanName = null; } - if (this.spanReceiverHost != null) { - this.spanReceiverHost.closeReceivers(); - } } + tracer.close(); } synchronized boolean isStopRequested() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java index 6b7e8cf..79a3773 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java @@ -417,6 +417,10 @@ class NameNodeRpcServer implements NamenodeProtocols { FSLimitException.PathComponentTooLongException.class, FSLimitException.MaxDirectoryItemsExceededException.class, UnresolvedPathException.class); + clientRpcServer.setTracer(nn.tracer); + if (serviceRpcServer != null) { + clientRpcServer.setTracer(nn.tracer); + } } /** Allow access to the client RPC server for testing */ @@ -2025,20 +2029,20 @@ class NameNodeRpcServer implements NamenodeProtocols { public SpanReceiverInfo[] listSpanReceivers() throws IOException { checkNNStartup(); namesystem.checkSuperuserPrivilege(); - return nn.spanReceiverHost.listSpanReceivers(); + return nn.tracerConfigurationManager.listSpanReceivers(); } @Override // TraceAdminProtocol public long addSpanReceiver(SpanReceiverInfo info) throws IOException { checkNNStartup(); namesystem.checkSuperuserPrivilege(); - return nn.spanReceiverHost.addSpanReceiver(info); + return nn.tracerConfigurationManager.addSpanReceiver(info); } @Override // TraceAdminProtocol public void removeSpanReceiver(long id) throws IOException { checkNNStartup(); namesystem.checkSuperuserPrivilege(); - nn.spanReceiverHost.removeSpanReceiver(id); + nn.tracerConfigurationManager.removeSpanReceiver(id); } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NamenodeFsck.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NamenodeFsck.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NamenodeFsck.java index 2dbc15a..6d40898 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NamenodeFsck.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NamenodeFsck.java @@ -81,6 +81,7 @@ import org.apache.hadoop.security.AccessControlException; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.token.Token; import org.apache.hadoop.util.Time; +import org.apache.htrace.core.Tracer; import com.google.common.annotations.VisibleForTesting; @@ -137,6 +138,8 @@ public class NamenodeFsck implements DataEncryptionKeyFactory { private boolean showReplicaDetails = false; private long staleInterval; + private Tracer tracer; + /** * True if we encountered an internal error during FSCK, such as not being * able to delete a corrupt file. @@ -199,6 +202,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory { this.staleInterval = conf.getLong(DFSConfigKeys.DFS_NAMENODE_STALE_DATANODE_INTERVAL_KEY, DFSConfigKeys.DFS_NAMENODE_STALE_DATANODE_INTERVAL_DEFAULT); + this.tracer = new Tracer.Builder("NamenodeFsck").build(); for (Iterator<String> it = pmap.keySet().iterator(); it.hasNext();) { String key = it.next(); @@ -874,6 +878,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory { setCachingStrategy(CachingStrategy.newDropBehind()). setClientCacheContext(dfs.getClientContext()). setConfiguration(namenode.conf). + setTracer(tracer). setRemotePeerFactory(new RemotePeerFactory() { @Override public Peer newConnectedPeer(InetSocketAddress addr, http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml b/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml index 0c1ad7d..f1b855e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml @@ -2428,19 +2428,10 @@ </property> <property> - <name>dfs.htrace.spanreceiver.classes</name> + <name>dfs.client.htrace.sampler.classes</name> <value></value> <description> - The class name of the HTrace SpanReceiver for the NameNode and DataNode. - </description> -</property> - -<property> - <name>dfs.client.htrace.spanreceiver.classes</name> - <value></value> - <description> - The class name of the HTrace SpanReceiver for the HDFS client. You do not - need to enable this if your client program has been modified to use HTrace. + The class names of the HTrace Samplers to use for the HDFS client. </description> </property> http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/BlockReaderTestUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/BlockReaderTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/BlockReaderTestUtil.java index 7b0ef02..ba25d97 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/BlockReaderTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/BlockReaderTestUtil.java @@ -30,6 +30,7 @@ import java.util.Random; import org.apache.commons.io.IOUtils; import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.FsTracer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.net.Peer; import org.apache.hadoop.hdfs.protocol.DatanodeID; @@ -192,6 +193,7 @@ public class BlockReaderTestUtil { setCachingStrategy(CachingStrategy.newDefaultStrategy()). setConfiguration(fs.getConf()). setAllowShortCircuitLocalReads(true). + setTracer(FsTracer.get(fs.getConf())). setRemotePeerFactory(new RemotePeerFactory() { @Override public Peer newConnectedPeer(InetSocketAddress addr, http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBlockReaderLocal.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBlockReaderLocal.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBlockReaderLocal.java index 1c43948..2d6c63a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBlockReaderLocal.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestBlockReaderLocal.java @@ -41,6 +41,7 @@ import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitCache; import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitReplica; import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm; import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; +import org.apache.hadoop.fs.FsTracer; import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.net.unix.DomainSocket; import org.apache.hadoop.net.unix.TemporarySocketDirectory; @@ -195,6 +196,7 @@ public class TestBlockReaderLocal { setShortCircuitReplica(replica). setCachingStrategy(new CachingStrategy(false, readahead)). setVerifyChecksum(checksum). + setTracer(FsTracer.get(conf)). build(); dataIn = null; metaIn = null; http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java index e627455..821d259 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java @@ -27,6 +27,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FsTracer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DataStreamer.LastExceptionInStreamer; import org.apache.hadoop.hdfs.client.impl.DfsClientConf; @@ -34,6 +35,7 @@ import org.apache.hadoop.hdfs.protocol.DatanodeInfo; import org.apache.hadoop.hdfs.protocol.ExtendedBlock; import org.apache.hadoop.hdfs.protocol.HdfsFileStatus; import org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStage; +import org.apache.htrace.core.SpanId; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; @@ -119,6 +121,7 @@ public class TestDFSOutputStream { DfsClientConf dfsClientConf = mock(DfsClientConf.class); DFSClient client = mock(DFSClient.class); when(client.getConf()).thenReturn(dfsClientConf); + when(client.getTracer()).thenReturn(FsTracer.get(new Configuration())); client.clientRunning = true; DataStreamer stream = new DataStreamer( mock(HdfsFileStatus.class), @@ -139,7 +142,7 @@ public class TestDFSOutputStream { Whitebox.getInternalState(stream, "congestedNodes"); congestedNodes.add(mock(DatanodeInfo.class)); DFSPacket packet = mock(DFSPacket.class); - when(packet.getTraceParents()).thenReturn(new long[] {}); + when(packet.getTraceParents()).thenReturn(new SpanId[] {}); dataQueue.add(packet); stream.run(); Assert.assertTrue(congestedNodes.isEmpty()); http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSPacket.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSPacket.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSPacket.java index daee608..77957bc 100755 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSPacket.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSPacket.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs; import java.util.Random; import org.apache.hadoop.hdfs.protocol.datatransfer.PacketHeader; import org.apache.hadoop.io.DataOutputBuffer; +import org.apache.htrace.core.SpanId; import org.junit.Assert; import org.junit.Test; @@ -70,24 +71,24 @@ public class TestDFSPacket { public void testAddParentsGetParents() throws Exception { DFSPacket p = new DFSPacket(null, maxChunksPerPacket, 0, 0, checksumSize, false); - long parents[] = p.getTraceParents(); + SpanId parents[] = p.getTraceParents(); Assert.assertEquals(0, parents.length); - p.addTraceParent(123); - p.addTraceParent(123); + p.addTraceParent(new SpanId(0, 123)); + p.addTraceParent(new SpanId(0, 123)); parents = p.getTraceParents(); Assert.assertEquals(1, parents.length); - Assert.assertEquals(123, parents[0]); + Assert.assertEquals(new SpanId(0, 123), parents[0]); parents = p.getTraceParents(); // test calling 'get' again. Assert.assertEquals(1, parents.length); - Assert.assertEquals(123, parents[0]); - p.addTraceParent(1); - p.addTraceParent(456); - p.addTraceParent(789); + Assert.assertEquals(new SpanId(0, 123), parents[0]); + p.addTraceParent(new SpanId(0, 1)); + p.addTraceParent(new SpanId(0, 456)); + p.addTraceParent(new SpanId(0, 789)); parents = p.getTraceParents(); Assert.assertEquals(4, parents.length); - Assert.assertEquals(1, parents[0]); - Assert.assertEquals(123, parents[1]); - Assert.assertEquals(456, parents[2]); - Assert.assertEquals(789, parents[3]); + Assert.assertEquals(new SpanId(0, 1), parents[0]); + Assert.assertEquals(new SpanId(0, 123), parents[1]); + Assert.assertEquals(new SpanId(0, 456), parents[2]); + Assert.assertEquals(new SpanId(0, 789), parents[3]); } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java index cf00405..5977dbf 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java @@ -50,6 +50,7 @@ import org.apache.hadoop.fs.CacheFlag; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FileSystemTestHelper; +import org.apache.hadoop.fs.FsTracer; import org.apache.hadoop.fs.InvalidRequestException; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.RemoteIterator; @@ -88,7 +89,6 @@ import org.apache.hadoop.util.GSet; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; -import org.apache.htrace.Sampler; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -967,7 +967,7 @@ public class TestCacheDirectives { // Uncache and check each path in sequence RemoteIterator<CacheDirectiveEntry> entries = - new CacheDirectiveIterator(nnRpc, null, Sampler.NEVER); + new CacheDirectiveIterator(nnRpc, null, FsTracer.get(conf)); for (int i=0; i<numFiles; i++) { CacheDirectiveEntry entry = entries.next(); nnRpc.removeCacheDirective(entry.getInfo().getId()); http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java index 179d50b..a84ddd0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java @@ -398,6 +398,7 @@ public class TestFsck { // Copy the non-corrupt blocks of corruptFileName to lost+found. outStr = runFsck(conf, 1, false, "/", "-move"); + FSImage.LOG.info("WATERMELON: outStr = " + outStr); assertTrue(outStr.contains(NamenodeFsck.CORRUPT_STATUS)); // Make sure that we properly copied the block files from the DataNodes @@ -1656,4 +1657,4 @@ public class TestFsck { } } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestHdfsConfigFields.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestHdfsConfigFields.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestHdfsConfigFields.java index ec0450a..1c029fe 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestHdfsConfigFields.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestHdfsConfigFields.java @@ -77,8 +77,8 @@ public class TestHdfsConfigFields extends TestConfigurationFieldsBase { // Some properties have moved to HdfsClientConfigKeys xmlPropsToSkipCompare.add("dfs.client.short.circuit.replica.stale.threshold.ms"); - // Ignore SpanReceiveHost properties - xmlPropsToSkipCompare.add("dfs.htrace.spanreceiver.classes"); - xmlPropsToSkipCompare.add("dfs.client.htrace.spanreceiver.classes"); + // Ignore HTrace properties + xmlPropsToSkipCompare.add("fs.client.htrace"); + xmlPropsToSkipCompare.add("hadoop.htrace"); } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTraceAdmin.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTraceAdmin.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTraceAdmin.java index acd0dbb..b08866b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTraceAdmin.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTraceAdmin.java @@ -21,6 +21,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hdfs.DFSConfigKeys; import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.net.unix.TemporarySocketDirectory; +import org.apache.htrace.core.Tracer; import org.junit.Assert; import org.junit.Test; @@ -58,8 +59,8 @@ public class TestTraceAdmin { public void testCreateAndDestroySpanReceiver() throws Exception { Configuration conf = new Configuration(); conf = new Configuration(); - conf.set(DFSConfigKeys.DFS_SERVER_HTRACE_PREFIX + - SpanReceiverHost.SPAN_RECEIVERS_CONF_SUFFIX, ""); + conf.set(TraceUtils.DEFAULT_HADOOP_PREFIX + + Tracer.SPAN_RECEIVER_CLASSES_KEY, ""); MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build(); cluster.waitActive(); @@ -74,12 +75,12 @@ public class TestTraceAdmin { Assert.assertEquals("ret:0, Added trace span receiver 1 with " + "configuration dfs.htrace.local-file-span-receiver.path = " + tracePath + NEWLINE, runTraceCommand(trace, "-add", "-host", getHostPortForNN(cluster), - "-class", "org.apache.htrace.impl.LocalFileSpanReceiver", + "-class", "org.apache.htrace.core.LocalFileSpanReceiver", "-Cdfs.htrace.local-file-span-receiver.path=" + tracePath)); String list = runTraceCommand(trace, "-list", "-host", getHostPortForNN(cluster)); Assert.assertTrue(list.startsWith("ret:0")); - Assert.assertTrue(list.contains("1 org.apache.htrace.impl.LocalFileSpanReceiver")); + Assert.assertTrue(list.contains("1 org.apache.htrace.core.LocalFileSpanReceiver")); Assert.assertEquals("ret:0, Removed trace span receiver 1" + NEWLINE, runTraceCommand(trace, "-remove", "1", "-host", getHostPortForNN(cluster))); http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java index 5b365ba..7d71441 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java @@ -17,50 +17,72 @@ */ package org.apache.hadoop.tracing; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.List; +import java.util.Map; import org.apache.commons.lang.RandomStringUtils; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.FsTracer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.hdfs.client.HdfsClientConfigKeys; -import org.apache.htrace.Sampler; -import org.apache.htrace.Span; -import org.apache.htrace.Trace; -import org.apache.htrace.TraceScope; +import org.apache.htrace.core.Sampler; +import org.apache.htrace.core.Span; +import org.apache.htrace.core.TraceScope; +import org.apache.htrace.core.Tracer; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.List; -import java.util.Map; public class TestTracing { - - private static Configuration conf; private static MiniDFSCluster cluster; private static DistributedFileSystem dfs; + private Tracer prevTracer; + + private final static Configuration TRACING_CONF; + private final static Configuration NO_TRACING_CONF; + + static { + NO_TRACING_CONF = new Configuration(); + NO_TRACING_CONF.setLong("dfs.blocksize", 100 * 1024); + + TRACING_CONF = new Configuration(NO_TRACING_CONF); + TRACING_CONF.set(CommonConfigurationKeys.FS_CLIENT_HTRACE_PREFIX + + Tracer.SPAN_RECEIVER_CLASSES_KEY, + SetSpanReceiver.class.getName()); + TRACING_CONF.set(CommonConfigurationKeys.FS_CLIENT_HTRACE_PREFIX + + Tracer.SAMPLER_CLASSES_KEY, "AlwaysSampler"); + } + @Test public void testTracing() throws Exception { // write and read without tracing started String fileName = "testTracingDisabled.dat"; writeTestFile(fileName); - Assert.assertTrue(SetSpanReceiver.size() == 0); + Assert.assertEquals(0, SetSpanReceiver.size()); readTestFile(fileName); - Assert.assertTrue(SetSpanReceiver.size() == 0); + Assert.assertEquals(0, SetSpanReceiver.size()); - writeWithTracing(); - readWithTracing(); + writeTestFile("testReadTraceHooks.dat"); + + FsTracer.clear(); + Tracer tracer = FsTracer.get(TRACING_CONF); + writeWithTracing(tracer); + readWithTracing(tracer); } - public void writeWithTracing() throws Exception { + private void writeWithTracing(Tracer tracer) throws Exception { long startTime = System.currentTimeMillis(); - TraceScope ts = Trace.startSpan("testWriteTraceHooks", Sampler.ALWAYS); + TraceScope ts = tracer.newScope("testWriteTraceHooks"); writeTestFile("testWriteTraceHooks.dat"); long endTime = System.currentTimeMillis(); ts.close(); @@ -107,7 +129,8 @@ public class TestTracing { }; for (String desc : spansInTopTrace) { for (Span span : map.get(desc)) { - Assert.assertEquals(ts.getSpan().getTraceId(), span.getTraceId()); + Assert.assertEquals(ts.getSpan().getSpanId().getHigh(), + span.getSpanId().getHigh()); } } @@ -120,12 +143,10 @@ public class TestTracing { SetSpanReceiver.clear(); } - public void readWithTracing() throws Exception { - String fileName = "testReadTraceHooks.dat"; - writeTestFile(fileName); + private void readWithTracing(Tracer tracer) throws Exception { long startTime = System.currentTimeMillis(); - TraceScope ts = Trace.startSpan("testReadTraceHooks", Sampler.ALWAYS); - readTestFile(fileName); + TraceScope ts = tracer.newScope("testReadTraceHooks"); + readTestFile("testReadTraceHooks.dat"); ts.close(); long endTime = System.currentTimeMillis(); @@ -150,7 +171,11 @@ public class TestTracing { // There should only be one trace id as it should all be homed in the // top trace. for (Span span : SetSpanReceiver.getSpans()) { - Assert.assertEquals(ts.getSpan().getTraceId(), span.getTraceId()); + System.out.println(span.toJson()); + } + for (Span span : SetSpanReceiver.getSpans()) { + Assert.assertEquals(ts.getSpan().getSpanId().getHigh(), + span.getSpanId().getHigh()); } SetSpanReceiver.clear(); } @@ -185,18 +210,9 @@ public class TestTracing { } } - @BeforeClass - public static void setup() throws IOException { - conf = new Configuration(); - conf.setLong("dfs.blocksize", 100 * 1024); - conf.set(HdfsClientConfigKeys.DFS_CLIENT_HTRACE_PREFIX + - SpanReceiverHost.SPAN_RECEIVERS_CONF_SUFFIX, - SetSpanReceiver.class.getName()); - } - @Before public void startCluster() throws IOException { - cluster = new MiniDFSCluster.Builder(conf) + cluster = new MiniDFSCluster.Builder(NO_TRACING_CONF) .numDataNodes(3) .build(); cluster.waitActive(); @@ -207,6 +223,6 @@ public class TestTracing { @After public void shutDown() throws IOException { cluster.shutdown(); + FsTracer.clear(); } - } http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracingShortCircuitLocalRead.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracingShortCircuitLocalRead.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracingShortCircuitLocalRead.java index a34748d..292c68d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracingShortCircuitLocalRead.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracingShortCircuitLocalRead.java @@ -23,6 +23,8 @@ import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.FsTracer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DFSConfigKeys; import org.apache.hadoop.hdfs.DFSTestUtil; @@ -33,9 +35,8 @@ import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.net.unix.DomainSocket; import org.apache.hadoop.net.unix.TemporarySocketDirectory; import org.apache.hadoop.util.NativeCodeLoader; -import org.apache.htrace.Sampler; -import org.apache.htrace.Trace; -import org.apache.htrace.TraceScope; +import org.apache.htrace.core.TraceScope; +import org.apache.htrace.core.Tracer; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -44,7 +45,6 @@ public class TestTracingShortCircuitLocalRead { private static Configuration conf; private static MiniDFSCluster cluster; private static DistributedFileSystem dfs; - private static SpanReceiverHost spanReceiverHost; private static TemporarySocketDirectory sockDir; static final Path TEST_PATH = new Path("testShortCircuitTraceHooks"); static final int TEST_LENGTH = 1234; @@ -64,9 +64,12 @@ public class TestTracingShortCircuitLocalRead { public void testShortCircuitTraceHooks() throws IOException { assumeTrue(NativeCodeLoader.isNativeCodeLoaded() && !Path.WINDOWS); conf = new Configuration(); - conf.set(HdfsClientConfigKeys.DFS_CLIENT_HTRACE_PREFIX + - SpanReceiverHost.SPAN_RECEIVERS_CONF_SUFFIX, + conf.set(TraceUtils.DEFAULT_HADOOP_PREFIX + + Tracer.SPAN_RECEIVER_CLASSES_KEY, SetSpanReceiver.class.getName()); + conf.set(TraceUtils.DEFAULT_HADOOP_PREFIX + + Tracer.SAMPLER_CLASSES_KEY, + "AlwaysSampler"); conf.setLong("dfs.blocksize", 100 * 1024); conf.setBoolean(HdfsClientConfigKeys.Read.ShortCircuit.KEY, true); conf.setBoolean(HdfsClientConfigKeys.Read.ShortCircuit.SKIP_CHECKSUM_KEY, false); @@ -81,7 +84,8 @@ public class TestTracingShortCircuitLocalRead { try { DFSTestUtil.createFile(dfs, TEST_PATH, TEST_LENGTH, (short)1, 5678L); - TraceScope ts = Trace.startSpan("testShortCircuitTraceHooks", Sampler.ALWAYS); + TraceScope ts = FsTracer.get(conf). + newScope("testShortCircuitTraceHooks"); FSDataInputStream stream = dfs.open(TEST_PATH); byte buf[] = new byte[TEST_LENGTH]; IOUtils.readFully(stream, buf, 0, TEST_LENGTH); http://git-wip-us.apache.org/repos/asf/hadoop/blob/892ade68/hadoop-project/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml index 293c279..fd33246 100644 --- a/hadoop-project/pom.xml +++ b/hadoop-project/pom.xml @@ -807,8 +807,8 @@ </dependency> <dependency> <groupId>org.apache.htrace</groupId> - <artifactId>htrace-core</artifactId> - <version>3.2.0-incubating</version> + <artifactId>htrace-core4</artifactId> + <version>4.0.1-incubating</version> </dependency> <dependency> <groupId>org.jdom</groupId>