It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center




7年前关闭。




我正在Amazon EC2 m1.small实例上测试MapReduce单词计数示例
我遵循了Amazon命令行入门指南。

bin / ec2hadoop启动集群测试2

使用此命令,我有2个从属节点。 (总共运行3个实例)然后我可以登录到主节点以运行hadoop程序( bundle 在jar文件中)花费了35分钟。

为了进行可扩展性实验,然后我使用4个实例运行了相同的程序

bin / ec2hadoop启动集群测试4

令我惊讶的是,我没有看到任何性能提升。 MapReduce应用程序花费的时间几乎相同(33分钟)

问题出在哪里?
这是可以接受的行为吗?
In mapred-site.xml
mapred.tasktracker.map.tasks.maximum is set to 1
mapred.tasktracker.reduce.tasks.maximum is set to 1

欢迎任何建议。

最佳答案

首先,如果配置正确,并且随着集群的增长,Reducer的数量会越来越多,那么Hadoop应该表现出线性可扩展性
我认为您获得结果的根本原因是单一 reducer 。当所有映射器的结果传递到单个缩减器时,它会限制群集大小带来的任何性能提升。如果将 reducer 的数量设置为4(按群集中的节点数),则应该看到增益。
另外-我对小型实例上的hadoop高效操作存有疑问。内存已接近极限,交换可以启动并杀死任何性能。另外-这样的实例将只获得1GB以太网的很小一部分,这也可能是限制因素。

关于performance - Hadoop on EC2:当从站数量增加时,性能不会提高,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15174856/

10-16 01:39