Hadoop的全分布式安装网上也很多教程,踩过很多坑,整理不出来了……赶紧把增加删除节点留住。

均衡数据

(1)设置数据传输带宽为64M(默认值比较低)

  hdfs dfsadmin -setBalancerBandwidth 67108864

(2)平衡数据,默认balancer的threshold为10%,即各个节点存储使用率偏差不超过10%,我们可将其设置为1%(1~100)

  ./sbin/start-balancer.sh -threshold 1

或者hdfs balancer -threshold 1(显示平衡过程)

从hadoop的web页面可以观察到各个节点的存储使用率更接近了

1.增加节点

已有CentOS 7的虚拟机node00(namenode)、node01(datanode)、node02(datanode),虚拟机上都有JDK1.8.0_45,Hadoop-2.6.5。准备一个新的虚拟机node03(datanode)。

为了方便,选择克隆虚拟机node02,克隆后修改新虚拟机node03的配置:

(1)删除logs和core-site.xml配置文件中hadoop.tmp.dir的目录

  rm -rf /usr/local/hadoop-2.6.5/logs/*.*

  rm -rf /usr/local/hadoop-2.6.5/tmp/*

(2)删除hdfs-site.xml配置文件中datanode.data.dir目录

  rm -rf /app/hadoop/data/*

(3)修改主机名、IP地址

vi  /etc/sysconfig/network

  vi  /etc/sysconfig/network-scripts/ifcfg-ens33

然后修改所有虚拟机的配置(加上新节点):

(1)/etc/hosts

(2)Slaves

设置无密码访问node03(在node00生成密钥并分发给其他虚拟机)

  ssh-keygen -t rsa

scp -p ~/.ssh/id_rsa.pub node01@192.168.59.254:/root/.ssh/authorized_keys

  scp -p ~/.ssh/id_rsa.pub node02@192.168.59.253:/root/.ssh/authorized_keys

  scp -p ~/.ssh/id_rsa.pub node03@192.168.59.252:/root/.ssh/authorized_keys

启动node03的datanode和nodemanager

  hadoop-daemon.sh start datanode

  yarn-daemon.sh start nodemanager

刷新hadoop 的web页面即可看的新的节点。如果原节点中有数据,会自动分给新节点一定量的数据

2. 删除节点

在namenode中打开hdfs-site.xml,设置节点排除文件的位置(绝对路径)

  <property>

  <name>dfs.hosts.exclude</name>

  <value>/usr/local/hadoop-2.6.5/etc/hadoop/excludes</value>

  </property>

在路径中新建文件excludes,并在文件中添加要排除的节点主机名

在namenode中强制重新加载配置

  hdfs dfsadmin -refreshNodes

在hadoop的web页面上看到该节点变成Decommission,此时namenode会检查并将数据复制到其它节点上以恢复副本数(要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们)。

通过命令也可以查看状态:

  hdfs dfsadmin -report

等状态变成Decommissioned后就可以关闭该节点

  hadoop-daemon.sh stop datanode

几分钟后,节点将从Decommissioned进入Dead状态。

最后更新集群配置,从namenode的excludes文件及slaves文件、hosts文件中去掉已经移除的主机名,在所有DataNode上执行hadoop-pull.sh脚本,同步配置。

删除的节点可以清空数据重新使用

  rm -rf /usr/local/hadoop-2.6.5/logs/*.*

  rm -rf /usr/local/hadoop-2.6.5/tmp/*

  rm -rf /app/hadoop/data/*

原始数据分布

自动备份中

自动备份后

删除节点后

Hadoop动态增加节点与删除节点的更多相关文章

  1. jQuery---清空节点和删除节点

    清空节点和删除节点 //可以清空一个元素的内容 //清理门户 $("div").empty(); //完全移除元素 $("div").remove(); $(f ...

  2. jQuery中的查找节点、创建节点、插入节点、删除节点、替换节点、复制节点操作方法

    jQuery操作节点我们可以分六点来讲,查找节点.创建节点.插入节点.删除节点.替换节点.复制节点. 一.查找节点 text() - 设置或返回所选元素的文本内容   ,html() - 设置或返回所 ...

  3. Hadoop记录-Hadoop集群添加节点和删除节点

    1.添加节点 A:新节点中添加账户,设置无密码登陆 B:Name节点中设置到新节点的无密码登陆 C:在Name节点slaves文件中添加新节点 D:在所有节点/etc/hosts文件中增加新节点(所有 ...

  4. jQuery – 7.动态创建Dom、删除节点

    动态创建Dom节点     1.使用$(html字符串)来创建Dom节点     2.append方法用来在元素的末尾追加元素     案例:动态生成网站列表     3.prepend,在元素的开始 ...

  5. Hadoop下添加节点和删除节点

    添加节点 1.修改host   和普通的datanode一样.添加namenode的ip 2.修改namenode的配置文件conf/slaves   添加新增节点的ip或host 3.在新节点的机器 ...

  6. Redis集群增加节点和删除节点

    本文主要是承接上一篇文章Redis集群的离线安装成功以后,我们如何进行给集群增加新的主从节点(集群扩容)以及如何从集群中删除节点(集群缩容),也就是集群的伸缩,集群伸缩的原理是控制虚拟槽和数据在节点之 ...

  7. Docker swarm集群增加节点和删除节点

    Docker swarm集群增加节点 docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm j ...

  8. jQuery选择器(添加节点及删除节点及克隆及替换及包装)第九节

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. c#操作xml的代码(插入节点、修改节点、删除节点等)

    bookstore.xml文件内容: 复制代码代码示例: <?xml version="1.0" encoding="gb2312"?><bo ...

随机推荐

  1. [转帖]前端 crypto-js aes 加解密

    前端 crypto-js aes 加解密 2018.04.13 11:37:21字数 891阅读 59767 https://www.jianshu.com/p/a47477e8126a 原来前端也有 ...

  2. 从 select ... for update来分析mysql的锁

    一 mysql的悲观锁 - 以行锁做示例 每次拿数据的时候都认为别的线程会修改数据,所以每次拿数据的时候都会给数据上锁.上锁之后,当别的线程想要拿数据时,就会阻塞.直到给数据上锁的线程将事务提交或者回 ...

  3. 【坑】解决maven管理SSM中mybatis的mapper文件扫描失败的问题

    文章目录 前言 改进方式来替换原始的使用方式 后记 好久没有写博客了,11月底来到公司实习,上个月写个小demo,趁此回顾下SSM,今天将最近的积累记录下: 前言 在学习 mybatis 的时候,都知 ...

  4. LIUNX随堂学习-3 权限

    1.权限分为三类:读r,写w,执行x 2.读r:可以ls改目录下的子文件名,子目录名 写w:可以在该目录下创建.删除.重命名 执行x:可以cd到该目录下 3. ll  (ls -l) 下详细信息的意义 ...

  5. 解决 pycharm [Errno 11001] getaddrinfo failed 错误提示!

    我看网上很多问题对这个问题的解决方法也是一只半解的,可能产生问题的原因不一样吧,今天我说下我的经验 解决办法: 原因就是你的本地dns解析的host文件,里面的的解析地址被注释了! 打开本地的hous ...

  6. oj上的测试点信息

    Accepted                          通过!(AC) Wrong Answer                  答案错.(WA) Runtime Error      ...

  7. axios的二次封装

    'use strict' import axios from 'axios' import qs from 'qs' var host = "https://www.easy-mock.co ...

  8. 谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN

    谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN 朱晓霞发表于目标检测和深度学习订阅 235 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 ...

  9. IDEA中通过Maven插件使用MyBatis Generator

    这样做更简单,参考: IDEA集成MyBatis Generator 插件 详解

  10. Tomcat安装及其目录结构介绍

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomcat的安装版本有绿色解压 ...