I created a stream named vfs-od-fe-hb
,where the source is vfs
, the processors are od
and fe
, and the sink is hb
. I want to create a tap in the postion of fe
and store the result into hdfs
.
My shell command is:
stream create --name vfs-od-fe-hb-tap-ib-hdfs --definition "tap:stream:vfs-od-fe-hb.fe > ib > hdfs" --deploy
ib
is my processor, it can handle the messages from fe
successfully, but now the wrong messages:
Command failed org.springframework.xd.rest.client.impl.SpringXDException: XD133E:(pos 34): Expected channel prefix of 'queue' or 'topic' but found 'hdfs'
If ib
is a processor, the syntax should be
tap:stream:vfs-od-fe-hb.fe > ib | hdfs
i.e. the tap (named channel) is ib
's input channel and we pipe its output as normal.
The parser is reacting to the > hdfs
because >
can only be between a named channel and processor or sink.
(or after a processor when sending to a named channel - queue:...
, topic:...
).