1

我们在 Amazon EC2 上运行我们的集群。我们正在使用 cloudera 脚本来设置 hadoop。在主节点上,我们从以下服务开始。

609   $AS_HADOOP '"$HADOOP_HOME"/bin/hadoop-daemon.sh start namenode'
610   $AS_HADOOP '"$HADOOP_HOME"/bin/hadoop-daemon.sh start secondarynamenode'
611   $AS_HADOOP '"$HADOOP_HOME"/bin/hadoop-daemon.sh start jobtracker'
612 
613   $AS_HADOOP '"$HADOOP_HOME"/bin/hadoop dfsadmin -safemode wait'

在从机上,我们运行以下服务。

625   $AS_HADOOP '"$HADOOP_HOME"/bin/hadoop-daemon.sh start datanode'
626   $AS_HADOOP '"$HADOOP_HOME"/bin/hadoop-daemon.sh start tasktracker'

我们面临的主要问题是,hdfs 安全模式恢复需要一个多小时,这导致我们的工作完成延迟。

以下是主要的日志消息。

1. domU-12-31-39-0A-34-61.compute-1.internal 10/05/05 20:44:19 INFO ipc.Client: Retrying connect to server: ec2-184-73-64-64.compute-1.amazonaws.com/10.192.11.240:8020. Already tried 21 time(s).
2. The reported blocks 283634 needs additional 322258 blocks to reach the threshold 0.9990 of total blocks 606499. Safe mode will be turned off automatically.

第一条消息会在任务跟踪器日志中抛出,因为作业跟踪器未启动。由于 hdfs 安全模式恢复,作业跟踪器未启动。

在恢复过程中抛出第二条消息。

有什么我做错了吗?正常的hdfs安全模式恢复需要多长时间?在启动作业跟踪器之前不启动任务跟踪器会不会有任何加速?亚马逊集群上是否有任何已知的 hadoop 问题?

谢谢你的帮助。

4

1 回答 1

1

在安全模式下花费的时间通常与集群的大小成正比。也就是说,正常时间最多是几分钟,而不是几小时。有几件事需要检查。

  1. 确认所有数据节点都正确启动。数据节点需要几秒钟或几分钟才能报告大量块是正常的。检查数据节点日志以查看启动期间发生的情况。
  2. 确保您有足够的名称节点线程(hdfs-site.xml 中的 dfs.namenode.handler.count)能够处理要签入的数据节点的数量。默认值为 10,这对于集群应该没问题最多20个节点左右。除此之外,增加它可能是有意义的。您可能会在数据节点日志中看到表明这一点的重试。这就是重试消息似乎向我表明的内容(例如重试 21 次)。

希望这可以帮助。

于 2010-07-11T05:23:02.560 回答