Spring-xd Stream正在向HDFS写入空文件



所以我在看Jason Bell写的这本面向开发人员的机器学习手册。在我不得不将spring-xd流连接到hadoop之前,我在这本书中走了很远。我正在运行spring-xd 1.2.1,我正在运行hadoop(1.2.1和2.6.0,我都尝试过),这是在端口9000上。在本教程中,我们应该使用twitter流并将其管道到hadoop中的一个文件,但是当我创建并部署这个流时,它创建的文件并没有填充tweet。现在,为了让事情更简单,我想通过创建这个流

将流连接到hdfs

stream create——name ticks——definition "time | hdfs"——deploy

应该将日期管道传输到/xd/ticktock/ticktock-0.txt.tmp中的文件,但是,当我尝试使用命令

hadoop fs cat/xd/ticktok/ticktok -0.txt.tmp

它没有产生任何东西,让我假设没有数据到达它。我确实在这个流上放了一个tap,并将其运行到一个本地文件。在那个文件中,它正确地记录了时间,所以我知道我的流正在执行正确的函数并产生输出,只是由于某种原因没有到达hadoop。

它将在hadoop中创建文件,所以hadoop并没有完全忽略流,它只是在文件中没有为它创建任何内容。

我确实发现有人和我有同样的问题,他们的vm网络到。NET或其他东西,但我没有使用vmbox。

我已尝试将文件夹xd更改为777,我已经确保不用密码就可以ssh到我的本地机器,我已经确保我的hadoop集群中有一个数据节点在运行,我将创建的文件放入hdfs中,然后在spring-xd shell和常规终端中对其运行cat命令,从而确保cat功能可以工作。

我很不幸地不知所措,在这种情况下有人能帮我吗?

如果您需要任何关于我的hadoop集群或spring-xd设置的信息,请告诉我,我仍然是这些技术的新手。

  1. 你可以看到文件在hdfs sink一旦你销毁流。

    2。同时,滚动:即使流是活动的,一旦存储的数据大小超过1G(默认值),Spring XD会将1G的内容滚动到HDFS文件中,并创建一个新的tmp文件,并将当前的时间值存储在其中。

谢谢S.Satish

好了,我修复了它,由于某种原因,我重新阅读了错误消息,看到没有数据节点再次运行。我重新启动了haoop,但这次是在2.6.0中,然后运行了几秒钟的测试流,然后销毁了它。果然起了作用。感谢Satish Srinivasan,我不知道流在阅读之前必须删除

相关内容

  • 没有找到相关文章

最新更新