【发布时间】:2015-10-11 11:36:32
【问题描述】:
我正在四个非常小的虚拟服务器(2GB RAM,每个 2Cores)上准备 hadoop 集群,以进行概念验证。 一台服务器作为名称节点和资源管理器,三台作为数据节点。
每次我运行测试作业(包含数据的 3.4 GB 文件)时 - 两个数据节点(随机的)以最大能力工作,其中一个正在休眠(通过 htop 监控)。 所有 3 个数据节点都在 hadoop GUI 中可见。 我错过了什么?
任何帮助将不胜感激。
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop-master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop-master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop-master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop-master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop-master:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hadoop/dfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hadoop/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>67108864</value>
</property>
【问题讨论】:
-
正在处理多少个文件(“3,4 GB”不清楚 - 一个 3.4 的文件还是 3 和 4 中的两个?)。另外,什么类型/扩展名?
-
首先取决于您的工作中处理了多少任务。告诉你每份工作有多少个映射器/减速器?还给我们更多其他信息:您运行了什么作业以及您是如何运行它的(hadoop 命令或其他)?
-
这是一个带有json对象的文件(每行ID和json)。
-
我的工作有一个映射器和一个reducer。作业从文件中一一获取对象,对该对象的数据进行一些计算并保存结果。每个对象都是独立计算的。作业从命令行执行。
-
由于您的作业有 1 个映射器和减速器,因此您的作业只需要 3 个容器(1 个用于映射器,1 个用于减速器,1 个用于 Application Master)。每个节点有多少个 vCore?假设您有 8 个 vCore(默认值为 8,由“yarn.nodemanager.resource.cpu-vcores”确定),“mapreduce.map.cpu.vcores”设置为 1,“mapreduce.reduce.cpu.vcores”设置为1,只需一个节点即可运行您的工作。由于所有三个容器都可以分配在单个节点中。为什么您希望使用所有 3 个节点?
标签: hadoop