Hadoop记录-Hadoop集群添加节点和删除节点
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集群添加节点和删除节点的更多相关文章
- Redis集群动态增加和删除节点
一.添加节点 1.首先将需要添加的节点启动: 这里启动redis6383.conf和redis6393.conf两个节点 查看原有节点: 3个主节点所对应的哈希槽(hash slo ...
- k8s集群添加新得node节点
服务端操作: 方法一: 获取master的join token kubeadm token create --print-join-command 重新加入节点 kubeadm join 192.16 ...
- hadoop 2.3 集群总结
用了近两个礼拜的摸索终于搭建好了hadoop集群,测试性能也符合预期. centos6.4下hadoop2.3集群总结如下: 关于环境的设置: 1.关闭selinux (反复折腾了好多次) vi /e ...
- hadoop集群添加新节点
0.说明 Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点.以下就是增加的过程. 1.配置运行环境 安装与master和其他slave相同的java环境,jdk版本要相同 ...
- Hadoop 2.8集群安装及配置记录
第一部分:环境配置(含操作系统.防火墙.SSH.JAVA安装等) Hadoop 2.8集群安装模拟环境为: 主机:Hostname:Hadoop-host,IP:10.10.11.225 节点1:Ho ...
- Hadoop伪分布式集群环境搭建
本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...
- Hadoop(三)手把手教你搭建Hadoop全分布式集群
前言 上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的.接下来我将给大家分享一下全分布式集群的搭建! 其实搭建最基本的全分布式集群和伪分布式集群 ...
- Hadoop高可用集群
1.简介 若HDFS集群中只配置了一个NameNode,那么当该NameNode所在的节点宕机,则整个HDFS就不能进行文件的上传和下载. 若YARN集群中只配置了一个ResourceManager, ...
- Hadoop(三)搭建Hadoop全分布式集群
原文地址:http://www.cnblogs.com/zhangyinhua/p/7652686.html 阅读目录(Content) 一.搭建Hadoop全分布式集群前提 1.1.网络 1.2.安 ...
- 『实践』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 ...
随机推荐
- 大学java教案之MySQL安装图解
一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe". 2.选择安装类型,有"Typ ...
- ionic更改端口号
—— 重新指定端口号为8888 serve [options] ............................... 启动本地服务器进行开发测试 dev/testing [--console ...
- Ubuntu解压
tar -zxvf FileName.tar.gz tar -jxvf FileName.tar.bz2 unzip FileName.zip sudo dpkg -i 文件名.deb
- Ubuntu下编写终端界面交互式C++小程序的一些Trick(小技巧,gnome-terminal)
类getch()功能的实现 I 只要在Windows下用过C/C++就会很熟悉conio.h库中的一个函数getch(),它可以绕过终端输入缓冲区直接从键盘读取一个字符,并且不在界面上显示. 但如果想 ...
- SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发。
SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发.是目前企业开发比较流行的架构.代替了之前的SSH(Struts + Spring + Hibernate) 计划 ...
- 软硬连接ln
软硬连接Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引 ...
- [WC2008]游览计划(状压dp)
题面太鬼畜不粘了. 题意就是给一张n*m的网格图,每个点有点权,有k个关键点,让你把这k个关键点连成一个联通快的最小代价. 题解 这题nmk都非常小,解法肯定是状压,比较一般的解法插头dp,但不太好写 ...
- 【php】php实现数组反转
php里面有个函数可以反转数组,工作中也经常用到,非常方便.今天来自己实现这样的功能. $arr = [2,5,6,1,8,16,12]; function reverse($arr){ $left ...
- hdu 1686 Oulipo (kmp)
Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...
- Manjaro下Steam无法启动
问题描述 直接在桌面环境运行Steam,不会出现任何反应,甚至没有闪过一个对话框. 在终端中运行Sterm,出现以下提示 Repairing installation, linking /home/z ...