hadoop集群动态添加和删除节点说明

上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除。

首先将启动四台机器(一主三从)组成的hadoop集群,还是要提醒一句,在启动集群的时候一定要切换到hadoop用户下,并使用jps命令检查hadoop集群中的每台机器是否已经启动成功。

master机器:

  1. [root@master ~]# su - hadoop
  2. [hadoop@master ~]$ start-all.sh
  3. Warning: $HADOOP_HOME is deprecated.
  4. starting namenode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out
  5. slave1: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out
  6. slave3: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave3.out
  7. slave2: starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out
  8. master: starting secondarynamenode, loggingto/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out
  9. starting jobtracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out
  10. slave2: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out
  11. slave1: starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out
  12. slave3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave3.out
  13. [hadoop@master ~]$ jps
  14. 1900 Jps
  15. 1662 SecondaryNameNode
  16. 1741 JobTracker
  17. 1512 NameNode
  18. [hadoop@master ~]$

slave1机器:

  1. [root@slave1 ~]# su - hadoop
  2. [hadoop@slave1 ~]$ jps
  3. 1476 DataNode
  4. 1562 TaskTracker
  5. 1620 Jps

slave2机器:

  1. [root@slave2 ~]# su - hadoop
  2. [hadoop@slave2 ~]$ jps
  3. 1474 DataNode
  4. 1630 Jps
  5. 1536 TaskTracker

slave3机器:

  1. [root@slave3 ~]# su - hadoop
  2. [hadoop@slave3 ~]$ jps
  3. 1474 DataNode
  4. 1651 Jps
  5. 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目录下执行下面的两个命令:

  1. [hadoop@slave4 bin]$ hadoop-daemon.sh startdatanode
  2. Warning: $HADOOP_HOME is deprecated.
  3. starting datanode, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave4.out
  4. [hadoop@slave4 bin]$
  5. [hadoop@slave4 bin]$
  6. [hadoop@slave4 bin]$ hadoop-daemon.sh starttasktracker
  7. Warning: $HADOOP_HOME is deprecated.
  8. starting tasktracker, logging to/home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave4.out

使用jps检测是否启动成功:

  1. [hadoop@slave4 bin]$ jps
  2. 24581 Jps
  3. 24505 TaskTracker
  4. 24432 DataNode
  5. [hadoop@slave4 bin]$

然后我们通过浏览器访问namenode和mapreduce,看集群中是否添加了一个节点。

namenode:

mapreduce:

添加成功后我们就要考虑删除如何执行。其实并难。

首先关闭需要删除的节点:

  1. [hadoop@slave4 bin]$ hadoop-daemon.sh stopdatanode
  2. Warning: $HADOOP_HOME is deprecated.
  3. stopping datanode
  4. [hadoop@slave4 bin]$ hadoop-daemon.sh stoptasktracker
  5. Warning: $HADOOP_HOME is deprecated.
  6. stopping tasktracker

使用jps命令检查是否关闭成功。

  1. [hadoop@slave4 bin]$ jps
  2. 24649 Jps
  3. [hadoop@slave4 bin]$

其实此时通过浏览器查看已经少了一个节点,但是这种删除只是临时的,当集群关闭,再重新启动集群,这个临时删除的节点就会再次加到集群中。

接下来我就说一下如何在配置文件中配置,保证重启集群,不会再将删除的集群添加进去。

进入master机器中hadoop用户下hadoop解压目录下的conf目录:

将:将下面的这几行添加到hdfs-site.xml配置文件中即可。

  1. <property>
  2. <name>dfs.hosts.exclude</name>
  3. <value>/home/hadoop/hadoop/conf/excludes</value>
  4. </property>

然后在conf目录下创建一个excludes文件,将需要删除的节点机器名添加到文件中即可。

添加结束后刷新一下节点信息:

  1. [hadoop@master conf]$ hadoop dfsadmin –refreshNodes

刷新浏览器,查看namenode和mapreduce对应的节点数:

namenode:

mapreduce:

这样就完成了hadoop集群的添加的删除了。

adoop集群动态添加和删除节点的更多相关文章

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

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

  2. 使用Cloudrea Manager在CDH集群中添加kafka服务节点,更改borker.id配置后无法启动

    需要保证meta.properties文件中的broker.id和cloudrea manager的web页面上kafka配置的broker.id一致,最好让server.properties中的br ...

  3. Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)

    不多说,直接上干货! hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集 ...

  4. Elasticsearch集群管理之添加、删除节点

    1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...

  5. Redis 集群环境添加节点失败问题

    最近在给公司网管系统Redis集群环境添加节点时候遇到一个问题,提示新增的Node不为空: [root@node00 src]# ./redis-trib.rb add-node --slave -- ...

  6. 在Hadoop集群中添加机器和删除机器

    本文转自:http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html 无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个 ...

  7. 向CDH5集群中添加新的主机节点

    向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...

  8. 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接

    查看本章节 查看作业目录 需求说明: 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的"删除"超链接,使用 DOM 节点的删除操作将对应的 ...

  9. Hyperledger Fabric节点的动态添加和删除

    前言 在Hyperledger Fabric组织的动态添加和删除中,我们已经完成了在运行着的网络中动态添加和删除组织.本文将在其基础上,详细介绍了如何在 soft 组织上添加新的 peer2 节点,并 ...

随机推荐

  1. MySQL字段的属性应该尽量设置为NOT NULL

    数据库建表时,对于一些可填可不填的字段,我们应该尽量把它设置为 NOT NULL.这种做法即可以提高性能,又可以在很大程度上避免空指针类的问题,好处颇多. 1.节省空间 NULL 列需要更多的存储空间 ...

  2. DevOps - 项目构建 - Maven

    Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...

  3. Ajax在表单中的应用

    ajax在注册用户表单中的使用 1.验证用户名是否被使用 2.获取手机短信验证码 3.点击表单中的图片刷新,可实现刷新图片验证码 <!DOCTYPE html> <html> ...

  4. JavaScript -- 继承与原型链

    JavaScript对象有一个指向一个原型对象的链,当试图访问一个对象的属性的时候,他不仅仅会在该对象上面搜寻,还会搜寻该对象的原型,以及对象的原型的原型,依次层层搜索,直到找到名字匹配的属性或者到达 ...

  5. C# WebClient类上传和下载文件

    这篇文章主要介绍了C# WebClient类用法实例,本文讲解使用WebClient下载文件.OpenWriter打开一个流使用指定的方法将数据写入到uri以及上传文件示例,需要的朋友可以参考下   ...

  6. Lavavel5.5源代码 - Pipeline

    <?php class Pipeline { protected $passable; protected $pipes = []; protected $method = 'handle'; ...

  7. Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000

    启动程序报错: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006fff80000, 28636 ...

  8. 我是一个MySQL小白

    我是一个MySQL小白 第一回早起装扮 “mysql,Oracle,SQL-SERVER你们三个 起床没?”,清晨七点多师父喊道. “师父,我(mysql)哪敢睡觉呀,我还在查询表呢,有客户的密码忘记 ...

  9. 官方yum源安装选择所需版本mysql数据库并初始化(yum默认安装的是最新版MySQL8.+)

    在官网是找不到5.x系列的域名源的,系统默认是安装的oracle数据库,在安装前需要删除默认的 以下教程来源于官网说明 先去官网下载yum源,地址 https://dev.mysql.com/down ...

  10. python 排列组合

    笛卡尔积(product): 假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2) ...