从MapReduce中的Mapper访问数据库

时间:2017-02-15 09:26:55

标签: apache-spark parallel-processing mapreduce spark-streaming distributed-computing

我计划开发下一代分析系统,并考虑使用MapReduce / Stream-Processing平台之一来实现它,例如Flink,{{1等等。

对于分析,映射器必须具有DB访问权限。

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

我应该如何处理? 这是我需要关注的事情吗?

1 个答案:

答案 0 :(得分:1)

正如您所指出的,拉式策略效率低下和/或复杂。

从数据库中提取元数据的策略将取决于元数据的数量和元数据更改的频率。无论哪种方式,在需要时不再获取元数据,以及在元数据发生变化时接收更新,这可能是一种很好的方法。

一些想法:

  • 定期将元数据转储到平面文件到分布式文件系统
  • 在写入时将流式元数据更新到您的管道,以使内存缓存保持最新
  • 使用单独的机制来获取元数据,例如Akka Actor / s轮询更改

这将取决于您能够为您的特定用例所做的权衡。

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

相关问题