设为首页 收藏本站
查看: 1133|回复: 0

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

[复制链接]

尚未签到

发表于 2015-7-15 08:26:31 | 显示全部楼层 |阅读模式
  开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群。现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运行的情况下)地添加一个Hadoop节点与下架一个Hadoop节点。
一、实验环境结构
  本次试验,我们构建的集群是一个主节点,三个从节点的结构,其中三个从节点的性能配置各不相同,这里我们主要在虚拟机中的内存设置这三个从节点分别为:512MB、512MB与256MB。首先,我们暂时只设置两个从节点,另外一个作为动态添加节点的时候使用。主节点与从节点所扮演的角色如下所示:
  主节点(1个,主机名:hadoop-master):NameNode、JobTracker、SecondaryNameNode
    从节点(3个,主机名:hadoop-slave1、hadoop-slave2、hadoop-slave3):DataNode、TaskTracker
DSC0000.png
  TIPS:当然,我们也可以将SecondaryNameNode作为一个独立的节点分离出去,只需要增加一台服务器,并在主节点中修改hadoop中的配置文件:masters,将新节点的主机名添加进去即可。
二、动态添加节点
  在实际生产应用中,很多时候因为现有集群的性能问题需要增加服务器节点以提高整体性能(一般是增加从节点,在Hadoop2.x之后解决了主节点的单点问题,可以增加主节点以保持HA高可用性),这就涉及到动态添加节点的问题。还好,Hadoop早就提供了很好的解决方法,我们只需要如下几步就可以轻松地添加一个节点:
  (1)准备工作:配置新节点的各种环境
  主要包括:设置IP地址、主机名、绑定IP地址与主机名的映射、生成SSH与各节点之间的无密码登录、安装JDK与Hadoop、设置配置文件;当然,都可以通过复制解决;
  (2)在主节点中的slaves配置文件中添加要新加入的节点的主机名hadoop-slave3(在hadoop目录下/conf/slaves)
DSC0001.png
  (3)在新节点hadoop-slave3中,通过Hadoop Shell启动datanode与tasktracker进程:
DSC0002.png
  这两句shell命令分别是:
  hadoop-daemon.sh start datanode
  hadoop-daemon.sh start tasktracker
  (4)在主节点中通过Hadoop Shell刷新从节点列表,获取新加入的节点信息:hadoop dfsadmin -refreshNodes
DSC0003.png
  (5)在主节点的Web接口中查看Live Nodes数量变为了3,代表动态添加从节点成功
DSC0004.png
三、动态下架节点
  在实际生产应用中,也会存在某个节点或某些节点因为某种原因而停止服务或者宕机的情况,Hadoop会通知一定的感知机制得到这些停止服务的节点的信息,从而通过其他节点获取文件(前提是我们所设置的副本数量>=2,默认为3)。
  (1)通过关闭hadoop-slave3的电源或者输入一个shell命令停止datanode进程:hadoop-daemon.sh stop datanode
    ->这里我们可以通过后者,这个shell命令来看看
  (2)我们现在再通过主节点的Web接口来看看运行情况:
DSC0005.png
  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
DSC0006.png
四、Hadoop中的安全模式
  当Hadoop的NameNode节点启动时,会进入安全模式阶段。
  (1)在此阶段,DataNode会向NameNode上传它们数据块的列表,让 NameNode得到块的位置信息,并对每个文件对应的数据块副本进行统计。当最小副本条件满足时,即一定比例的数据块都达到最小副本数,系统就会退出安全模式,而这需要一定的延迟时间。
  (2)当最小副本条件未达到要求时,就会对副本数不足的数据块安排DataNode进行复制,直至达到最小副本数。而在安全模式下,系统会处于只读状态,NameNode不会处理任何块的复制和删除命令。
  那么,如何判断HDFS是否处于安全模式呢?hadoop dfsadmin -safemode get
DSC0007.png
  如何手动进入和离开安全模式呢?hadoop dfsadmin -safemode enter/leave
   DSC0008.png
  进入安全模式后,再向HDFS上传或修改文件会出现什么情况?一个提示“正在处于安全模式”的异常
DSC0009.png
  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.iyunv.com/sunddenly/p/4011455.html
  (3)michael_zhu,《Hadoop安全模式的理解》:http://blog.iyunv.com/michael_zhu_2004/article/details/8268728
  

  作者:周旭龙
  出处:http://www.iyunv.com/edisonchou/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86772-1-1.html 上篇帖子: hadoop的ganglia数据监控 下篇帖子: hadoop NameNode 实现分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表