建议使用hadoop架构

建议使用hadoop架构,hadoop,hdfs,Hadoop,Hdfs,我有一个脚本,它将500万条记录(a)与40k条记录(B)相匹配。如果存在匹配项,则会将电子邮件异步放置到队列中 如果A的某些属性与B匹配,则会发生匹配。目前,此脚本大约需要1天才能完成 我想把使用hadoop的时间减少到3到4个小时 我想,我将在文件中存储一个文件,这个文件将被输入到我的映射器中。可以消除减速器 对于最小或无磁盘读取,B的存储策略应该是什么?我应该把它放在哪里。memcache、hdfs等。Memcache似乎是一个不错的选择,因为它在运行时消除了磁盘访问。但是建议是受欢迎的

我有一个脚本,它将500万条记录(a)与40k条记录(B)相匹配。如果存在匹配项,则会将电子邮件异步放置到队列中

如果A的某些属性与B匹配,则会发生匹配。目前,此脚本大约需要1天才能完成

我想把使用hadoop的时间减少到3到4个小时

我想,我将在文件中存储一个文件,这个文件将被输入到我的映射器中。可以消除减速器

对于最小或无磁盘读取,B的存储策略应该是什么?我应该把它放在哪里。memcache、hdfs等。Memcache似乎是一个不错的选择,因为它在运行时消除了磁盘访问。但是建议是受欢迎的


我是hadoop新手。那么,在这种情况下,推荐的方法是什么。

我不确定我是否能给出一个合适的答案……
您的B文件是否足够小,可以将它们全部放入映射器的内存中?
如果是这样,Hadoop有一种称为分布式缓存的机制。它可以将文件分发到集群中的所有节点。在您的情况下,可以将B设为缓存文件,通过configure()将其加载到内存中,并在映射程序中使用它


DistributedCache.addCacheFile(/*B的路径*/)//in run()

亨利:我想你回答对了。分布式缓存默认设置为缓存高达10GB的数据。