1

我打算下一代我开发一个分析系统,我想使用的MapReduce/Stream-Processing平台,如Flink之一,Spark StreamingDB访问

对于分析实现它的,映射器必须具有数据库访问权限。

所以我最关心的是,当一个映射器是并行的,来自连接池的连接都将被使用,并且可能有一个映射器无法访问数据库。

我该如何处理? 这是我需要关注的东西吗?

+2

我来自Spark背景。我认为你应该避免给你的'mappers'数据库访问,这会导致复杂性,并且我认为这不是并行数据分析的最佳方法(至少使用Spark)。你在调查将数据导入分析管道的最佳方法吗? – ImDarrenG

+2

对于什么你需要在你的计算过程中访问数据库?数据摄入?抬头? – LiMuBei

+0

@ImDarrenG,是的,我正在研究将数据导入分析管道的最佳方法。和@ LiMuBei,我需要处理来自许多传感器的大量数据,每个样本需要使用来自数据库的元数据进行处理(这可能会不时变化,否则我会在每个映射器中缓存来自数据库的所有数据) –

回答

1

正如您已经指出的那样,拉式策略将是低效和/或复杂的。

从数据库获取元数据的策略将取决于元数据的数量和元数据更改的频率。无论哪种方式,当元数据被需要时不再需要获取元数据,并且当元数据被改变时接收更新可能是一种好方法。

一些想法:

  • 定期的元数据,以平面文件/秒转储到分布式文件系统
  • 流元数据更新到您的管道在写时间内保持在内存中缓存跟上时代的
  • 使用一个单独的机制来获取元数据,例如阿卡演员/ s的轮询更改

这将取决于权衡您可以为您的给定用例。

如果数据库交互性是不可避免的,我不知道map-reduce样式框架是否是解决问题的最佳方法。但任何失败的任务都应该被框架重新尝试。