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. eclipse安装spring boot插件spring tool suite

    进行spring cloud的学习,要安装spring boot 的spring -tool-suite插件,我在第一次安装时,由于操作不当,两天才完全安装好,真的是要命了,感觉自己蠢死!下面就自己踩 ...

  2. JavaScript(2)

    JavScript在页面上显示时间,首先我们先来了解关于时间的一些简单方法: getFullYear()  获取当前年份,getMonth() 0-n(一月到十二月),getDate() 1-31(月 ...

  3. Javascript 高级程序设计(第3版) - 第01章

    2017-05-10 js简介 一个叫“不难登”的人发明的.js的流行是因为 ajax 的关系. js分为三个部分: 核心: ECMAScript 文档对象模型: DOM 浏览器对象模型: BOM 核 ...

  4. appium长按按钮

    public static AndroidDriver driver; /长按操作:waitAction的参数单位是ms/ public static void longClick(String id ...

  5. Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用

    JDK8中增加了一系列时间的类, (据说)是为了干掉过去的Date,Calendar类的, 过去的Date类(据说)有着线程不安全等诸多弊端, 至于我的个人感受就是用起来实在是很麻烦,我一般封装成几个 ...

  6. Python 学习笔记 多进程 multiprocessing--转载

    本文链接地址 http://quqiuzhu.com/2016/python-multiprocessing/ Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时 ...

  7. Linux——vi的使用

    记录一下vi的一些使用指令,蓝色部分是比较常用的,其中使用过的重新进行了描述,极少部分是未使用过的,还有一些未使用也未记录进来,后续再来补充修正: 参考资料:http://cn.linux.vbird ...

  8. Java中的long与double的区别

    1.long与double在java中本身都是用64位存储的,但是他们的存储方式不同,导致double可储存的范围比long大很多 2.long可以准确存储19位数字,而double只能准备存储16位 ...

  9. System.arraycopy和arrays.copyOf

    public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); 这 ...

  10. 关于JS历史

      js由来        95年那时,绝大多数因特网用户都使用速度仅为28.8kbit/s 的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加.为完成简单的表单验证而频繁地与服务器交换数据只 ...