我对hadoop集群配置不是很熟悉,最近我将apachenutch与apachehadoop集成在一起,并成功地对solr中索引的数据进行了爬网。我的主从来源如下:
主机:cpu:4核内存:12g硬盘:37g
从属1:cpu:2核内存:4g硬盘:18g
从属2:cpu:2核内存:4g硬盘:16g
从属3:cpu:2核内存:4g硬盘:16g
从属4:cpu:4核内存:4g硬盘:50g
我已经配置了core-site.xml、mapred-site.xml、hdfs-site.xml、master和slave。
这是我的core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/My Project Name/hadoop-datastore</value>
<description>store data</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
<description>the name of default file system</description>
</property>
</configuration>
这是我的mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
<description>host and port</description>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>10</value>
<description></description>
</property>
<property>
<name>mapred.map.tasks</name>
<value>20</value>
<description></description>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>8</value>
<description></description>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>8</value>
<description></description>
</property>
</configuration>
这是我的hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>default block</description>
</property>
</configuration>
这是我的配置/主控:
master
最后是我的conf/slaves:
master
slave1
slave2
slave3
slave4
这个故事很好:当我运行master和jps命令时,我在master上有以下内容:
19031 TaskTracker
18644 DataNode
18764 SecondaryNameNode
18884 JobTracker
13226 Jps
18506 NameNode
当我在所有从机上运行jps命令时,我有以下内容:
4969 DataNode
5057 TaskTracker
5592 Jps
当我查看主hadoop map/reduce管理时,我有以下集群摘要:
<h2>Cluster Summary (Heap Size is 114.5 MB/889 MB)</h2>
<table border="1" cellpadding="5" cellspacing="0">
<tr><th>Running Map Tasks</th><th>Running Reduce Tasks</th><th>Total Submissions</th><th>Nodes</th><th>Occupied Map Slots</th><th>Occupied Reduce Slots</th><th>Reserved Map Slots</th><th>Reserved Reduce Slots</th><th>Map Task Capacity</th><th>Reduce Task Capacity</th><th>Avg. Tasks/Node</th><th>Blacklisted Nodes</th><th>Graylisted Nodes</th><th>Excluded Nodes</th></tr>
<tr><td>8</td><td>8</td><td>1607</td><td><a href="machines.jsp?type=active">1</a></td><td>8</td><td>8</td><td>0</td><td>0</td><td>8</td><td>8</td><td>16.00</td><td><a href="machines.jsp?type=blacklisted">0</a></td><td><a href="machines.jsp?type=graylisted">0</a></td><td><a href="machines.jsp?type=excluded">0</a></td></tr></table>
<br>
问题是这个过程在topn:1000上运行得很好,但是在主设备上有高cpu和内存使用率的负载,但是当我在从设备上找到top时,cpu和内存都没有负载。我的意思是cpu和内存使用率都很低,cpu空闲率很高。
我不知道这是不是很自然,好不好。我正在寻找一些解决方案和配置,以便我能够共享所有从机上的负载,并使过程更快。任何链接,文件和解决方案是非常感谢。
2条答案
按热度按时间ugmeyewa1#
我发现版本1.2.1在深入查看logs目录时出错,说这个版本是1.2.1快照版本。所以我更改了服务器,只安装了1.2.1版,并使所有从属服务器和主服务器的版本都相似。解决了我的问题。现在很高兴我有五个节点等于我的机器数。
我真的很感谢。。。感谢他的大力帮助
5rgfhyps2#
您的主节点正在运行许多服务:
tasktracker数据节点辅助名称节点jobtracker名称节点
通常,在一个相当大的集群中,主机将没有datanode服务。
名称节点和辅助名称节点应位于不同的节点上。您可以在其中一个数据节点上设置辅助名称节点。
类似地,TaskTracker-master通常没有TaskTracker。i、 e.不在主服务器上运行mr任务。
另一方面,对于纯实验来说,您所做的设置是可以的&您所注意到的cpu使用情况是显而易见的。