【问题标题】:sharing common lookup in memory data across mappers : Hadoop跨映射器共享内存数据中的通用查找:Hadoop
【发布时间】:2012-06-14 13:33:02
【问题描述】:

我有 30 多个映射器,每个映射器都使用内存中映射的通用查找数据。 在每个映射器中,我必须在设置函数中加载此查找数据。我通过在 Hbase 表和/或某些 rdbms 数据库上查询和计算来计算此查找数据。当我从每个映射器做同样的事情时,上述常见任务在每个映射器中执行 30 次。

无论如何我可以在提交 mapReduce 作业之前计算查找数据并设置某个位置,以便我可以从 mappes 中直接获取该值(在内存结构中)。存储在配置中的某个地方等...查找生成是一项繁重的任务,这需要很多时间。

如果它是一个查找文件,我会使用分布式缓存,但它是动态计算而不是存储在文件中。

请就这个常见问题提出任何解决方案?

【问题讨论】:

  • 这个问题有什么解决办法吗?

标签: hadoop mapreduce hbase lookup in-memory


【解决方案1】:

你不能生成数据然后存储在 HDFS 中,与分布式缓存链接吗?

您可以使用的另一个技巧(如果您使用 JVM 重用和小型集群)是在映射器中使查找映射静态,然后在您的集合中执行非空检查,因此只有计算该 tasktracker 的第一个地图实例中的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2018-09-01
    相关资源
    最近更新 更多