Hadoop基础-Hadoop的集群管理之服役和退役

                                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  在实际生产环境中,如果是上千万规模的集群,难免一个一个月会有那么几台服务器出点故障,在IDE机房这种事情几乎每个星期都会有那么几起事故发生,比如服务器断电,磁盘过慢,网络不同,核心路由故障,接入层交换机故障,在严重点就是一些二级运营商出口被攻击导致网络拥堵等等。刚刚说的这些事件都是我在实际工作中遇到的一些现象,因此,在大规模集群部署上,尤其是大数据,存储的都是海量数据,甚至可以用PB级别来形容,几十台服务器做大数据的公司估计也就是玩玩,像BATJ这样的大公司集群规模在4000个节点已经不再话下,每个服务器可插入的硬盘卡槽优先,4000台存储设备服务器,我生产中接触的是爱数的设备,他们有20个卡槽,每个卡槽可以装2T的文件,也就是一台机器只能保存40T文件,如果4000台这样的设备的话,也就160000T的数据,换算成PB差不多也就160PB的数据。

  好了,说说我们本篇博客的重点,就是服务器的服役和退役,IDE人员喜欢统称这种操作为上架和下架。很久很久以前,去过北京朝阳酒仙桥的一个IDC机房实习了两个星期(那时候刚刚入职,领导让我去了解一下机房情况),其实用上架和下架来形容服役和退役的话不完全正确,为什么这么说呢?在IDE机房中,上架指的是给服务器通电,插上网线并将公网ip告知客户。下架就是断电将服务器或者网络设备归还给租户,而我们说的服役和退役,不仅仅是开机这么简单,而是让他进入工作状态,才是服役,而退役和其相反,就是不提供服务。

一.添加新节点的过程(服役)

>.在dfs. hosts文件中(hdfs-site-xml)包含新节点名称,该文件在NameNode的本地目录。
dfs. hosts属性是真正指定DataNode服务器的节点,相当于指定白名单。如下:
[/soft/hadoop/etc/hadoop/DataNodesHostname.txt]
s102
s103
s104 >.在hdfs-site-xml文件中添加属性
<property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/hadoop/DataNodesHostname.txt</value>
</property> >.在NameNode上刷新节点(hdfs服务)
[yinzhengjie@s101 ~]$ hdfs dfsadmin -refreshNodes >.在NameNode上刷新节点(yarn服务,如果你没有启动该服务的话就可以暂时不管他)
[yinzhengjie@s101 ~]$ yarn rmadmin -refreshNodes >.在slaves文件中添加新节点ip(主机名)
一行代表一个主机,如下:
s102
s103
s104
s105 >.单独启动新节点中的datanode
[yinzhengjie@s101 ~]$ hadoop-daemon.sh start datanode

二.删除旧节点的过程(退役)

>.添加退役节点的ip到黑名单(dfs.hosts.exclude),不要更新白名单
案例如下:在下面的配置文件中写入相应的主机名
[/soft/hadoop/etc/dfs.hosts.exclude.txt]
s101
s102 >.配置hdfs-site.xml配置文件
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
</property> >.在NameNode上刷新节点(hdfs服务)
[yinzhengjie@s101 ~]$ hdfs dfsadmin -refreshNodes >.在NameNode上刷新节点(yarn服务,如果你没有启动该服务的话就可以暂时不管他)
[yinzhengjie@s101 ~]$ yarn rmadmin -refreshNodes >.查看webUI
节点状态在decommisstion In Progresss >.当所有的要退役的节点都报告为Decommissioned
要退役的节点报告信息是Decommissioned ,说明退役成功。说明退役的过程就是在迁移数据到服役的节点中。 >.从白名单删除节点,并刷新节点
[yinzhengjie@s101 ~]$ hdfs dfsadmin -refreshNodes >.从slave文件中删除退役的节点

三.黑白名单的组合情况

四.节点的服役案例展示

1>.查看webUI的界面

2>.编辑hdfs-site.xml 配置文件

 [yinzhengjie@s101 ~]$ more /soft/hadoop/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value></value>
</property>
<!--
<property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/hadoop/DataNodesHostname.txt</value>
</property>
-->
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
</property> </configuration> <!--
hdfs-site.xml 配置文件的作用:
#HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限
等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置. dfs.replication 参数的作用:
#为了数据可用性及冗余的目的,HDFS会在多个节点上保存同一个数据
块的多个副本,其默认为3个。而只有一个节点的伪分布式环境中其仅用
保存一个副本即可,这可以通过dfs.replication属性进行定义。它是一个
软件级备份。 dfs.hosts 参数的作用:
#添加白名单,功能和黑名单(dfs.hosts.exclude)相反。我这里是将其注释掉了。 dfs.hosts.exclude 参数的作用:
#这是我们添加的黑名单,该属性的value定义的是一个配置文件,这个配置文件的主机就是需要退役的节点。 -->
[yinzhengjie@s101 ~]$

3>.编辑黑名单

[yinzhengjie@s101 ~]$ more /soft/hadoop/etc/dfs.hosts.exclude.txt
s102
[yinzhengjie@s101 ~]$

4>.刷新NameNode节点

[yinzhengjie@s101 ~]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
[yinzhengjie@s101 ~]$

5>.上线新的节点(这台机器配置需要和完全分布式的DataNode模式一致),启动DataNode服务

[yinzhengjie@s105 ~]$ ll /soft/hadoop/etc/
total
drwxr-xr-x. yinzhengjie yinzhengjie May : full
drwxr-xr-x. yinzhengjie yinzhengjie May : local
drwxr-xr-x. yinzhengjie yinzhengjie May : pseudo
[yinzhengjie@s105 ~]$
[yinzhengjie@s105 ~]$ ln -s /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop
[yinzhengjie@s105 ~]$
[yinzhengjie@s105 ~]$ ll /soft/hadoop/etc/
total
drwxr-xr-x. yinzhengjie yinzhengjie May : full
lrwxrwxrwx. yinzhengjie yinzhengjie May : hadoop -> /soft/hadoop/etc/full/
drwxr-xr-x. yinzhengjie yinzhengjie May : local
drwxr-xr-x. yinzhengjie yinzhengjie May : pseudo
[yinzhengjie@s105 ~]$
[yinzhengjie@s105 ~]$ hadoop-daemon.sh start datanode
starting datanode, logging to /soft/hadoop-2.7./logs/hadoop-yinzhengjie-datanode-s105.out
[yinzhengjie@s105 ~]$ jps
Jps
DataNode
[yinzhengjie@s105 ~]$

6>.再次查看webUI界面,查看新节点是否上线

7>.确认退役成功

四.节点的服役案例展示

1>.查webUI界面,发现新服役的节点正常工作但是之前的退役节点还在,我们需要将退役的节点删除掉!

2>.编辑hdfs-site.xml 配置文件

[yinzhengjie@s101 ~]$ more /soft/hadoop/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value></value>
</property> <property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/hadoop/DataNodesHostname.txt</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
</property> </configuration> <!--
hdfs-site.xml 配置文件的作用:
#HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限
等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置. dfs.replication 参数的作用:
#为了数据可用性及冗余的目的,HDFS会在多个节点上保存同一个数据
块的多个副本,其默认为3个。而只有一个节点的伪分布式环境中其仅用
保存一个副本即可,这可以通过dfs.replication属性进行定义。它是一个
软件级备份。 dfs.include 参数的作用:
#添加白名单,功能和黑名单(dfs.hosts.exclude)相反。 dfs.hosts.exclude 参数的作用:
#这是我们添加的黑名单,该属性的value定义的是一个配置文件,这个配置文件的主机就是需要退役的节点。 -->
[yinzhengjie@s101 ~]$

3>.编辑白名单

[yinzhengjie@s101 ~]$ more /soft/hadoop/etc/hadoop/DataNodesHostname.txt
s103
s104
s105
[yinzhengjie@s101 ~]$

4>.查看当前的webUI界面(节点已经处于退役状态)

5>.刷新NameNode节点

[yinzhengjie@s101 ~]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
[yinzhengjie@s101 ~]$

6>.webUI确认刷新成功

六.yarn的服役和退役

如果你会了hdfs的服役和退役的话,其实yarn就是so easy的一件事啦,就是照猫画虎的方法,步骤重复过程较多,我就懒得截图了,配置过程跟我上面配置hdfs不愁类似,相信你有举一反三的能力哟。
>.首先修改yarn的配置文件("yarn-site-xml")。修改其属性“yarn.resourcemanager.nodes.exclude-path”即可,黑名单配置如下:
[/sotf/hadoop/etc/hadoop/yarn-site.xml]
<property>
<name>yarn.resourcemanager.nodes.exclude-path</name>
<value>/soft/hadoop/etc/hadoop/yarn.exclude.hosts</value>
</property>
对了,如果想要配置白名单的话,需要设置“yarn.resourcemanager.nodes.include-path”属性哟!
>.编辑yarn的配置文件“yarn.resourcemanager.nodes.exclude-path”
修改配置文件内容如下:
[/soft/hadoop/etc/hadoop/yarn.exclude.hosts]
s102
>.刷新节点
配置上述步骤后及得刷新节点,使用命令:“[yinzhengjie@s101 ~]$ yarn rmadmin -refreshNodes” 即可。
>.单独启动新的节点中 nodemanager
[yinzhengjie@s101 ~]$ yarn-daemon.sh start nodemananger

 

Hadoop基础-Hadoop的集群管理之服役和退役的更多相关文章

  1. Apache Hadoop 2.9.2 的集群管理之服役和退役

    Apache Hadoop 2.9.2 的集群管理之服役和退役 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 随着公司业务的发展,客户量越来越多,产生的日志自然也就越来越大来,可能 ...

  2. Cloudera Hadoop 4 实战课程(Hadoop 2.0、集群界面化管理、电商在线查询+日志离线分析)

    课程大纲及内容简介: 每节课约35分钟,共不下40讲 第一章(11讲) ·分布式和传统单机模式 ·Hadoop背景和工作原理 ·Mapreduce工作原理剖析 ·第二代MR--YARN原理剖析 ·Cl ...

  3. Hadoop集群管理

    1.简介 Hadoop是大数据通用处理平台,提供了分布式文件存储以及分布式离线并行计算,由于Hadoop的高拓展性,在使用Hadoop时通常以集群的方式运行,集群中的节点可达上千个,能够处理PB级的数 ...

  4. 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

    Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...

  5. hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)

    目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...

  6. hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装

    hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来 ...

  7. hadoop基础----hadoop实战(九)-----hadoop管理工具---CDH的错误排查(持续更新)

    在CDH安装完成后或者CDH使用过程中经常会有错误或者警报,需要我们去解决,积累如下: 解决红色警报 时钟偏差 这是因为我们的NTP服务不起作用导致的,几台机子之间有几秒钟的时间偏差. 这种情况下一是 ...

  8. hadoop 2.2.0 集群部署 坑

    注意fs.defaultFS为2..0新的变量,代替旧的:fs.default.name hadoop 2.2.0 集群启动命令:bin/hdfs namenode -formatsbin/start ...

  9. hadoop 2.2.0集群安装

    相关阅读: hbase 0.98.1集群安装 本文将基于hadoop 2.2.0解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net ...

随机推荐

  1. RHEL/Centos7 安装图形化桌面(转)

    RHEL/Centos7 安装图形化桌面   Linux是一个多任务的多用户的操作系统,好多linux爱好者在安装完linux后经常遇到一个问题——没有图形化桌面.今天小编在安装RHEL7的时候,一步 ...

  2. 电信中兴F460光猫sendcmd命令

    1.安装xshell后,使用命令行登陆root用户,root用户密码Zte521(湖北地区) 2.查看所有用户密码  sendcmd 1 DB p DevAuthInfo 3.打开网页登陆teleco ...

  3. Ubuntu 16.04 使用校园网客户端上网

    对于使用校园网的学生来说,安装好Ubuntu之后,很多人需要用 DrClient 客户端来上网,那么怎么操作呢, 这里介绍 DrClient 客户端在Ubuntu上的使用方法, 首先下载 对应版本的软 ...

  4. centos7防火墙导致不能访问的

    CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1.直接关闭防火墙 systemctl stop firewalld.service #停止firew ...

  5. LeetCode算法题-Subtree of Another Tree(Java实现)

    这是悦乐书的第265次更新,第278篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第132题(顺位题号是572).给定两个非空的二进制树s和t,检查树t是否具有完全相同的 ...

  6. Linux:Day12(上) 进程

    内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能 Process:运行中的程序的一个副本. 存在生命周期 Linux内核存储进程信息的固定格式 :task struct 多个任务 ...

  7. koa2源码解读及实现一个简单的koa2框架

    阅读目录 一:封装node http server. 创建koa类构造函数. 二:构造request.response.及 context 对象. 三:中间件机制的实现. 四:错误捕获和错误处理. k ...

  8. Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures

    参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...

  9. Asp.Net Core使用NLog+Mysql的几个小问题

    项目中使用NLog记录日志,很好用,之前一直放在文本文件中,准备放到db中,方便查询. 项目使用了Mysql,所以日志也放到Mysql上,安装NLog不用说,接着你需要安装Mysql.Data安装包: ...

  10. Python--day04(流程控制)

    day03主要内容回顾 1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开头__结尾的 ...