【发布时间】:2017-07-05 10:47:08
【问题描述】:
我正在设计新一代分析系统,该系统需要近乎实时地处理来自许多传感器的许多事件。为此,我想使用大数据分析平台之一,例如 Hadoop、Spark Streaming 或 Flink。
为了分析每个事件,我需要使用表 (DB) 中的一些元数据,或者至少将其加载到缓存地图中。
问题是每个映射器都将在多个节点上并行化。
所以我有两件事要处理:
- 首先,如何将 HashMap 加载/传递给映射器?
- 有什么方法可以让映射器之间的 HashMap 保持一致?
【问题讨论】:
-
DistributedCache 是您正在寻找的 - stackoverflow.com/questions/21239722/…。您可以将元数据文件提供给所有映射器。
-
您也可以通过查询您的数据库,在每个映射器的
setup()方法中构建哈希映射。 -
您将使用 Hadoop 还是 Spark?解决方案可能完全不同。此外,您是否需要每个映射器都拥有相同的信息,还是每个映射器都特定?
标签: java hadoop apache-spark mapreduce spark-streaming