0.说明

Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点。以下就是增加的过程。

1.配置运行环境

  • 安装与master和其他slave相同的java环境,jdk版本要相同。具体安装过程这里不再赘述。
  • 修改新节点的ip和主机名对应关系,修改/etc/hosts配置文件,定义ip与hostname的映射。
  • 关闭新节点防火墙,因为Hadoop集群是在内网环境运行,可以关闭防火墙。
  • 配置新节点ssh免密码登录,使得master可以免密码登录到新节点主机。过程这里不再赘述。

2.修改集群所有节点相关配置文件

修改集群所有节点(master和所有slave)的${HADOOP_HOME}/conf/slaves文件,增加新节点ip或hostname:

新节点ip 新节点主机名

同时,集群所有节点上修改系统的/etc/hosts配置文件,增加ip与hostname的映射(和上面修改slaves相同):

新节点ip 新节点主机名

3.新节点增加Hadoop

将master(namenode)中的配置拷贝到新节点(datanode),而且新节点的Hadoop的目录路径最好是和集群的其他节点一样,便于查看和管理。这一步只要用scp拷贝即可。

切换到Hadoop用户名,然后拷贝:

scp -r /hadoop安装目录 新节点上的Hadoop用户名@新节点主机ip或主机名

这一步完成就说明新节点的安装完毕。

4.单独启动新节点

集群增加了新节点之后,不需要关闭整个集群然后重启。可以单独启动新增加的节点,实现新节点动态加入。在新节点上执行命令:

[jay@slave2 ~]# cd hadoop-1.2.1/
[jay@slave2 hadoop-1.2.1]# ./bin/hadoop-daemon.sh start datanode #启动datanode
starting datanode...
[jay@slave2 hadoop-1.2.1]# ./bin/hadoop-daemon.sh start tasktracker #启动tasktracker
starting tasktracker...

5.验证启动成功

5.1访问web UI查看集群信息

访问http://master:50070/可以看到"Live Nodes"的数量,如果增加了新节点数,说明添加成功。

5.2 执行命令查看

$ bin/hadoop dfsadmin -report

6.集群负载均衡

在master主机上面,运行start-balancer.sh进行数据负载均衡。目的是将其他节点的数据分担一些到新节点上来,看集群原来数据的多少需要一定的时间才能完成。

hadoop balancer
或者
bin/start-balancer.sh

负载均衡作用:当节点出现敀障,或新增加节点时,数据块可能分布不均匀,负载均衡可重新平衡各个datanode上数据块的分布,使得所有的节点数据和负载能处于一个相对平均的状态,从而避免由于新节点的加入而效率降低(如果不进行balance,新数据一般会被插入到新节点中)

hadoop集群添加新节点的更多相关文章

  1. 大数据实操3 - hadoop集群添加新节点

    hadoop集群支持动态扩展,不需要停止原有集群节点就可以实现新节点的加入. 我是使用docker搭建的进群环境,制作了镜像文件,这里以我的工作基础为例子介绍集群中添加集群的方法 一.制作一个新节点 ...

  2. Hadoop集群添加新节点步骤

    1.在新节点中进行操作系统配置,包括主机名.网络.防火墙和无密码登录等. 2.在所有节点/etc/host文件中添加新节点 3.把namenode的有关配置文件复制到该节点 4.修改master节点s ...

  3. k8s集群节点更换ip 或者 k8s集群添加新节点

    1.需求情景:机房网络调整,突然要回收我k8s集群上一台node节点机器的ip,并调予新的ip到这台机器上,所以有了k8s集群节点更换ip一说:同时,k8s集群节点更换ip也相当于k8s集群添加新节点 ...

  4. 现有rabbitmq集群添加新节点,移除旧节点(可以作为rabbitmq集群迁移使用)

    原有集群安装步骤:https://www.cnblogs.com/sanduzxcvbnm/p/15797788.html 1.拉取镜像 集群中新节点需要执行 docker pull rabbitmq ...

  5. hadoop集群增加新节点

    上次hadoop集群一块数据盘报警, 提交工单后维修人员更换硬盘 服务器是dell r720的, 8盘位, 蛋疼的是这些硬盘都是做的单盘raid1,维修人员说必须关机导入硬盘才能正常使用 (服务器就这 ...

  6. redis 集群添加新节点

    准备好需要添加的节点:如何创建节点 启动创建的节点: 启动成功: 添加新节点:redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000  第 ...

  7. etcd v3 ssl 集群添加新节点

    集群搭建 下面只用同一台服务器进行三个成员节点的开启 节点1 ./etcd --name cd0 --initial-advertise-peer-urls http://127.0.0.1:2380 ...

  8. redis集群添加新节点

    一.创建节点(接上文) 1.在H1服务器/root/soft目录下创建7002目录 2.将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口 3.进入 redis-5.0. ...

  9. kubernetes 集群添加node节点

    kubernetes 集群添加node节点 注意,我们并不需要把新增的node ip加入到证书里重新生成!!! 下面我们以添加node03为例 一.添加集群里个节点的hostname并设置好对应主机名 ...

随机推荐

  1. c# Database类的使用

    参考资料http://ansonlh.iteye.com/blog/1689009 搜索:c# DatabaseFactory类

  2. promise对象的使用

    ES6中的promise的出现给我们很好的解决了回调地狱的问题,在使用ES5的时候,在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发,ES6认识到了这点问题, 现在promise的使用,完 ...

  3. Linux 命令之split(将一个大文件根据行数平均分成若干个小文件)

    把一个 txt 文件导入到 excel 中,但是 excel 单列支持的行数为 1048576,而我需要导入的 txt 文件总共有 7945674 ,我们无法一次性将整个 txt 文件里面的内容导入到 ...

  4. Java问题解决:Java compiler level does not match the version of the installed Java project facet.

    问题原因:Java编译器级别与Facted Project 中的Java 版本设定不匹配. 解决办法:将两者设置一致 1.查看Java compiler level : 选中项目右键propertie ...

  5. Git 基础 - 打标签

    列出现有标签(或者使用git tag -l) $ git tag v0. v1. 如果只对 1.4.2 系列的版本感兴趣 $ git tag -l 'v1.4.2.*' v1. v1. v1. v1. ...

  6. socket之基础

    链接https://www.cnblogs.com/clschao/articles/9593164.html

  7. Selenium 页面自动化测试 面试 问题汇总

    1.   专业技术 在学习完Selenium的大部分接口或者方法之后,你可能会去面试自动化测试,主要是Selenium的自动化测试.下面这些问题总结,可能会对你有所帮助. 什么是Selenium? S ...

  8. Python3 数据库连接

    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中使用mysqldb. 数据库连接 连接数据库前,请先确认一下事项: 已经创建数据库testdb. 在test ...

  9. 深入JVM对象引用

    在jdk 1.2以前,创建的对象只有处在可触及(reachaable)状态下,才能被程序所以使用,垃圾回收器一旦发现无用对象,便会对其进行回收.但是,在某些情况下,我们希望有些对象不需要立刻回收或者说 ...

  10. 哈密顿绕行世界问题 HDU 2181

    题意让你先输20行数表示20个城市及所相邻的三个城市(行数就是该城市),然后给你一个数,从这个(给的数就表示城市)城市出发走遍所有城市一次回到出发的城市:看着复杂,仔细想想是个不算太难的深搜题,主要你 ...