使用具有两个数据集的hadoop

krcsximq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(320)

我正在使用hadoop并尝试用两个数据集创建一些interection函数,这是最好的方案。我可以将一个数据集加载到内存中,然后在Map函数中与另一个数据集相交,但如果数据集对于ram内存来说太大,这不是一个解决方案,您的想法是什么?
谢谢你的回答,我将尝试这些,看看什么是最好的解决方案。

erhoui1w

erhoui1w1#

你可以试着把它们放到 DistributedCache -在那页上有一个很好的例子。

inkz8wg9

inkz8wg92#

分布式缓存适用于小型数据集,可以考虑在内存中缓存。如您所述,如果数据很大,分布式缓存就不是一种选择。
hadoop框架允许对大型数据集进行排序,但是,您可能需要遵循许多步骤,其中一个要求是,必须先对输入数据集进行排序,然后才能进行连接。您可以考虑利用apache配置单元来实现这一点。如果排除了配置单元,那么本链接中提到的步骤应该可以帮助您开始使用大型数据集
在hadoop map/reduce中为多个Map器配置Map端连接

voj3qocg

voj3qocg3#

与hadoopapi周围的其他平台相比,在mapred中操纵交叉点是很困难的。有人已经提到了hive(如果您有sql背景,那么非常容易实现),但是您也可以考虑:
Pig
级联(如果内存是一个问题,特别是cogroup,如果不是,则是hashjoin)

相关问题