hadoop性能比较

xmakbtuz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(391)

hadoop什么时候应该比顺序程序执行得更快?
我在单节点hdfs上运行了word count,从hdfs打开文件并遍历每个单词的顺序版本实际上比教程中的hadoop实现要快,似乎大部分时间都花在了生成Map器上。
这应该发生吗?我是不是装错了?或者hadoop不应该比单节点示例上的顺序程序快吗??我很困惑。

watbbzwu

watbbzwu1#

wordcount是一个非常简单但效率不高的例子。使用它来验证集群是否正常工作,但决不用于性能测试。
让我解释一下原因。
wordcount解析每一行文本,并为找到的每个单词写入Map器输出记录(word,1)。如您所见,Map器的完整输出将大于输入。Map绘制者更大的输出将是减速器的输入。然后,您需要读取两倍以上的输入数据量,并将原始的input+计数器写入磁盘。
除此之外,还需要将Map器输出传输到还原器。如果你只使用一个减速机,那么最后一步将类似于你的顺序工作。
可以优化作业,例如使用组合器和多个减速器。
当数据量大于本地资源(ram、hd、cpu)和/或当初始化容器和容器之间的数据传输的成本被并行工作的节点数最小化时,hadoop将比本地顺序作业更快。

kulphzqa

kulphzqa2#

这个方程有许多参数。使用了多少服务器/数据节点?每个处理器上有多少个cpu内核和可用内存?您正在读取的数据是可拆分的吗(e、 g,二进制格式是不可拆分的,将由单个Map器读取),等等。
你的问题中没有足够的此类信息,因此在设定绩效预期时,你应该注意以下原则。

9q78igpj

9q78igpj3#

进行性能比较的数据大小是多少?我猜它很小。
hadoop是为处理大型数据集而设计的,其中的数据大小以数百gb或tb为单位。hadoop有很多与之相关的启动,而您已经执行的顺序程序则不是这样。
检查这个:不要使用hadoop-你的数据没有那么大。
另一个参考:mapreduce作业开销

相关问题