【发布时间】:2017-04-30 03:01:24
【问题描述】:
Spark 版本:1.5.2 我们正在尝试首次实现流式传输,并尝试对传入流执行 CDC 并将结果存储在 hdfs 中。
什么是有效的 我们使用带有输入文件流的 1 个表 CDC 启动 POC。基本(历史)表 (Hive) 为 2.5 GB,采用 SNAPPY 压缩 PARQUET 格式。我们将其与输入 dstreams(约 10000 条记录)相结合,流传输间隔为 5 分钟。由于我们需要一遍又一遍地为每个输入 dstream 连接相同的基础数据,因此我们正在缓存基础数据,因此连接工作得很快。
使用以下设置 --num-executors 8 --executor-cores 5 --driver-memory 1g --executor-memory 4g
我们需要什么建议 如果我们必须在生产中同时扩展相同的解决方案以在多个表上执行 CDC(对约 100 个历史表进行不同的 CDC 操作),我们知道缓存所有基础数据不是一个好主意,因为有限的可用性记忆。
有没有更好的方法在不将所有基础数据读入内存的情况下进行流式连接? 无论如何,对蜂巢表进行分桶会有帮助吗?
【问题讨论】:
标签: apache-spark-sql spark-streaming spark-dataframe