apache-spark - Spark 结构化流式传输是否适合亚秒级延迟的流式传输作业?
问题描述
我正在开发一个需要亚秒级延迟端到端的流媒体项目。换句话说,从事件生成到登陆数据仓库(本例中为 BigQuery)应该小于 1 秒。
我们选择 Spark 结构化流作为实时处理引擎。但是,从我们的性能测试来看,处理大约 100 条记录的 mini-bach 至少需要 3 秒。转换涉及一个简单的 groupBy 逻辑,具有 1 天的滚动窗口。
我试图调整几个因素:
- 使用具有 16 核和 64Gb 内存的更大节点。
- 将每个 mini-batch 中的记录数从 10k 条记录减少到 100 条。
- 删除触发间隔,以便尽可能快地触发小批量。
- 将窗口大小从 7 天减少到 1 天。
但是上述方法都不能满足我们的延迟要求。
所以我的问题是:
- Spark 结构化流是亚秒级流系统的正确选择吗?
- 如果 Spark 适合这个用例,有人可以指点我如何进行性能调整的正确方向吗?
非常感谢。
解决方案
推荐阅读
- javascript - Gatsby 构建/SSR 换出导致显示错误的组件
- excel - DocumentExport 将 pdf 复制到 excel 页面,但打开 pdf 的副本,我无法关闭
- string - makefile 中最简单的 bash 字符串比较失败
- c# - Telegram.bot 编码,没有错误,但最简单的命令也会在提示符上显示任何结果
- c# - 当参数是长字符串时使用 xUnit inlineData
- c++ - 使用参数包专门化模板类
- scala - 将元素放入流中并返回一个对象
- websocket - 为什么 System.out.printlin 和 Logger 不能在我的 websocket 中工作?
- python - 如何为时间序列适当地迭代 Pandas Dataframe
- python - 根据pandas中一列的内容创建一列分类