首先,我们的要求非常简单。当tweets进来时,我们需要做的就是坚持HDFS(定期)。使用Spark Streaming持续推文
JavaStreamingContext的'检查点'API看起来很有希望,但经过进一步的审查后,它似乎有不同的用途。 (另外,我不断收到'/ checkpoint/temp,错误:没有这样的文件或目录(2)'错误,但现在我们不必担心这个问题)。
问题:JavaDStream没有'saveAsHadoopFiles'方法 - 这是有道理的。我猜想从流式作业保存到Hadoop并不是一个好主意。
什么是推荐的方法?我应该将传入的'tweet'写入Kafka队列,然后使用诸如'Camus'(https://github.com/linkedin/camus)之类的工具推送到HDFS?
为什么从Streaming作业保存到hadoop不是一个好主意?我想这就是你真正想要的。 – maasg 2014-10-28 16:05:43
如果我们保存到HDFS,每次有消息进入时,我们的解决方案是否会扩展? Twitter每秒发送数以百万计的推文。直接将每条推文插入HDFS不会缩放!会吗? – DilTeam 2014-10-28 16:32:35
如果HDFS的写入吞吐量不能保持持续的消息写入,那么如何在另一个系统之间(如kafka)添加帮助?使用调整窗口(x秒),您可以收集足够的消息,以便在微量批次中写入HDFS。这应该是非常有效的。 – maasg 2014-10-28 16:36:57