#新增节点

1.安装lunix,和以前一样的版本
2.初始化系统环境
 2.1.设置静态ip

vi /etc/sysconfig/network-scripts/ifcfg-eth0
//增加
#Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
#BOOTPROTO=dhcp
# add
BOOTPROTO=static
ONBOOT=yes
# add
IPADDR=192.168.119.134
HWADDR=:0c:::df: //重启网络文件:service network restart

 2.2.安装jdk 配置Java 环境变量
 2.3.关闭防火墙

service iptables stop
chkconfig iptables off

3.配置ssh登陆

在新增节点:cd root
mkdir .ssh //新建.ssh目录
在master节点:cd ~/.ssh
scp authorized_keys 新增节点IP:/root/.ssh/authorized_keys //复制免密码登陆到新增节点

4.修改hosts文件

在master节点:vi /etc/hosts
//增加 新增节点IP h2slave3
//复制到其他DataNode节点
scp /etc/hosts h2slave1:/etc/hosts
scp /etc/hosts h2slave2:/etc/hosts
scp /etc/hosts h2slave3:/etc/hosts

5.复制hadoop2.2到新增节点(在master节点操作)

scp -r /home/bigdata/hadoop2. h2slave3:/home/bigdata/
//然后切换到新增节点 配置hadoop的环境变量

//在master节点修改 /home/bigdata/hadoop2./etc/hadoop/slaves
//新增 新增节点的IP

//然后复制到其他DataNode
scp /home/bigdata/hadoop2./etc/hadoop/slaves h2slave1:/home/bigdata/hadoop2./etc/hadoop/slaves
scp /home/bigdata/hadoop2./etc/hadoop/slaves h2slave2:/home/bigdata/hadoop2./etc/hadoop/slaves
scp /home/bigdata/hadoop2./etc/hadoop/slaves h2slave3:/home/bigdata/hadoop2./etc/hadoop/slaves

  5.1. 添加DataNode

//对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群
//在新增的节点上,运行 sbin/hadoop-daemon.sh start datanode
//在namenode节点刷新datanode, hdfs dfsadmin -refreshNodes

//然后在namenode查看集群情况,通过 hdfs dfsadmin -report
//也可以通过NameNode50070端口查看活动的DataNode节点数 

  5.2.平衡DataNode节点

//在Master节点 cd /home/bigdata/hadoop2./sbin

//对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M
hdfs dfsadmin -setBalancerBandWidth 67108864 //默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%
start-balancer.sh -threshold

  5.3.添加NodeManager

//由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群
//在新增节点,运行 sbin/yarn-daemon.sh start nodemanager //在ResourceManager,通过 yarn node -list 查看集群情况 

遇到问题:在复制hadoop文件夹时我复制的datanode的hadoop,最终导致,新节点与被复制节点的datanodeUuid一样(位置:{HADOOPHOME}/tmp/dfs/name/current/VERSION文件)这样会导致,被复制节点和新节点的冲突,被复制节点和新节点在web查看时,或者被复制节点出现,或者新节点出现(但均为“死节点”)
解决办法:一定要从NameNode中复制hadoop-2.2.0文件夹

#删除节点

//极端不建议直接在slave节点通过:hadoop-daemon.sh stop datanode
命令关掉datanode,这会导致hdfs中出现missing block

在hadoop0上修改conf/hdfs-site.xml文件

<property>
  <!--dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个-->
  <name>dfs.hosts.exclude</name>
  <value>/usr/local/hadoop/hadoop-2.2.0/etc/hadoop/excludes</value>
</property>

1. 在master上创建并修改excludes文件,添加需要删除节点的IP
2. 在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes

此时在Web UI上就可以看到该节点变为Decommissioning状态,过一会就变为Dead了
也可以通过:hadoop dfsadmin -report 命令查看

3. 在slave上关闭datanode进程(非必须):hadoop-daemon.sh stop datanode  

#重新加入删除的节点

1.在master的excludes文件中删除相应节点IP
2.在slave上重启datanode进程:hadoop-daemon.sh start datanode
3.在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes

Hadoop新增和删除节点的更多相关文章

  1. hadoop动态添加删除节点datanode及恢复

    1. 配置系统环境 主机名,ssh互信,环境变量等 本文略去jdk安装,请将datanode的jdk安装路径与/etc/hadoop/hadoop-evn.sh中的java_home保持一致,版本ha ...

  2. hadoop新增新数据节点和退役数据节点

    新增数据节点 0. 需求随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点.1. 环境准备 (1)在hadoop03主机上再克 ...

  3. Hadoop动态加入/删除节点(datanode和tacktracker)

    大体,正确的做法是首选的配置文件,然后开始详细机对应的进程/停止操作. 网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置. 总的来说加入/删除DataNode和TaskTracke ...

  4. hadoop 添加,删除节点

    http://www.cnblogs.com/tommyli/p/3418273.html

  5. Hadoop 新增删除节点

    1 新增Data节点 1.1 修改/etc/hosts,增加datanode的ip 1.2 在新增加的节点启动服务 hadoop-daemon.sh start datanode yarn-daemo ...

  6. Hadoop日常维护系列——Hadoop添加删除节点

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

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

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

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

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

  9. 实验-hadoop新增节点

    关于hadoop新增节点网上的说法都有些差别,自己来实践一把 1.建立一个namenode一个datanode的集群 master:192.168.126.130 slave1:192.168.126 ...

随机推荐

  1. nodejs(一)process模块

    1.process是一个全局进程,你可以直接通过process变量直接访问它. process实现了EventEmitter接口,exit方法会在当进程退出的时候执行.因为进程退出之后将不再执行事件循 ...

  2. Java学习之路-Spring的HttpInvoker学习

    Hessian和Burlap都是基于HTTP的,他们都解决了RMI所头疼的防火墙渗透问题.但当传递过来的RPC消息中包含序列化对象时,RMI就完胜Hessian和Burlap了. 因为Hessian和 ...

  3. 常见浏览器兼容性问题与解决方案css篇

    浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大. 碰到频率:100% 解决方案:CSS里    ...

  4. 在linux下使用sqlcmd

    1.curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.re ...

  5. UIWebview于JS交互

    最近使用火车票网的限行网页,但是广告以及头部nav和地步footer都是我们现在所不需要的,所以决定使用js交互,下面所有代码都写在 webViewDidFinishLoad 里面 1.查看原网址的源 ...

  6. 15 jmeter分布式性能测试

    背景由于jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起Java内存溢出的错误.要解决这个问题,可以使用分布式测试,运行多台机器运用所 ...

  7. 006-springboot2.0.4 配置log4j2,以及打印mybatis的sql

    一.pom配置 普通项目 <!-- log4j2 --> <dependency> <groupId>org.apache.logging.log4j</gr ...

  8. 非受限联合体 - 现代C++新特性总结

    非受限联合体 非受限联合体:C++98中并不是所有数据类型都能够成为union的数据成员,不允许联合体拥有非POD(Plain Old Data).静态或引用类型的成员. C++11中取消了联合体对于 ...

  9. vertx 从Tcp服务端和客户端开始翻译

    写TCP 服务器和客户端 vert.x能够使你很容易写出非阻塞的TCP客户端和服务器 创建一个TCP服务 最简单的创建TCP服务的方法是使用默认的配置:如下 NetServer server = ve ...

  10. Linux编译安装中configure、make和make install各自的作用

      这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或G ...