HDFS之DataNode动态添加与卸载
来源:互联网 发布:淘宝买手机是正品吗 编辑:程序博客网 时间:2024/06/09 14:18
动态添加一个DataNode
集群扩容需要添加新DataNode,通常是在需要增加存储的情况下,虽然有时也是为了增加IO总带宽或减小单台机器失效的影响。在运行中的HDFS集群上增加新的DataNode是一个在线操作或热操作。对于要使用HDFS主机及功能的用户,新主机的IP地址必须添加到include文件中,但主机列表可以动态更新而无需重新启动NameNode。
把DataNode的IP地址加入dfs.hosts参数指定的文件中。每个IP地址占用一行。(dfs.hosts参数是控制Datanode的白名单,仅仅在dfs.hosts文件中指定的Datanode有权限连接到Namenode上。如果该参数不指定,那么默认所有的Datanode都可以连接到Namenode上。)(如果需要连接yarn需要在yarn-site.xml文件中添加参数yarn.resourcemanager.nodes.include-path指定的文件中添加需要添加的NodeManager)
以HDFS超级用户或有类似权限的用户执行命令行
hdfs dfsadmin -refreshNodeshdfs rmadmin -refreshNodes
如果使用机架感知机制,需要为新加入主机更新相关的机架信息。
启动DataNode进程。
hadoop-daemon.sh start datanodeyarn-daemon.sh start nodemanager
通过NameNode的Web界面或命令hadoop dfsadmin -report的输出来确定新节点是否已连接。
仅当使用包含HDFS主机的功能时需要执行步骤1和2。
动态删除一个DataNode
DataNode可能被卸载以便把它从集群中安全移除,同时还要保持主机上所有块的复制因子。这个过程可能很漫长,取决于被卸载主机上的数据量、集群工作数以及网络速度等因素。因为卸载的时间太长,在操作系统重启或配置变化引发的重启所导致的短暂停机状态下不适合做卸载节点的操作。如果想保证所有数据块安全,就需要使用安全卸载功能。
把要删除DataNode的IP地址添加到(hdfs-site.xml)dfs.hosts.exclude参数指定的文件中,文件名必须采用绝对路径。每个IP地址占用一行。把要删除的DataNode的IP地址添加到(yarn-site.xml)yarn.resourcemanager.nodes.exclude-path参数指定的文件中。(如果删除的DataNode不是NodeManager,不用配置yarn文件)
以HDFS超级用户或拥有类似权限的用户执行
hdfs dfsadmin -refreshNodesyarn rmadmin -refreshNodes
监控NameNode的Web界面确保卸载(相对应的DataNode状态显示Decommission In Progress)正在进行。有时更新会滞后几秒。
因为DataNode上的数据较多,卸载有时会持续数小时甚至几天。卸载完成时,NameNode界面会把DataNode显示成已卸载。(如果一直处于卸载中,可能是由于文件副本数设置的问题,可对文件副本数进行调节,可以完成卸载)
停止DataNode进程与nodemanager进程。
如果不打算把机器放回集群,就需要在HDFS的include和exclude文件中去除DataNode,同时更新机架拓扑数据库。
执行
hdfs dfsadmin -refreshNodesyarn rmadmin -refreshNodes
使NameNode进行节点更新。
后序
在添加或者删除DataNode后,可能会需要调节已上传文件的副本数:
hadoop fs -setrep -R replicationNumber /
笔者已经完整操作过相关过程,如有任何疑问,可以留言进行询问!期待一起进行交流!
- HDFS之DataNode动态添加与卸载
- hadoop2之HDFS分析:Client与DataNode流程分析
- 【2-3】HDFS之DataNode
- HDFS-DataNode
- HDFS Datanode与Client之间的数据传输
- HDFS之DataNode启动过程分析
- 动态添加HDFS节点
- Hadoop datanode添加与删除
- Hadoop 之 数据流——客户端与HDFS,namenode和datanode 之间的数据流
- Hadoop动态添加删除datanode及tasktracker
- 动态添加删除datanode以及tasktracker
- Hadoop动态添加删除datanode及tasktracker
- Hadoop动态添加删除datanode及tasktracker
- Hadoop2.2.0动态添加,删除datanode,tasktracker
- hadoop1.1.2集群动态添加datanode节点
- ambari动态添加datanode和nodemanager
- CDH4 动态添加datanode和nodemanager
- Hadoop集群动态添加datanode节点步骤
- mysql中的alter语句的经典用法
- Android自定义PreferenceCategory的title颜色、字体大小写的方法
- servlet学习
- Spring Boot使用全局类型转换器(全局日期转换器为例)
- cocoscreator入门游戏任务
- HDFS之DataNode动态添加与卸载
- mysql 连接url中useUnicode=true&characterEncoding=UTF-8 的作用
- 《DLL木马进程内幕大揭秘》
- UVALive 5882 Racing Car Trail
- 面向对象高级编程——Python学习笔记08
- Python3 MySQL 数据库连接
- 冯诺依曼结构和哈佛结构02
- java的动态代理机制详解
- 简单几步 对Liunx服务器的宽带进行测速