2013-04-25 62 views
0

我正在使用Hadoop并尝试使用两个数据集进行一些互动功能什么是最佳方案。我可以将其中一个加载到内存中,然后与其他数据集的map函数相交,但是如果数据集对RAM内存来说太大,这不是解决方案,那么您的想法是什么?使用Hadoop和两个数据集


感谢您的回答,我会试试看看最好的解决方案。

回答

0

这很难在MapRed操纵交会相比其他家庭围绕Hadoop的API平台。有人已经提到的蜂巢(超级容易做到的交点,如果您有SQL背景),但你也可以考虑:

  • PIG
  • Cascading(特别是协同组,如果记忆是一种关心和HashJoin如果不是)
0

分布式缓存非常适用于小型数据集,并可以考虑高速缓存在内存中。如果数据量很大,如您所述,分布式缓存不是一个选项。

Hadoop框架允许排序的大型数据集,但是,您可能必须遵循的步骤数,其中一项规定是,在此之前可以进行联接输入数据集必须进行排序。您可以考虑利用Apache Hive来实现这一点。如果蜂巢被排除了,在这个环节中提到的步骤应该可以帮助您开始为大型数据集

Configure Map Side join for multiple mappers in Hadoop Map/Reduce