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. Redis 5种数据结构

    转载:https://baijiahao.baidu.com/s?id=1593806211408070879&wfr=spider&for=pc Redis数据类型 Redis支持五 ...

  2. 前端 -- HTML内容

    HTML介绍 Wed服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5 ...

  3. 【BZOJ4042】【CERC2014】parades 状压DP

    题目大意 给你一棵\(n\)个点的树和\(m\)条路径要求你找出最多的路径,使得这些路径不共边.特别的,每个点的度数\(\leq 10\). \(n\leq 1000,m\leq \frac{n(n- ...

  4. 安装 linux-dash

    先看看软件的效果图,再介绍安装方法. 通过上图可以看到.软件可以实时监控CPU.内存.网络流量等相关信息,甚至可以监控到硬件信息安装方法:yum -y install httpd php zip un ...

  5. Android应用开发资源

    Android应用设计和开发人员现在可以参考由Android用户体验(UX)团队官方发布的Android设计指南.该指南提供了开发者应该遵循的基本原则,并列出了很多细节指导,涉及设备与显示.主题.触控 ...

  6. BUG关闭原因

    已解决:缺陷已经修复. 重复缺陷:是指在系统里相同原因的缺陷已经被其他人报告.在此缺陷被作为重复缺陷返回时,先不要立即取消.必须等到核查修复后,才在系统里取消.这是因为有些缺陷被误认为是重复缺陷,实际 ...

  7. VS编译LESS插件

    1. LESS   用LESS写CSS可以用写程序代码的习惯写CSS.用了之后写CSS的效率会提高很多. 2.解释LESS 写出来的文件扩展名是.less,要运行的话,先解释成正常的CSS文件. 3. ...

  8. ajaxmin.exe 命令参数

    这个工具用来压缩JS和CSS文件的,可去掉多余空格,换行,还修改函数名变得难以读取等. 下载这工具,下载之后是一个.msi文件可以安装.安装之后在命令行里操作即可 (下载地址和文档) http://a ...

  9. 【linux】/dev/null作用和/dev/random

    一.  /dev/null /dev/null属于字符特殊文件,它属于空设备,是一个特殊的设备文件,它会丢弃一切写入其中的数据,写入它的内容都会永远丢失,而且没有任何可以读取的内容. 我们用file命 ...

  10. 【redis】redis常用命令及操作记录

    redis-cli是Redis命令行界面,可以向Redis发送命令,并直接从终端读取服务器发送的回复. 它有两种主要模式:一种交互模式,其中有一个REPL(read eval print loop), ...