1、添加节点

A:新节点中添加账户,设置无密码登陆

B:Name节点中设置到新节点的无密码登陆

C:在Name节点slaves文件中添加新节点

D:在所有节点/etc/hosts文件中增加新节点(所有节点保持一致)

E:在新节点中执行

./bin/hadoop-daemon.sh start datanode

./bin/hadoop-daemon.sh start tasktracker

均衡个数据节点中的数据./bin/start-balancer.sh

注意

1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率

2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

./bin/start-balancer.sh -threshold 5

3)设置balance的带宽,默认只有1M/s

<property>

  <name>dfs.balance.bandwidthPerSec</name>

  <value>1048576</value>

  <description>

    Specifies the maximum amount of bandwidth that each datanode

    can utilize for the balancing purpose in term of

    the number of bytes per second.

  </description>

</property>

2、删除节点

A:修改Name节点的hdfs-site.xml增加

<property>

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

<value>/soft/hadoop/conf/excludes</value>

</property>

B:修改Name节点的mapred-site.xml增加

<property>

<name>mapred.hosts.exclude</name>

<value>/soft/hadoop/conf/excludes</value>

<final>true</final>

</property>

C:新建excludes文件,文件里写要删除节点的hostname

D:Name节点执行

hadoop mradmin –refreshNodes

hadoop dfsadmin –refreshNodes<br>(task进程可以kill进程ID)

查看关闭进程

hadoop dfsadmin -report

当节点处于Decommissioned,表示关闭成功。

注意

1:如果刚删除的节点要再添加到集群要先删除excludes文件,执行 hadoop dfsadmin –refreshNodes

2:节点的状态可以通过http://NameNodes:50070查看

3:如果数据较大则关闭的时间可能会很长

-----------------------------------------------------------------------------------------------------------------------------------------------------

#新增节点

1.安装linux,和以前一样的版本 
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=00:0c:29:59:df:84 //重启网络文件: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.2 h2slave3:/home/bigdata/
//然后切换到新增节点 配置hadoop的环境变量

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

//然后复制到其他DataNode
scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave1:/home/bigdata/hadoop2.2/etc/hadoop/slaves
scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave2:/home/bigdata/hadoop2.2/etc/hadoop/slaves
scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave3:/home/bigdata/hadoop2.2/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.2/sbin

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

  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

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

卸载节点或者增加节点: 
方式一:静态的增添删除:将集群关闭,修改配置文件(etc/hadoop/slaves),重新启动集群(很黄很暴力,不够人性化)。 
方式二:动态的增加和卸载节点。

卸载DataNode节点: 
1)要在HDFS主节点NameNode上,进行配置。 
a)在etc/hadoop/hdfs-site.xml中,设置属性值:

dfs.hosts.exclude 
/opt/modules/hadoop-2.5.0/ect/hadoop/dfs-hosts.exclude

b)创建文件并在文件中加入卸载节点的IP地址或者主机名。 
2)在NameNode节点上刷新集群 
bin/hdfs dfsadmin -refreshNodes 
3)从页面查看卸载相关信息(过程)。 
4)通过命令来查看结果。 
bin/hdfs dfsadmin -report 
5)在卸载机器上关闭DataNode进程 
sbin/hadoop-daemon.sh stop datanode 
6)将dfs-hosts.exclude文件内容清空

注意: 
在卸载NodeManager时,一定要主要配置在ResourceManager上。 
yarn.resourcemanager.nodes.exclude-path 
/opt/modules/hadoop-2.5.0/etc/hadoop/yarn-hosts.exclude

增加新机器,DataNode(存储数据)和NodeManager(计算) 
1)系统、主机名、IP地址、防火墙、SELinux等与集群的从节点基本配置保持一致。 
2)安装JDK(版本、路径、环境变量保持一致)。 
3)配置主节点(HDFS:NameNode;YARN:ResourceManager)所在机器到新机器的SSH无密钥登录(方便集群的启动)。 
4)配置修改etc/hadoop/slaves文件(只需要在主节点上修改)。 
5)分发hadoop安装包(配置完成)到新机器上。 
6)创建HDFS、YARN在新机器的本地磁盘上一些文件夹。 
7)在新机器上启动DataNode和NodeManager节点。 
DataNode:sbin/hadoop.daemon.sh start datanode 
NodeManager:sbin/yarn.daemon.sh start nodemanager 
注意: 
需要将新机器的IP地址与主机名称的映射关系配置到系统的【/etc/hosts】文件中,最好是所有集群中的机器都要添加。

Hadoop记录-Hadoop集群添加节点和删除节点的更多相关文章

  1. Redis集群动态增加和删除节点

    一.添加节点 1.首先将需要添加的节点启动: 这里启动redis6383.conf和redis6393.conf两个节点 查看原有节点:           3个主节点所对应的哈希槽(hash slo ...

  2. k8s集群添加新得node节点

    服务端操作: 方法一: 获取master的join token kubeadm token create --print-join-command 重新加入节点 kubeadm join 192.16 ...

  3. hadoop 2.3 集群总结

    用了近两个礼拜的摸索终于搭建好了hadoop集群,测试性能也符合预期. centos6.4下hadoop2.3集群总结如下: 关于环境的设置: 1.关闭selinux (反复折腾了好多次) vi /e ...

  4. hadoop集群添加新节点

    0.说明 Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点.以下就是增加的过程. 1.配置运行环境 安装与master和其他slave相同的java环境,jdk版本要相同 ...

  5. Hadoop 2.8集群安装及配置记录

    第一部分:环境配置(含操作系统.防火墙.SSH.JAVA安装等) Hadoop 2.8集群安装模拟环境为: 主机:Hostname:Hadoop-host,IP:10.10.11.225 节点1:Ho ...

  6. Hadoop伪分布式集群环境搭建

    本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...

  7. Hadoop(三)手把手教你搭建Hadoop全分布式集群

    前言 上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的.接下来我将给大家分享一下全分布式集群的搭建! 其实搭建最基本的全分布式集群和伪分布式集群 ...

  8. Hadoop高可用集群

    1.简介 若HDFS集群中只配置了一个NameNode,那么当该NameNode所在的节点宕机,则整个HDFS就不能进行文件的上传和下载. 若YARN集群中只配置了一个ResourceManager, ...

  9. Hadoop(三)搭建Hadoop全分布式集群

    原文地址:http://www.cnblogs.com/zhangyinhua/p/7652686.html 阅读目录(Content) 一.搭建Hadoop全分布式集群前提 1.1.网络 1.2.安 ...

  10. 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现

    『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...

随机推荐

  1. BZOJ 4196 软件包管理器

    树链剖分 建树之后,安装软件就是让跟节点到安装的节点路径所有点权+1,卸载软件就是让一个节点和他的子数-1 要求变化数量的话直接求和相减就行啦(绝对值) 注意一点,一开始的lazyatag应该是-1, ...

  2. POJ 3460 Booksort(算竞进阶习题)

    IDA* 这题真不会写..估价函数太巧妙了.. 按照lyd神牛的说法我们把a[i+1]=a[i]+1记为正确后继,反之则记为错误后继 那么考虑最优的一次交换区间,至多能够纠正三个错误后继,所以我们统计 ...

  3. bzoj 1854: [Scoi2010]游戏 (并查集||二分图最大匹配)

    链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1854 写法1: 二分图最大匹配 思路:  将武器的属性对武器编号建边,因为只有10000种 ...

  4. MT【253】仿射和蒙日圆

    如图,设点$M(x_0,y_0)$是椭圆$C:\dfrac{x^2}{2}+y^2=1$上一点,从原点$O$向圆$M:(x-x_0)^2+(y-y_0)^2=\dfrac{2}{3}$作两条切线分别与 ...

  5. 【Linux命令】linux一次性解压多个.gz或者.tar.gz文件

    原文:linux一次性解压多个.gz或者.tar.gz文件 解压多个压缩包 对于解压多个.gz文件的,用此命令: for gz in *.gz; do gunzip $gz; done 对于解压多个. ...

  6. [luogu4072][bzoj4518][SDOI2016]征途【动态规划+斜率优化】

    题目分析 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜.所以,一段路 ...

  7. virtio,macvtap,sriov

    本文转自http://xiaoli110.blog.51cto.com/1724/1558984 一个完整的数据包从虚拟机到物理机的路径是: 虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理 ...

  8. 第二届强网杯wp

    web web签到 利用了md5碰撞 payload为 param1 =%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b% ...

  9. LCOW —— 单一Docker引擎下可同时运行Linux和Windows容器啦!

    https://blog.csdn.net/m2l0zgssvc7r69efdtj/article/details/79251059 就在上周,Docker官方的master分支上新增了LCOW(Li ...

  10. C# Winfrom MDI(多文档界面)

    1.首先设置父级Form1界面,只需要将该界面的IsMdiContainer属性设置为true: 2.设置按钮的事件来打开子级的窗口Form2,Form3等等: 3.在From1内设置一个容器pane ...