Spark Streaming设计问题

时间:2017-11-14 13:02:20

标签: apache-spark spark-streaming apache-spark-2.0

我没有任何具体的查询,但设计问题。如果我问一个愚蠢的问题,我是新来的火花/流媒体,因此请原谅我。如果问题不适合此论坛,请删除它。

基本上我们有条件要求我们必须每小时处理大量数据并生成用于报告kibana(弹性搜索)的o / p。让我们假设我们有两个数据模型,如下所示。 DataModel-1表示使用该哈希发送推文的人的哈希标记和用户ID。第二个数据模型DataModel-2包含zip和用户如何在该zip中。 DataModel-1数据是流数据,我们每秒获得近40K事件。 DataModel-2不经常改变它。在输出中,我们需要数据,通过这些数据,我们可以看到给定zip的标记趋势。就像在给定时间中拉链一样,有多少用户在给定标签上发推文。

我有以下问题

  1. 我们可以用kafka使用火花流吗?但是我担心的是我们能够以每秒40k的进料量进行扩展。虽然我们已经开始了POC,但我们会得到答案。但只是想了解其他人的经验和调整,我们可以申请实现它。
  2. 如果我每隔1小时进行一次批处理,那么什么应该是好的数据存储,我可以保存推文然后再处理它。 Oracle和MySQL是否适合存储数据然后将其加载到spark中?或者我应该把它转储到hdfs?
  3. 除了Kibana之外,还有哪些好的报告平台?
  4.   

    DataModel-1 [{       哈希:#IAMHAPPY,       用户:[123,134,4566,78899]}]

         

    DataModel-2 [{       zip:zip1       用户:[123,134]},{       zip:zip2       用户:[4566,78899]}]

         

    报告数据模型[       {           zip:zip1,           哈希:[#IAMHAPPY]       },       {           zip:zip2,           哈希:[#IAMHAPPY]       }]

1 个答案:

答案 0 :(得分:1)

  1. 是。我认为用你的任务40K消息不是很难找到的东西。但是...
  2. 如果您要每1小时处理一次,请勿使用火花流。您可以在1小时内将数据存储到HDFS,然后使用正常的离线火花应用程序进行处理。它比使用中的流式传输更合理。
  3. 我不知道,但ELK很好。