HDFS在DC / OS中重新启动机器的弹性

时间:2017-01-30 18:37:52

标签: hadoop hdfs mesos marathon dcos

我在Universe上安装了10台Core OS计算机的DCOS群集(3个主节点,7个代理节点)。我的HA HDFS配置有2个名称节点,3个日志节点和5个数据节点。现在,我的问题是。 HDFS不应该适应机器重启吗?如果我重新启动安装了数据节点的计算机,则数据节点将重建为其他节点的镜像(仅在从DC / OS UI重新启动HDFS服务之后)。如果重新启动日志节点或名称节点,则节点将被标记为丢失并且永远不会重建。

2 个答案:

答案 0 :(得分:1)

最终在DC / OS的宇宙HDFS包的错误版本中发现了问题。但是,将在未来几周内在Universe上发布一个全新的DC / OS HDFS软件包。

https://dcos-community.slack.com/archives/data-services/p1485717889001709

https://dcos-community.slack.com/archives/data-services/p1485801481001734

答案 1 :(得分:0)

像您这样的HA部署的HDFS弹性模型的快速摘要:

  • 两个NameNode组成一个活动/备用对。如果机器重新启动活动,则系统检测到活动的故障,备用数据库将作为新的活动状态接管。一旦机器完成重启,NameNode进程将再次运行,并成为新的备用数据库。除非两个NameNode同时关闭,否则没有停机时间。主机上的数据(例如fsimage元数据文件)通常在重新启动之间保持。如果您的环境中不是这种情况,那么您需要其他恢复步骤来重新建立备用数据库,例如运行hdfs namenode -bootstrapStandby命令。
  • 3个JournalNodes构成了法定人数。如果计算机重新启动,NameNode可以继续将其编辑日志事务写入剩余的2个JournalNode。一旦机器完成重启,JournalNode进程再次运行,赶上它可能错过的事务,然后NameNode再次写入所有3。除非同时关闭2个或更多JournalNode,否则没有停机时间。如果重新启动时未维护数据(例如编辑文件),则重新启动的JournalNode将通过从正在运行的JournalNode进行复制来赶上。
  • DataNodes大多是一次性的。如果机器重新启动,客户端将被重新路由到其他正在运行的DataNode以进行读写(假设典型的复制因子为3)。一旦机器完成重启,DataNode进程再次运行,它可以再次开始从客户端提供读/写流量。除非大规模同时发生故障事件(极不可能并且可能与更大的数据中心问题相关)导致托管特定块的副本的所有DataNode同时关闭,否则没有停机时间。如果数据(块文件目录)没有在重新启动时维护,那么在重新启动之后,它将看起来像一个全新的DataNode即将上线。如果这会导致群集不平衡,那么可以通过运行HDFS Balancer来解决这个问题。