当在该节点上发生写入HDFS时,当我们停用datanode时会发生什么?
它是否会停止将数据写入该节点上的HDFS并解除该节点的破坏,或者它将完成写入然后解除它。
答案 0 :(得分:1)
我在cloudera找到了解决方案。
退役仅适用于HDFS DataNode,MapReduce TaskTracker,YARN NodeManager和HBase RegionServer角色。如果主机上运行了其他角色,则会停止/终止这些角色。
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_mc_decomm_host.html
答案 1 :(得分:0)
盯着Hadoop wiki:
Hadoop提供退役功能以淘汰一组现有数据节点。要退出的节点应包含在排除文件中,并且排除文件名应指定为配置参数dfs.hosts.exclude。应该在namenode启动期间指定此文件。
exclude file属性命名一个文件,该文件包含不允许连接到namenode的主机列表。
当发生这种情况时,我认为过程写入退役节点会获得IOException
。
答案 2 :(得分:0)
添加要停用的节点的条目后。您需要执行 namenode -refreshnodes 命令来启动实际的停用过程。实际的退役过程非常缓慢。所有当前任务的读/写操作都将按常规继续。但是所有未来的写入都是不允许的,但允许读取的优先级最低。同时,所有块都被复制到其他节点。