【问题标题】:Is it okay to have multiple spark structured streaming write query (90+) in one spark jobs?在一个 Spark 作业中可以有多个 Spark 结构化流式写入查询(90+)吗?
【发布时间】:2018-12-12 23:26:18
【问题描述】:

所以我一个月前开始学习 spark 和 cassandra。我遇到了这个问题,我必须使用 spark 预先聚合来自传感器的数据,然后将其下沉到 cassandra 表。

这是我的应用流程

Sensor Data -> Kafka -> Spark Structured Streaming -> Sink to Cassandra

问题是,我需要按秒、分、时、日、月汇总数据,直到每年。这导致我在 cassandra 中创建了 90 多个聚合表。

就我的进展而言,我发现我必须使用每个聚合的一个 writestream 查询将每个聚合下沉到每个 cassandra 表,这导致我创建了这个庞大的 spark 作业,其中包含 90 多个 writestream 查询。正常吗?或者至少火花“还好”?

任何帮助表示赞赏,谢谢!

编辑。示例:

我有这个传感器可以检测网络上的网络攻击。我有这种聚合: - 每个传感器每秒/分钟/小时/天/月/年的事件计数

每秒聚合示例

Sensor  year  month    day  hour   minute   second  hit
S1      2018  8        12   3      22       45      98182
S1      2018  8        12   3      22       46      992814
...

每分钟聚合示例

Sensor  year  month    day  hour   minute    hit
S1      2018  8        12   3      22        212458182
S1      2018  8        12   3      23        5523192814

这适用于其余指标(总共 9 个指标),每个指标都有 +- 12 个聚合表 ...

【问题讨论】:

    标签: apache-spark cassandra


    【解决方案1】:

    这是一个超级通用的问题,实际上取决于您如何完成它。 但一般来说,如果你需要写入 90 个表,你不能真正避免 90 个写入流,应该没问题。但取决于OOO问题。

    不管怎样,只要它有效。

    【讨论】:

    • 那么,大量的 writestream 可以吗?还有,什么是OOO问题??
    • OOO 内存不足,spark 也是为批处理作业而构建的,所以最好用 60 个流做 1 个作业,然后用 1 个流做 60 个作业。
    【解决方案2】:

    这取决于您正在执行哪种类型的聚合。 如果您能给我们举一两个例子,那将会很有帮助。

    【讨论】:

    • @DimasRizky 点击柱子,这是一个计数器?您可以从同一个 writequery 写入多个表
    • 不,它是普通整数,你有什么例子我该怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2018-08-11
    • 1970-01-01
    • 2019-10-07
    • 2015-10-19
    • 1970-01-01
    • 2014-07-22
    相关资源
    最近更新 更多