adoop集群动态添加和删除节点
上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除。
首先将启动四台机器(一主三从)组成的hadoop集群,还是要提醒一句,在启动集群的时候一定要切换到hadoop用户下,并使用jps命令检查hadoop集群中的每台机器是否已经启动成功。
master机器:
- [root@master ~]# su - hadoop
- [hadoop@master ~]$ start-all.sh
- Warning: $HADOOP_HOME is deprecated.
- starting namenode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out
- slave1: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out
- slave3: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave3.out
- slave2: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out
- master: starting secondarynamenode, loggingto/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out
- starting jobtracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out
- slave2: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out
- slave1: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out
- slave3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave3.out
- [hadoop@master ~]$ jps
- 1900 Jps
- 1662 SecondaryNameNode
- 1741 JobTracker
- 1512 NameNode
- [hadoop@master ~]$
slave1机器:
- [root@slave1 ~]# su - hadoop
- [hadoop@slave1 ~]$ jps
- 1476 DataNode
- 1562 TaskTracker
- 1620 Jps
slave2机器:
- [root@slave2 ~]# su - hadoop
- [hadoop@slave2 ~]$ jps
- 1474 DataNode
- 1630 Jps
- 1536 TaskTracker
slave3机器:
- [root@slave3 ~]# su - hadoop
- [hadoop@slave3 ~]$ jps
- 1474 DataNode
- 1651 Jps
- 1536 TaskTracker
四台机器的hadoop集群启动成功,在通过浏览器看一下集群的情况,如下面的图,mapreduce和namenode都是对应三个从服务器。
namenode:
mapreduce:
现在我就执行添加服务器的操作,其实这个很简单,首先我们要准备一台新的服务器,并且在新的服务器中安装好jdk环境以及hadoop,具体怎么安装就不说了,看上一篇博客。
修改所有机器的hosts文件和/home/hadoop/hadoop/conf下slaves文件,切换到hosts文件在文件的后面添加新节点的ip和机器名:192.168.56.204 slaves,再切换到hadoop用户,在slaves文件后面添加slave4,到此一台机器就配置完成,其他机器也是一样。新添加的节点中hosts文件和/home/hadoop/hadoop/conf下slaves文件内容和之前已经存在的节点配置一样,这里就不赘述了。
这里需要注意的是,需要在master机器中将.ssh目录下的公钥认证列表authorized_keys发送给slave4,这样启动hadoop集群的时候就不要输入slave4机器的密码了,方便启动操作,其实不发也可以,就是启动集群的时候数据密码麻烦一点。
配置都完成了,现在就在slave4机器中操作了。
切换到hadoop用户,进入hadoop的bin目录下执行下面的两个命令:
- [hadoop@slave4 bin]$ hadoop-daemon.sh startdatanode
- Warning: $HADOOP_HOME is deprecated.
- starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave4.out
- [hadoop@slave4 bin]$
- [hadoop@slave4 bin]$
- [hadoop@slave4 bin]$ hadoop-daemon.sh starttasktracker
- Warning: $HADOOP_HOME is deprecated.
- starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave4.out
使用jps检测是否启动成功:
- [hadoop@slave4 bin]$ jps
- 24581 Jps
- 24505 TaskTracker
- 24432 DataNode
- [hadoop@slave4 bin]$
然后我们通过浏览器访问namenode和mapreduce,看集群中是否添加了一个节点。
namenode:
mapreduce:
添加成功后我们就要考虑删除如何执行。其实并难。
首先关闭需要删除的节点:
- [hadoop@slave4 bin]$ hadoop-daemon.sh stopdatanode
- Warning: $HADOOP_HOME is deprecated.
- stopping datanode
- [hadoop@slave4 bin]$ hadoop-daemon.sh stoptasktracker
- Warning: $HADOOP_HOME is deprecated.
- stopping tasktracker
使用jps命令检查是否关闭成功。
- [hadoop@slave4 bin]$ jps
- 24649 Jps
- [hadoop@slave4 bin]$
其实此时通过浏览器查看已经少了一个节点,但是这种删除只是临时的,当集群关闭,再重新启动集群,这个临时删除的节点就会再次加到集群中。
接下来我就说一下如何在配置文件中配置,保证重启集群,不会再将删除的集群添加进去。
进入master机器中hadoop用户下hadoop解压目录下的conf目录:
将:将下面的这几行添加到hdfs-site.xml配置文件中即可。
- <property>
- <name>dfs.hosts.exclude</name>
- <value>/home/hadoop/hadoop/conf/excludes</value>
- </property>
然后在conf目录下创建一个excludes文件,将需要删除的节点机器名添加到文件中即可。
添加结束后刷新一下节点信息:
- [hadoop@master conf]$ hadoop dfsadmin –refreshNodes
刷新浏览器,查看namenode和mapreduce对应的节点数:
namenode:
mapreduce:
adoop集群动态添加和删除节点的更多相关文章
- Redis集群动态增加和删除节点
一.添加节点 1.首先将需要添加的节点启动: 这里启动redis6383.conf和redis6393.conf两个节点 查看原有节点: 3个主节点所对应的哈希槽(hash slo ...
- 使用Cloudrea Manager在CDH集群中添加kafka服务节点,更改borker.id配置后无法启动
需要保证meta.properties文件中的broker.id和cloudrea manager的web页面上kafka配置的broker.id一致,最好让server.properties中的br ...
- Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)
不多说,直接上干货! hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集 ...
- Elasticsearch集群管理之添加、删除节点
1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...
- Redis 集群环境添加节点失败问题
最近在给公司网管系统Redis集群环境添加节点时候遇到一个问题,提示新增的Node不为空: [root@node00 src]# ./redis-trib.rb add-node --slave -- ...
- 在Hadoop集群中添加机器和删除机器
本文转自:http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html 无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个 ...
- 向CDH5集群中添加新的主机节点
向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...
- 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接
查看本章节 查看作业目录 需求说明: 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的"删除"超链接,使用 DOM 节点的删除操作将对应的 ...
- Hyperledger Fabric节点的动态添加和删除
前言 在Hyperledger Fabric组织的动态添加和删除中,我们已经完成了在运行着的网络中动态添加和删除组织.本文将在其基础上,详细介绍了如何在 soft 组织上添加新的 peer2 节点,并 ...
随机推荐
- 【nat---basic,napt,easy ip】
display nat :显示nat 信息 debugging nat :对nat进行调试 reset nat session:擦除nat连接配置 basic-nat:公网->私网(一对一) n ...
- angularjs Directive自定义指令详解
作用:需要用Directive有下面的情景: 1.使你的Html更具语义化,不需要深入研究代码和逻辑即可知道页面的大致逻辑. 2. 抽象一个自定义组件,在其他地方进行重用. 3.使用公共代码,减少重复 ...
- vuex组件 vuex-persistedstate
vuex用于管理项目中的全局状态,但是我们一刷新vuex中保存的全局状态就会被全部初始化,虽然我们也可以同事缓存到storage中做两步操作,但是vuex-persistedstate组件已经帮我们完 ...
- python 中的UDP和TCP(1)
一.TCP: TCP是Transmission Control Protocol的简称,中文名传输控制协议.是一种面向连接的.可靠的.基于字节流的传输层通信协议.TCP通信需要经过创建连接.数据传输. ...
- 用友二次开发之科脉TOT3凭证接口
按客户的要求,根据科脉导出的数据,开发一个工具,将凭证导入T3 这个科目导出的凭证格式. 选择账套登陆,你没看错,这个是我开发的登陆界面. 选择接口文件. 软件自动进数据分类,你可以看到数据了.但只是 ...
- keil5 mdk使用ST-Link II下载出现cannot halt the core解决办法
在正常的程序里面,我添加了MB85RS16(spi flash)这个外设驱动代码后,使用ST-Link II下载就出现cannot halt the core. 这个现象之前出现过1次,但是解决办法忘 ...
- Java 中编码与摘要算法
URL 编码与解码 String s = "你好,世界!"; // URL 编码 String urlEncodedString = URLEncoder.encode(s, &q ...
- c/c++ 数组传参
在c/c++中,在进行数组传参时,数组的元素个数默认是不作为实参传入调用函数,也就是说c/c++ 不允许向函数传递一个完整的数组作为参数 实例: 1.形式参数是一个指针,实参包括数组长度: 1 voi ...
- Cadence17.2下载ALTERA的FPGA封装库
1. 在Cadence的安装目录里面找了下,发现都没有Altera的FPGA型号的函数库,下面的虽然是ALTERA,但是没有FPGA的器件封装 2. 去intel的官网看能不能下载到,INTEL网址, ...
- Memcached Hash算法
本文来自网易云社区 作者:吕宗胜 Hash算法 1. Memcached Hash介绍 我们在前面的文章中已经介绍过了Memcached的内存管理方式,LRU的策略.由于Memcached的数据存储方 ...