我是Spark流媒体的新手并且有以下情况:
用例:
有人可以告诉我,如果Spark通常可以做到这一点,如果是的话,请指出正确的方向吗?
答案 0 :(得分:1)
这绝对是可能的。尽管如此,它不一定是最好的工具。这取决于您期望的输入量。如果你有成千上万的设备每秒发送一个事件,那么Spark可能是合理的。无论如何,我无法验证您的架构选择,但请记住,只有当一台机器无法处理数据量时,才能使用Spark来处理这些用例。
此外,如果警报的延迟很重要而且一两秒有所不同,那么Spark并不是最好的工具。单台机器上的处理器可以实现更低的延迟。否则使用更像流式传输的东西,比如Apache Flink。
作为一般建议,如果你想在Spark中做,你只需要创建一个源(我不知道你的数据来自哪里),在广播变量中加载阈值(假设它们是随着时间的推移而不变)并编写逻辑。要进行其余调用,请使用forEachRdd
作为输出接收器并在那里实现调用逻辑。