首先,我們的要求非常簡單。當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