向伪分布式 nutch/hadoop 集群添加较小的节点

向伪分布式 nutch/hadoop 集群添加较小的节点

我的 nutch/hadoop 伪分布式运行良好。我想通过添加比主节点小(HD 小 3 倍)且更便宜的新节点来增加处理能力。

由于默认的HDFS副本数为3,平衡数据后我不会获得更多空间,这首先不是我关心的。

我还能获得更多的处理能力吗?

我不明白 map/reduce 任务如何针对复制进行工作。如何决定哪些节点从不同的副本中获取工作。

答案1

您必须从伪集群设置移至集群设置,通过这样做,您确实可以通过添加更多节点从集群中获得更多处理能力,即您将能够处理更多 map 和 Reduce 任务。正如您所期望的那样,处理能力的增加是线性的。

复制将决定集群中每个 HDFS 块的副本数。因此,假设您有一个文件被拆分成 6 个块,对于 3 个副本,集群中将分布 18 个块。节点越多,覆盖率就越高,因此当开始映射阶段时,需要在数据节点之间传输的数据就越少。回答您的最后一个问题,Hadoop 将始终尝试将映射任务分配给充当数据节点的节点,以输入这些映射任务。因此在这种情况下,副本将使此任务更容易,因为将有更大的任务跟踪器池可供选择。

答案2

您的问题有点令人困惑。如果您在伪分布式模式下运行,那么所有四个进程(JobTracker、NameNode、DataNode、TaskTracker)都会在同一个(通常是开发)系统上启动。

伪分布式 Hadoop xxx-site.xml 配置中的所有内容都与本地主机通信,因此添加新节点将不起作用。

除此之外,如果您添加更多节点,并且这些节点同时运行 DataNode 和 TaskTrackers,那么您将获得增加的存储和 CPU 容量。

请注意,当您填满 HDFS 时,当所有较小的节点都达到容量时,3 倍复制最终将无法实现,因此您将开始收到警告/错误。

相关内容