对于分布式缓存文件hadoop来说有多大?

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

对于是否使用分布式缓存分发文件,有什么指导原则吗?
我有一个86746785大小的文件(我使用 hadoop dfs -dus -不知道这是不是在 bytes 或者什么)。分发这个文件是个好主意吗?

dddzy1tm

dddzy1tm1#

唯一可行的答案是“视情况而定”。
关于使用分布式缓存,您必须考虑的是文件被复制到任务中涉及的每个节点,这显然需要占用带宽。另外,通常如果您希望文件在分布式缓存中,您会将文件保存在内存中,因此您必须考虑到这一点。
至于你的情况——是的,那些是字节。大小大约为86MB,这对于分布式缓存来说非常合适。几百兆以内的任何东西都应该是。

f4t66c6m

f4t66c6m2#

默认情况下,分布式缓存的大小为10gb。但最好在分布式缓存中保留几MB的数据,否则会影响应用程序的性能。

djmepvbi

djmepvbi3#

除了tc1的答案外,还要考虑:
何时/何地使用这些文件?群集有多大?
在许多Map器、单个缩减器(或少量)的场景中,您只需要缩减器中的文件,我建议您不要这样做,因为您也可以自己在缩减器中下拉文件(设置方法),而不是不必要地为每个任务节点运行Map程序-尤其是如果文件很大(这取决于集群中有多少节点)
你要把多少文件放到缓存里?
如果出于某种原因,您有100个文件要分发,那么您最好对它们进行tar处理,并将tar文件放在分布式缓存的归档集中(dist缓存将负责为您解开文件)。这里要避免的是,如果您没有将它们放在dist缓存中,而是直接从hdfs加载它们,那么您可能会遇到这样的情况:有1000个Map器和/或还原器试图打开同一个文件,这可能会导致名称节点和数据节点出现太多打开的文件问题

相关问题