《Hadoop MapReduce实战手册》一2.4 DataNode下架

    xiaoxiao2024-06-24  112

    本节书摘来异步社区《Hadoop MapReduce实战手册》一书中的第2章,第2.4节,作者: 【美】Srinath Perera , Thilina Gunarathne 译者: 杨卓荦 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    2.4 DataNode下架

    Hadoop MapReduce实战手册有些时候你可能想让一个HDFS集群的一个或多个数据节点下架。本节展示了如何优雅地让使用中的DataNode下架而不会导致数据丢失,而且无需重新启动集群。

    操作步骤下列步骤显示了如何让数据节点优雅地下架。

    如果集群没有排除文件配置,则需要向集群中添加一个排除文件(exclude file)。在NameNode上创建一个空文件,并且通过添加以下属性从conf/hdfs-site.xml文件指向它。 <property>   <name>dfs.hosts.exclude</name>   <value>[FUL_PATHTO_THE_EXCLUDE_FILE_]</value>   <description>Names a file that contains a list of hosts thatare not permitted to connect to the namenode. The full pathname of the file must be specified. If the value is empty, no hosts are excluded.</description> </property> 将要下架的节点的主机名添加到exclude文件中。运行下列命令以重新加载NameNode的配置。这将启动下架过程。下架过程可能需要相当一段时间,因为它需要确保数据块的复制操作没有影响集群的其他任务。 >bin/hadoopdfsadmin -refreshNodes 下架进度显示在HDFS中用户界面下的Decommissioning Nodes页面。也可以使用下面的命令监控下架进度。不要关闭这些下架中节点,直到下架完成。 >bin/hadoopdfsadmin -report ... ... Name: myhost:50010 Decommission Status : Decommission in progress Configured Capacity: ... ... 当想要把这些节点重新添加回集群时,可以从exclude文件中删除节点,执行bin/Hadoop dfsadmin –refreshNodes命令。 下架过程可以通过从exclude文件中删除该节点的名称、然后执行bin/hadoopd dfsadmin -refreshNodes命令来停止。

    工作原理在节点下架时,HDFS会将该节点中的块复制到集群中的其他节点。下架可能是一个非常缓慢的过程,因为HDFS故意使它缓慢地运行,以避免集群过载。如果直接关闭节点,而不采用下架,可能会导致数据丢失。

    下架完成后,将不再允许exclude文件所提及的节点与NameNode通信。

    最新回复(0)