【问题标题】:Unable to write streamed data to sink file using Spring cloud dataflow无法使用 Spring 云数据流将流数据写入接收文件
【发布时间】:2016-11-18 19:47:00
【问题描述】:

我正在尝试使用 shell(非 UI)使用 Spring Cloud 数据流创建数据流管道。 Source 是 twitterstream,sink 是 File。这是我为配置文件接收器所做的:

dataflow:>stream create demo --definition "twitterstream --credentials | file --dir=/opt/datastream --mode=APPEND --filename=tweets.txt"

我可以使用来自 kafka 主题的数据,但无法在上面的接收器位置写入,甚至没有创建文件。部署流时没有错误日志。最终我会将其从本地文件系统更改为 HDFS。有什么遗漏吗?

PS:我尝试了默认文件接收器(没有定义),它应该在 /tmp/xd/output 中创建默认文件,也没有发生。

【问题讨论】:

    标签: spring hadoop spring-cloud spring-cloud-dataflow


    【解决方案1】:

    在最新的1.0.0.RELEASE (GA) 版本中,以下流定义有效。

    dataflow:>stream create demo --definition "twitterstream | file --directory=/someFolder --mode=APPEND --name=demo.txt"

    有几点需要指出:

    1) twitterstream 源不支持将 --credentials 作为 OOTB 属性。见here

    2) file 接收器不支持 --filename 作为 OOTB 属性;您必须改用--name。见here

    【讨论】:

    • 你能推荐任何关于 hdfs sink 的演示吗?我没有用dataflow:>stream create demo --definition "twitterstream | hdfs --directory=hdfs://ipaddress:9000/user/result --file-name=demo 完成它。
    • 您需要使用--fs-uri=hdfs://ipaddress:9000 属性来传递NameNode URI,并且目录应该是文件夹。在你的情况下,--directory=/user/result。请关注docs
    猜你喜欢
    • 2020-01-25
    • 2019-10-22
    • 2020-01-21
    • 2018-12-13
    • 1970-01-01
    • 2017-02-11
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多