· distributed system (hdfs, hbase, etc.) htrace4-core api spanreceiver htrace-web
TRANSCRIPT
●
●
●●●●●●
●
●
○○○
●
●●●●●●
HDFS
HBase
Impala
HDFS
RecordService
Spark
Linux Linux
Hive
●●●
DataNode
DataNode
DataNode
HBase client DFSClient
NameNode
DataNode
DataNode
SLOW DataNode
HBase client DFSClient
NameNode
●
○○○○
●●
●●
○
●○ …
●○○○
●●
●
●
●●
○
●○
○
○
●●
○
●○
●
●○
●●●●
●●
●
getFileInfo
Globber#globFileSystem#createFileSystem
copyFromLocal
●○○○○
○○○○
●
●
●●
Distributed System(HDFS, HBase, etc.)
htrace4-core API
SpanReceiver
htrace-web
●
●
●
●
●
NameNode DataNode
DataNode
/local/file /local/file
/local/file
DataNode
/local/file
●
● htraced
NameNode DataNode
DataNode DataNode
●●
○○
○○
●○○
○
○
●●●
●
●
●●
●
FSClient DataNodeparent trace ID
●○○○
Tracer tracer = new Tracer.Builder("FsShell"). conf(TraceUtils.wrapHadoopConf( SHELL_HTRACE_PREFIX, getConf())).build();
●○
TraceScope piScope = tracer.newScope("calculatePi");try { calculatePi();} finally { piScope.close();}
●○Span piSpan = piScope.getSpan();if (piSpan != null) { piSpan.addKVAnnotation(“piDigits”, Integer.toString(numPiDigits));}
●○○○
Runnable myRunnable = tracer.wrap(myPiRunnable, “calculatePi”);
●○
●○
●○○
Tracer TraceScope
Span
TraceRunnableTracerPool
SpanIDSamplerowns
owns
creates
creates
creates
owns
owns
●●●
●
●
●●
●○○
○
●○○○○○
●●●●●
●
●
●●●
●●
●●●●