MapReduce:如何将HashMap传递给映射器

时间:2017-02-16 11:00:23

标签: java hadoop apache-spark mapreduce spark-streaming

我正在设计新一代分析系统,需要近乎实时地处理来自许多传感器的许多事件。为此,我想使用其中一个大数据分析平台,例如HadoopSpark StreamingFlink

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

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

所以我有两件事要处理:

  • 首先,如何将HashMap加载/传递给映射器?
  • 有没有办法让HashMap在映射器之间保持一致?

1 个答案:

答案 0 :(得分:0)

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