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. 【记录】IntelliJ IDEA—IDEA2018-2019激活

    摘要 最智能的java ide [有能力请支持正版]     1.将 0.0.0.0 account.jetbrains.com 和 0.0.0.0 www.jetbrains.com添加到 host ...

  2. chrome总是提示“请停用开发者模式运行的扩展程序”

    方法1:通过组策略的扩展白名单.要下载一个组策略管理模板 1.开始 -> 运行 -> 输入gpedit.msc -> 回车确定打开计算机本地组策略编辑器(通过Win + R快捷键可以 ...

  3. JavaScript—面向对象开发详解和垃圾回收

    面向对象的概述 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP). 面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是, ...

  4. linux性能监控命令(vmstat、sar、iostat、netstat)

    1.常用系统命令Vmstat.sar.iostat.netstat.free.ps.top等 2.常用组合方式• 用vmstat.sar.iostat检测是否是CPU瓶颈• 用free.vmstat检 ...

  5. AI Conditional GAN

    Conditional GAN 参考链接: https://arxiv.org/pdf/1611.07004v1.pdf

  6. 手把手教你发布一个Python包

    本文主题如下: 编写一个包(Python 源代码),但不是本文的重点. 编译包,观察编译后的文件. 发布包,发布的包可以有多种类型. 如何在 Pypi 中查看已发布的包 注意: 本文编写的包在 Pyt ...

  7. maven eclipse web 项目 问题 cannot change version of project facet dynamic web module to 3.0

    cannot change version of project facet dynamic web module to 3.0 修改 web.xml 头部 xsi:schemaLocation=&q ...

  8. 爬虫之BS&Xpath

    BeautifulSoup 一 简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: ''' Beautiful Soup提供一些简单的.p ...

  9. 用bisect维护一个排序的序列

    import bisect list1 = [] bisect.insort(list1, 5) bisect.insort(list1, 1) bisect.insort(list1, 3) bis ...

  10. Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库

    http://www.cnblogs.com/Charltsing/p/OcrAnswerer.html 联系qq:564955427 最新版为v4.1版,开放一定概率的八窗口体验功能,请截图体验(多 ...