带有多个历史记录表的Spark流连接

带有多个历史记录表的Spark流连接

问题描述:

Spark版本:1.5.2 我们正在尝试首次实现流式传输,并尝试对传入流进行CDC并将结果存储在hdfs中。带有多个历史记录表的Spark流连接

什么是工作 我们用输入文件流创建了1个表CDC的POC。 SNAPPY压缩PARQUET格式的基础(历史)表(Hive)为2.5 GB。我们以5分钟的流动间隔与输入流(〜10000条记录)一起加入。由于我们需要一次又一次地为每个输入dstream连接相同的基础数据,因此我们正在缓存基础数据,因此连接正在快速运行。

下方设置 --num执行人工作8 --executor-核5 --driver-1G内存--executor-4G内存

我们所需要的 建议如果我们有规模我们知道,由于内存的可用性有限,缓存所有基础数​​据并不是一个好主意。在同一时间在生产环境中,同一解决方案可以在多个表上执行CDC(对大约100个历史记录表的不同CDC操作)。

有没有更好的方式做流中的连接而不读取所有的基础数据到内存中? 是分区配置单元将有助于吗?

我认为this section的文档应该是有帮助的。

您可以将数据加载为RDD,然后在transform操作的帮助下将它们与DStreams一起加入。