在单节点群集上运行Hadoop时HDFS如何工作?

时间:2013-11-14 19:20:24

标签: hadoop mapreduce hdfs

有很多内容解释数据位置以及MapReduceHDFS如何在多节点群集上运行。但我找不到有关单节点设置的更多信息。在过去三个月我正在试验Hadoop我总是阅读有关映射器和缩减器数量的教程和线程,并编写自定义分区器来优化作业,但我一直认为,它是否适用于单个节点集群?

与多节点群集相比,单个节点群集上运行MapReduce个作业的丢失量是多少?

在这种情况下,拆分输入数据所提供的并行性是否仍适用?

从单个节点HDFS读取输入和从本地文件系统读取有什么区别?

我认为由于我的经验不足,我无法清楚地回答这些问题,所以对任何帮助表示赞赏!

提前致谢!

编辑:我了解Hadoop不适合单节点设置,因为@ TC1列出了所有因素。那么,设置伪分布式Hadoop环境有什么好处呢?

1 个答案:

答案 0 :(得分:3)

  

我总是阅读关于映射器和缩减器数量的教程和线程,并编写自定义分区器来优化作业,但我一直认为,它是否适用于单个节点集群?

  • 这取决于。组合器在映射和缩减之间运行,如果它们被正确使用,您肯定会感觉到甚至在单个节点上的影响。自定义分区程序 - 可能不行,数据在减少之前会访问同一磁盘。它们会影响逻辑,即减速器接收的数据,但可能不是性能
  

与多节点群集相比,单节点群集上运行MapReduce作业的损失是什么?

  • 处理能力。如果您可以通过单个节点设置数据,那么您可能不应该首先使用Hadoop进行处理。
  

在这种情况下,拆分输入数据所提供的并行性是否仍适用?

  • 不,瓶颈通常是I / O,即访问磁盘。在这种情况下,您仍然访问同一个磁盘,只能从更多线程中访问它。
  

从单个节点HDFS读取输入和从本地文件系统读取有什么区别?

  • 几乎不存在。

    是HDFS的想法
    • 将文件存储在大的连续块中,以避免磁盘搜索
    • 在节点之间复制这些块以提供弹性;

    在单个节点上运行时,这些都是没有意义的。

编辑:

“单节点”和“伪分布”之间的区别在于,在单模式下,所有Hadoop进程都在单个JVM上运行。没有涉及网络通信,甚至没有涉及localhost等。即使只是在小数据上测试作业,我也建议使用伪分布,因为它与集群基本相同。