1 涉及到的命令:
hadoop-daemon.sh start namenode hadoop-daemon.sh start datanode yarn-daemon.sh start resourcemanager yarn-daemon.sh start nodemanager yarn node -list ./hdfs dfsadmin -refreshNodes ./hdfs dfsadmin -report hadoop job -list hadoop job -kill jobid //停止一个正在运行的job 启动数据负载均衡 /start-balancer.sh -threshold 5
2 新增加一个节点
1 准备机器及运行环境 配置hostname和hosts 环境变量 2 配置无秘钥登录ssh 。ssh-copy-id 3 在各个节点中添加新节点的host。 4 修改namenode中slaves文件(每次namenode重启会读取这个文件,启动时候可以直接启动新添加节点) 5 copy hadoop文件夹到新添加节点的一样文件夹中 。 scp 6 删除新节点中 hadoop中的临时文件夹我的是tmp文件夹(hadoop在配置文件中配置的工作目录) 7 启动datanode ,sbin/hadoop-daemon.sh start datanode在hdfs dfsadmin -refreshNodes刷新节点 hdfs dfsadmin -report或者nameNode50070 查看新添加的节点 8 平衡各个节点中数据块的大小: /start-balancer.sh -threshold 5 9 启动nodeManager,yarn-daemon.sh start nodemanager,通过yarn node -list 查看所有node节点 或者通过 http://resourceManagerhost:8088/ 查看其中节点数目
3 删除一个节点:
移除节点:最好不要直接停止机器否则可能造成机器数据块丢失 a) 修改hdfs-site,添加exclude字段中的排除的节点 <property> <name>dfs.hosts.exclude</name> <value>/web/hadoop-2.5.2/etc/hadoop/datanode-deny.list</value> </property> 添加文件: datanode-deny.list其中的内容加入需要删除的节点ip或者主机名称 (我自己弄的时候这两个文件同步到集群中所有节点中) b) 刷新节点状态: hadoop dfsadmin -refreshNodes 查看节点状态变为:decommission 此时namenode不会与该节点进行hdfs相关通信。也即exclude起到了一个防火墙的作用
4 删除节点后恢复
如果删除后想重新加入: 1 ) 删除datanode-deny.list文件中节点 2)hadoop dfsadmin -refreshNodes 3) 重新新加入的节点datanode 进程