hdfs对dc/os中机器重启的恢复能力

ssm49v7z  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(365)

我已经在由10个核心操作系统机器(3个主节点,7个代理节点)组成的dcos集群上安装了来自universe的hdfs。我的ha hdfs配置有2个name节点、3个journal节点和5个data节点。现在,我的问题是。hdfs不应该对机器重启有弹性吗?如果我重新启动一台安装了数据节点的机器,数据节点将被重建为其他节点的镜像(只有在从dc/os ui重新启动hdfs服务之后)。在重新启动日志节点或名称节点的情况下,这些节点将被标记为丢失,并且永远不会重建。

0kjbasz6

0kjbasz61#

针对您这样的ha部署的hdfs弹性模型的快速摘要:
这两个namenode组成一个活动/备用对。如果机器重新启动主设备,系统将检测到主设备故障,备用设备将作为新的主设备接管。一旦机器完成重启,namenode进程将再次运行,并成为新的备用进程。除非两个namenodes同时关闭,否则不会出现停机。主机上的数据(例如fsimage元数据文件)通常在重启之间进行维护。如果在您的环境中不是这样,那么您将需要额外的恢复步骤来重新建立待机状态,例如运行 hdfs namenode -bootstrapStandby 命令。
这3个journalnode构成一个仲裁。在机器重新启动的情况下,namenode可以继续将其编辑日志事务写入其余2个journalnode。一旦机器完成重新启动,journalnode进程将再次运行,赶上它可能错过的事务,然后namenode将再次写入所有3个事务。除非2个或更多日志节点同时关闭,否则不会出现停机。如果数据(例如编辑文件)在重新启动期间没有得到维护,那么重新启动的journalnode将通过从正在运行的journalnode复制来实现。
数据节点大多是一次性的。在机器重新启动的情况下,客户端将被重新路由到其他正在运行的datanode进行读写操作(假设典型的复制因子为3)。一旦机器完成重新启动,datanode进程将再次运行,并且它可以再次开始为来自客户端的读/写通信提供服务。除非大量同时发生的故障事件(极不可能发生,并且可能与更大的数据中心问题相关)导致承载特定块的副本的所有数据节点同时关闭,否则不会出现停机。如果数据(块文件目录)没有在重启期间维护,那么在重启之后,它看起来就像一个全新的datanode上线了。如果这导致集群不平衡,那么可以通过运行hdfs平衡器来修复。

dddzy1tm

dddzy1tm2#

最终,在一个有缺陷的dc/os版universe hdfs包中发现了这个问题。然而,一个用于dc/os的全新hdfs包将在接下来的几周内在universe上发布。
https://dcos-community.slack.com/archives/data-services/p1485717889001709
https://dcos-community.slack.com/archives/data-services/p1485801481001734

相关问题