Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群。现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运行的情况下)地添加一个Hadoop节点与下架一个Hadoop节点。

一、实验环境结构

  本次试验,我们构建的集群是一个主节点,三个从节点的结构,其中三个从节点的性能配置各不相同,这里我们主要在虚拟机中的内存设置这三个从节点 分别为:512MB、512MB与256MB。首先,我们暂时只设置两个从节点,另外一个作为动态添加节点的时候使用。主节点与从节点所扮演的角色如下所 示:

  主节点(1个,主机名:hadoop-master):NameNode、JobTracker、SecondaryNameNode

  从节点(3个,主机名:hadoop-slave1、hadoop-slave2、hadoop-slave3):DataNode、TaskTracker

TIPS:当然,我们也可以将SecondaryNameNode作为一个独立的节点分离出去,只需要增加一台服务器,并在主节点中修改hadoop中的配置文件:masters,将新节点的主机名添加进去即可。

二、动态添加节点

  在实际生产应用中,很多时候因为现有集群的性能问题需要增加服务器节点以提高整体性能(一般是增加从节点,在Hadoop2.x之后解决了主节 点的单点问题,可以增加主节点以保持HA高可用性),这就涉及到动态添加节点的问题。还好,Hadoop早就提供了很好的解决方法,我们只需要如下几步就 可以轻松地添加一个节点:

  (1)准备工作:配置新节点的各种环境

  主要包括:设置IP地址、主机名、绑定IP地址与主机名的映射、生成SSH与各节点之间的无密码登录、安装JDK与Hadoop、设置配置文件;当然,都可以通过复制解决;

  (2)在主节点中的slaves配置文件中添加要新加入的节点的主机名hadoop-slave3(在hadoop目录下/conf/slaves)

  (3)在新节点hadoop-slave3中,通过Hadoop Shell启动datanode与tasktracker进程:

  这两句shell命令分别是:

  hadoop-daemon.sh start datanode
  hadoop-daemon.sh start tasktracker

  (4)在主节点中通过Hadoop Shell刷新从节点列表,获取新加入的节点信息:hadoop dfsadmin -refreshNodes

  (5)在主节点的Web接口中查看Live Nodes数量变为了3,代表动态添加从节点成功

三、动态下架节点

  在实际生产应用中,也会存在某个节点或某些节点因为某种原因而停止服务或者宕机的情况,Hadoop会通知一定的感知机制得到这些停止服务的节点的信息,从而通过其他节点获取文件(前提是我们所设置的副本数量>=2,默认为3)。

  (1)通过关闭hadoop-slave3的电源或者输入一个shell命令停止datanode进程:hadoop-daemon.sh stop datanode

  ->这里我们可以通过后者,这个shell命令来看看

  (2)我们现在再通过主节点的Web接口来看看运行情况:

PS:停止hadoop-slave3的datanode进程后发现,NameNode的Web接口上hadoop-slave节点的LastContact字 段的值会不断地增大。这是因为DataNode每次启动时都会向NameNode汇报,NameNode会记录下它的访问时间,然后NameNode用当 前访问时间减去上次访问时间,就得出LastContact的值,也就是多长时间未访问。又由于实际环境中经常存在网络问题造成短暂掉线,所以 NameNode会等待一段时间(默认等10分钟)之后,才会将它视为死节点。所以,为了防止数据丢失所以在实际中副本数一般会设为2以上(默认为3), 当某个节点死掉以后,可以通过副本找回数据。

  (3)重新启动hadoop-slave3的datanode进程:hadoop-daemon.sh start datanode

  (4)现在再次通过主节点的Web接口来看看运行情况:变为了0

四、Hadoop中的安全模式

  当Hadoop的NameNode节点启动时,会进入安全模式阶段。

  (1)在此阶段,DataNode会向NameNode上传它们数据块的列表,让 NameNode得到块的位置信息,并对每个文件对应的数据 块副本进行统计。当最小副本条件满足时,即一定比例的数据块都达到最小副本数,系统就会退出安全模式,而这需要一定的延迟时间。

  (2)当最小副本条件未达到要求时,就会对副本数不足的数据块安排DataNode进行复制,直至达到最小副本数。而在安全模式下,系统会处于只读状态,NameNode不会处理任何块的复制和删除命令。

  那么,如何判断HDFS是否处于安全模式呢?hadoop dfsadmin -safemode get

  如何手动进入和离开安全模式呢?hadoop dfsadmin -safemode enter/leave

  进入安全模式后,再向HDFS上传或修改文件会出现什么情况?一个提示“正在处于安全模式”的异常

 org.apache.hadoop.dfs.SafeModeException: Cannotdelete/user/hadoop/input. Name node is in safe mode.从字面上来理解:“Name nodeis in safe mode.”hadoop的namenode处于安全模式。

参考资料

(1)吴超,《Hadoop深入浅出》:http://www.superwu.cn

(2)Suddenly,《Hadoop日记Day19-分布式安装》:http://www.cnblogs.com/sunddenly/p/4011455.html

(3)michael_zhu,《Hadoop安全模式的理解》:http://blog.csdn.net/michael_zhu_2004/article/details/8268728

作者:周旭龙

出处:http://www.cnblogs.com/edisonchou/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

Hadoop学习笔记—13.分布式集群中节点的动态添加与下架相关推荐

  1. Redis 学习笔记八:集群模式

    Redis 学习笔记八:集群模式 作者:Grey 原文地址: 博客园:Redis 学习笔记八:集群模式 CSDN:Redis 学习笔记八:集群模式 前面提到的Redis 学习笔记七:主从复制和哨兵只能 ...

  2. ZooKeeper学习笔记(八):ZooKeeper集群写数据原理

    写数据原理 写流程直接请求发送给Leader节点 这里假设集群中有三个zookeeper服务端 ACK (Acknowledge character)即是确认字符,在数据通信中,接收站发给发送站的一种 ...

  3. 容器编排技术 -- Kubernetes 重新配置活动集群中节点的 Kubelet

    容器编排技术 -- Kubernetes 重新配置活动集群中节点的 Kubelet 1 Before you begin 2 重新配置集群活动节点上的 Kubelet 2.1 基本工作流程概览 2.2 ...

  4. Android学习笔记---22_访问通信录中的联系人和添加联系人,使用事物添加联系人...

    Android学习笔记---22_访问通信录中的联系人和添加联系

  5. Hadoop 2.7.2 分布式集群搭建-操作指南(不断更新)

    文章目录 1.Hadoop运行环境的搭建 1.1 虚拟机环境准备 1.1.1 克隆虚拟机 1.1.2 克隆完成后的配置 1.1.2.1 修改克隆后虚拟机的ip 1.1.2.2 修改IP地址 1.1.2 ...

  6. Hadoop安装教程_分布式集群

    安装前的准备 伪分布式的设置 集群的规划 集群的初始设置 网络配置 SSH无密码登陆 java及apache环境设置 安装流程 主机的安装 集群的安装 效果与验证 安装注意 模式切换 参考资料 安装前 ...

  7. CentOS 7上搭建Spark 3.0.1 + Hadoop 3.2.1分布式集群

    CentOS 7上搭建Spark3.0.1+ Hadoop3.2.1分布式集群 VMWare 安装CentOS 7 使用Xshell连接虚拟机 集群设置 安装JDK 1.8 SSH 免密登陆 安装ha ...

  8. hadoop单机及完全分布式集群的安装

    1. hadoop 我Hadoop的安装目录为/usr/local/workspace/hadoop 2.hdfs 2.1 单机模式 单机模式即不使用分布式模式,无需启动namenode和datano ...

  9. 不仅性能秒杀Hadoop,现在连分布式集群功能也开源了

    就在昨天(2020年8月3日),涛思数据团队正式宣布,物联网大数据平台TDengine集群版开源.此次开源,我们在GitHub上传了23.9万行源代码,1198个源文件,包含我自己疫情期间写的一万余行 ...

最新文章

  1. 世道变了!这个AI竞赛不再要刷榜成绩,直接看商业落地计划书
  2. Tensorflow:Tensorboard使用
  3. 通过 Apache Ant 来运行 Tomcat
  4. Codeforces Round #430 D. Vitya and Strange Lesson
  5. html5微信分享图标和文本设置,科技常识:Html5 实现微信分享及自定义内容的流程...
  6. 比赛打分展示系统_《评委计分系统-双屏标准版》典型赛事案例图片展示-省直机关歌咏比赛
  7. hystrix熔断器之command实现
  8. 特征向量、标签、模型、算法
  9. javafx 二维图形编程及可视化操作
  10. js 根据公历日期 算出农历_JS简单获取当前日期和农历日期的方法
  11. RFID工作频率分类
  12. SDOI 2014 数表 题解
  13. 12生肖年份和星座组合图
  14. 3dmax2014许可证错误20
  15. 19、21、22、24英寸液晶屏幕实际尺寸4:3、16:9、16:10详表
  16. 【铁矿石期货怎么开通】11月22日午盘基本面资讯整理
  17. 深度学习--卷积神经网络
  18. 笔记本开热点后断网问题
  19. android强制选择器,谷歌手软了:不再强制在Android Q采用隔离存储沙盒机制
  20. 架构模式-VIPER

热门文章

  1. HTML ajax 上传文件限制文件的类型和文件大小
  2. 网络工程 IP地址与子网掩码
  3. php在客户端禁用cookie时让session不失效的解决方法
  4. [nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)...
  5. 字符串处理 百度之星资格赛 1002 列变位法解密
  6. LAMP环境搭建教程
  7. bind函数:给对象绑定方法。
  8. C++ 以智能指针管理内存资源
  9. C++ delete的三种面貌
  10. [JZOJ3347] 【NOI2013模拟】树的难题