2017-02-16 75 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。

相關問題