The cascading.operation.Debug
function is a
utility function (actually, it's a Filter
) that
prints the current argument Tuple to either stdout
or
stderr
. Used with one of the
DebugLevel
enum values
(NONE
, DEFAULT
, or
VERBOSE
), different debug levels can be embedded
in a pipe assembly.
The example below inserts a Debug
operation
at the VERBOSE
level, but configures the planner
to remove all Debug
operations from the resulting
Flow
.
Pipe assembly = new Pipe( "assembly" );
// ...
assembly = new Each( assembly, DebugLevel.VERBOSE, new Debug() );
// ...
// head and tail have same name
FlowDef flowDef = new FlowDef()
.setName( "debug" )
.addSource( "assembly", source )
.addSink( "assembly", sink )
.addTail( assembly );
// tell the planner to remove all Debug operations
flowDef
.setDebugLevel( DebugLevel.NONE );
// ...
FlowConnector flowConnector = new HadoopFlowConnector();
Flow flow = flowConnector.connect( flowDef );
Note that if the above Flow is run on a cluster, the
stdout
on the cluster nodes will be used. Nothing from the
debug output will display on the client side. Debug is only useful when
testing things in an IDE or if the remote logs are readily
available.
Copyright © 2007-2012 Concurrent, Inc. All Rights Reserved.