Spring-xd Stream正在将空文件写入我的HDFS

时间:2015-08-09 06:36:24

标签: spring hadoop stream spring-xd

所以我正在关注这本书,为Jason Bell编写的开发人员提供机器学习。我在这本书中走得很远,直到我必须将我的spring-xd流连接到hadoop。我正在运行spring-xd 1.2.1,我正在运行hadoop(1.2.1和2.6.0,我已经尝试了两个),这是在9000端口。在本教程中,我们应该采用一个Twitter流并管道它到hadoop中的文件,但是当我创建并部署此流时,它创建的文件没有填充推文。所以现在,为了简单起见,我现在只是通过创建这个流来尝试将流连接到hdfs,

stream create --name ticktock --definition" time | HDFS" --deploy

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

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

它没有产生任何让我假设没有数据到达它。我确实点了这个流,并将其运行到本地文件。在该文件中,它正确地记录了时间,因此我知道我的流正在执行正确的功能并产生输出,但由于某种原因它没有达到hadoop。

它将在hadoop中创建文件,因此它不像hadoop完全忽略了流,它在为它创建的文件中没有任何内容。

我确实找到了一个与我有同样问题的人,他们将他们的网络连接到NET或其他东西,但我没有使用vmbox。

我尝试将文件夹xd修改为777, 我已经确保我可以在没有密码的情况下ssh到我的本地机器, 我确保在我的hadoop集群中运行了一个数据节点, 我已经确保函数cat的工作方式是将我创建的文件放入我的hdfs,然后在spring-xd shell和常规终端上运行cat命令。

我很遗憾,在这种情况下有人可以帮助我吗?

如果您需要有关我的hadoop群集或spring-xd设置的任何信息让我知道什么,我仍然是这些技术的新手。

2 个答案:

答案 0 :(得分:0)

  1. 一旦销毁了流,就可以看到hdfs中的文件。

    2.Also, 翻转:即使流处于活动状态,一旦存储的数据大小超过 1G(默认值),Spring XD将1G内容翻转为HDFS文件,并创建一个新的tmp文件并将当前时间戳值存储在其中。

  2. 由于 S.Satish

答案 1 :(得分:0)

好的我修好了,出于某种原因,我重新阅读了该错误信息,发现没有再次运行datanode。我重新启动了haoop但是这次在2.6.0中然后运行该测试流几秒钟然后将其销毁。果然这样做了。谢谢Satish Srinivasan,我不知道在阅读之前必须删除流。