3

我正在尝试hdfs:///home/bryan/test_file/通过将 Spark 作业提交到 Dataproc 集群来写入 HDFS 目录。

我收到名称节点处于安全模式的错误。我有一个解决方案可以让它退出安全模式,但我担心这可能是由于另一个原因而发生的。

为什么 Dataproc 集群处于安全模式?

ERROR org.apache.spark.streaming.scheduler.JobScheduler: Error running job streaming job 1443726448000 ms.0
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /home/bryan/test_file/_temporary/0. Name node is in safe mode.
The reported blocks 125876 needs additional 3093 blocks to reach the threshold 0.9990 of total blocks 129098.
The number of live datanodes 2 has reached the minimum number 0. Safe mode will be turned off automatically once the thresholds have been reached.
4

2 回答 2

3

安全模式是什么意思

NameNode 处于安全模式,直到数据节点报告哪些块在线。这样做是为了确保 NameNode 不会开始复制块,即使(实际上)有足够的(但未报告的)复制。

为什么会这样

通常,您描述的 Dataproc 集群不会发生这种情况。在这种情况下,我怀疑集群中的虚拟机没有正常联机或遇到问题(网络,其他),因此,集群从未离开安全模式。坏消息是这意味着集群处于错误状态。由于 Dataproc 集群可以快速启动,我建议您删除集群并创建一个新集群。好消息是,这些错误应该很少见。

于 2015-10-05T18:14:03.547 回答
0

原因是您可能在启动工作程序之前启动了主节点(房屋名称节点)。如果关闭所有节点,请先启动工作程序,然后启动它应该工作的主节点。我怀疑主节点首先启动,检查工作人员是否在那里。如果他们处于离线状态,它将进入安全模式。一般来说,由于心跳的存在,这不应该发生。但是,它就是这样,重新启动主节点将解决问题。就我而言,它与 Dataproc 上的火花有关。

高温高压

于 2020-09-23T08:42:20.973 回答