2017-02-16 73 views
2

我正在设计新一代的分析系统,它需要近乎实时地处理来自多个传感器的许多事件。为此,我想使用大数据分析平台之一,如Hadoop,Spark StreamingFlinkMapReduce:如何将HashMap传递给映射器

为了分析每个事件,我需要使用表(DB)中的一些元数据或者至少将其加载到缓存映射中。

问题是每个映射器将在几个节点上并行化。

所以,我有两两件事要处理:

  • 首先,如何加载/传递一个HashMap映射器?
  • 有什么办法保持映射器之间的HashMap一致吗?
+1

DistributedCache是​​你在找什么 - http://stackoverflow.com/questions/21239722/hadoop-distributedcache-is-deprecated-what-is-the-preferred-api。您可以将元数据文件提供给所有映射器。 –

+0

您也可以通过查询您的数据库来在每个映射器的'setup()'方法中构建hashmap。 –

+0

你会使用Hadoop还是Spark?解决方案可能完全不同。 另外,您是否需要每个映射器都具有相同的信息,还是每个映射器都是特定的? –

回答

0

序列化的HashMap结构文件,其存储在HDFS和MapReduce的工作配置阶段使用DistributedCache传播与序列化的HashMap的文件在所有的映射器。然后在映射阶段,每个映射器都可以读取文件,反序列化,然后访问这个HashMap。

相关问题