我正在使用HDFS接收器并写入HDFS。但是我写入 HDFS 的有效负载以 ?u000bcontent键入"文本/纯文本",尽管这不在有效负载中。 请让我知道为什么它被前缀以及如何删除它。
stream create --definition ":streaming --spring.cloud.stream.bindings.output.producer.headerMode=raw> myprocessor --spring.cloud.stream.bindings.output.content-type=text/plain --spring.cloud.stream.bindings.input.consumer.headerMode=raw|hdfs --spring.hadoop.fsUri=hdfs://127.0.0.1:50071 --hdfs.directory=/ws/sparkoutput --hdfs.file-name=sparkstream --hdfs.enable-sync=true --hdfs.flush-timeout=10000 --spring.cloud.stream.bindings.input.consumer.headerMode=raw --spring.cloud.stream.bindings.input.content-type=text/plain" --name sparkstream
如果您假设hdfs
输入的标头模式是raw
那么您也应该进行myprocessor
raw
的输出 - 即
myprocessor --spring.cloud.stream.bindings.output.content-type=text/plain --spring.cloud.stream.bindings.input.consumer.headerMode=raw --spring.cloud.stream.bindings.output.producer.headerMode=raw
或者,您应该删除hdfs
上的标头设置(因为接收器将只处理有效负载)。