【问题标题】:Data locality if HDFS not used未使用 HDFS 时的数据局部性
【发布时间】:2012-02-07 14:31:56
【问题描述】:

当您为 Hadoop 的 Map/Reduce 部分提供不同于 HDFS 的存储(如 MySql 服务器等)时,它的数据局部性功能会发生什么情况?换句话说,我的理解是 Hadoop Map/Reduce 使用数据局部性来尝试在数据所在的同一节点上启动 map 任务,但是当数据存储在 sql sever 中时,任务节点上没有本地数据所有数据都在 sql server 节点中。那么在这种情况下我们会丢失数据局部性还是数据局部性的定义正在改变?如果改变了,新的定义是什么?

【问题讨论】:

  • Hadoop 的哪个部分? MapReduce?
  • 无法理解你的问题!!
  • 我更新了问题。希望现在更清楚了。

标签: hadoop hdfs


【解决方案1】:

如果数据不在集群中,则没有数据局部性。所有数据都必须从远程源复制。这就像任务无法在包含 HDFS 中的数据的节点上运行一样。有几种使用远程源的输入格式,包括 S3、HBase 和 DB。如果您可以将数据放在 HDFS 中,那就太好了。对于经常更新的少量数据,我经常使用 Mongo 作为远程源,我对结果很满意。

【讨论】:

  • 感谢您的回复。请您给我一些想法,您的意思是少量数据吗?还有,你为这个小程序启动了多少个并发映射器?我只是想了解一下整体情况。
  • 我最大的表在 Mongo 中可能是 20MB。我只使用1个映射器。您使用多少映射器将取决于您的分片。看看github.com/mongodb/mongo-hadoop
  • 我应该补充一点,它可以工作的大小受网络带宽的限制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 2015-10-10
相关资源
最近更新 更多