apache-spark - 使用 Apache Kafka 进行流式分析
问题描述
我们正在从设备(Android、iOS)收集流数据。数据流为,websocket -> logstash -> kafka -> spark -> cassandra。内存为 16 GB。我们的应用程序基于 OTT 平台,当视频流式传输时,它会将事件发送到 kafka 以进行分析。目前的情况是,并行播放 4 或 5 个视频时,内存会很快溢出。
可能是什么问题?是不是配置错误?对于我们的要求,还有其他更好的方法吗?
解决方案
我会用一个广泛的答案来回答你的广泛问题。
Logstash / Kafka / Spark / Cassandra 是“正确”的架构吗?
这种方法没有什么特别错误的。这取决于您正在执行的处理,以及您将其登陆到 Cassandra 的原因。您会发现很多人采用这种方法,而其他人可能使用不同的流处理,例如 Kafka Streams,以及并不总是使用数据存储(因为 Apache Kafka 持久化数据) - 取决于之后使用数据的内容。
使用这种架构,我的系统能否一次处理超过 10,000 个用户活动?
是的。不,这取决于太多因素,无法给出答案。10,000 名用户使用少量数据执行简单活动,这与 10,000 名用户需要对大量数据进行复杂处理有很大不同。
获得答案并总体评估您的架构选择的唯一方法是在增加 [模拟] 用户数量时分析系统的行为。是否出现了表明需要更大硬件规模或什至不同技术选择的特定瓶颈。
推荐阅读
- java - 检查表中是否已存在列
- ansible - Ansible - 使用循环变量设置事实?
- android - 在材料日期范围选择器 Android 中限制为最多 7 天的选择
- python-3.x - 如何将数据从以前的函数带到当前函数?
- django - 避免他人请求 URL 和修改用户数据 [DJANGO]
- haskell - haskell如何从预期输出中删除起始词
- mongodb - mongodb shell 中的查询给出了 SyntaxError: missing : after property id @(shell):1:19
- kotlin - 如何在 Kotlin 中找到某个类的所有超类型接口?
- c++ - 带有可变参数模板的变体
- flutter - Flutter Web 套接字