如何分割输入集以实现更好的Hadoop平衡?

如何分割输入集以实现更好的Hadoop平衡?,hadoop,balance,Hadoop,Balance,我有一个分层目录,每个目录中有许多文件,每个文本文件中有许多URL字符串。为了更好地平衡,我想在Hadoop中下载所有文件中的所有URL 例如,如果我有1+5个节点的Hadoop集群和5个URL,那么,作为输入的5-URL-in-one文件或1-URL-per-file(然后得到5个文件)是否能获得更好的平衡 我认为Hadoop会默认地将输入集拆分为64M块,只在单个节点上运行,不能运行所有5个从节点 谢谢你的回答 如果您没有对每个URL进行非常密集的计算,并且您的文件小于64MB,那么您最好在

我有一个分层目录,每个目录中有许多文件,每个文本文件中有许多URL字符串。为了更好地平衡,我想在Hadoop中下载所有文件中的所有URL

例如,如果我有1+5个节点的Hadoop集群和5个URL,那么,作为输入的5-URL-in-one文件或1-URL-per-file(然后得到5个文件)是否能获得更好的平衡

我认为Hadoop会默认地将输入集拆分为64M块,只在单个节点上运行,不能运行所有5个从节点


谢谢你的回答

如果您没有对每个URL进行非常密集的计算,并且您的文件小于64MB,那么您最好在单个节点上运行一个映射器。在这种情况下,我将使用一个文件中的所有URL方法

最好有更大的文件,这样每个映射器都有足够的工作要做。如果您的文件非常小,则合并它们以使总数接近64MB标记。这还将允许在HDFS中存储更多的数据,因为每个文件都会占用Namenode上的RAM来保存元数据,而且RAM是有限的,因此如果使用更少的文件,可以将更多的数据放入集群,Namenode将使用更少的RAM


您还可以尝试采用这种方法

如果您没有对每个URL进行非常密集的计算,并且您的文件大大小于64 MB,那么您最好在单个节点上运行一个映射器。在这种情况下,我将使用一个文件中的所有URL方法

最好有更大的文件,这样每个映射器都有足够的工作要做。如果您的文件非常小,则合并它们以使总数接近64MB标记。这还将允许在HDFS中存储更多的数据,因为每个文件都会占用Namenode上的RAM来保存元数据,而且RAM是有限的,因此如果使用更少的文件,可以将更多的数据放入集群,Namenode将使用更少的RAM

你也可以尝试采取这种方法