我有一个包含18个数据节点的Hadoop集群.我在两小时前重新启动了名称节点,名称节点仍处于安全模式.
我一直在寻找为什么这可能需要太长时间,我找不到一个好的答案.发布在这里: Hadoop安全模式恢复 - 花费大量时间 是相关的,但我不确定是否需要/需要在更改此设置后重新启动名称节点,因为该文章提到:
<property>
<name>dfs.namenode.handler.count</name>
<value>3</value>
<final>true</final>
</property>
Run Code Online (Sandbox Code Playgroud)
在任何情况下,这都是我在'hadoop-hadoop-namenode-hadoop-name-node.log'中得到的:
2011-02-11 01:39:55,226 INFO org.apache.hadoop.ipc.Server: IPC Server handler 0 on 8020, call delete(/tmp/hadoop-hadoop/mapred/system, true) from 10.1.206.27:54864: error: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /tmp/hadoop-hadoop/mapred/system. Name node is in safe mode.
The reported blocks 319128 needs additional 7183 blocks to reach the threshold 0.9990 of total blocks 326638. Safe mode will be turned off automatically.
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /tmp/hadoop-hadoop/mapred/system. Name node is in safe mode.
The reported blocks 319128 needs additional 7183 blocks …Run Code Online (Sandbox Code Playgroud) 我有这个Perl代码只打印第一行而不是所有行.
use Net::SSH::Perl;
my $user = "user";
my $cmd = "df -m | grep data";
my $host = "host1.example.com";
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user);
my ($dflines,$errors,$exit) = $ssh->cmd($cmd);
foreach $line ($dflines) {
print "$line";
my @values = split(' ',$line);
my ($MBsize, $MBused, $MBavail, $dir) =
($values[1], $values[2], $values[3], $values[5]);
print "MBsize=$MBsize MBused=$MBused MBavail=$MBavail dir=$dir\n";
}
Run Code Online (Sandbox Code Playgroud)
它打印:
/dev/sdb1 1407118 931813 403828 70% /data1
/dev/sdc1 1407118 921739 413902 70% /data2
/dev/sdd1 1407118 909408 426233 69% /data3
/dev/sde1 1407118 918828 416813 69% /data4 …Run Code Online (Sandbox Code Playgroud)