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

[经验分享] hadoop动态添加datanode和tasktracker

[复制链接]

尚未签到

发表于 2016-12-8 11:05:28 | 显示全部楼层 |阅读模式
hadoop在线运行已经很长一段时间了,下面就是我在上下线datanode和tasktracker步骤。因为datanode节点不一定是tasktracker,即使datanode和tasktracker在同一节点,你也可能只上下线其中一个,所以我在配置dfs和mr的include和exclude的时候,分开配置。
namenode中hdfs-site.xml配置如下:

<property>
<name>dfs.hosts</name>
<value>/ddmap/hadoop-1.0.4/conf/hdfs_include</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/ddmap/hadoop-1.0.4/conf/hdfs_exclude</value>
</property>

dfs.hosts所对应的文件中列出了所有可以连接到namenode的datanode,如果为空则所有的都可以连入。dfs.hosts.exclude所对应的文件中列出了禁止连接namenode的datanode节点。如果一个节点在这两个文件中都存在,则不允许连入。
1.下线datanode步骤如下:
1将要下线的机器加入到dfs.hosts.exclude指定的文件中(使用主机名,ip基本不靠谱),然后刷新配置hadoop dfsadmin -refreshNodes。

2通过hadoop dfsadmin -report或者web界面,可以看到,该datanode状态转为Decommission In Progress。

3当decommission进程完成数据移动,datanode状态会转变为Decommissioned,然后datanode会自动停止datnode进程。然后你可以看见dead nodes下多了一个你想要下线的节点。

4然后删除include和exclude中该节点的hosts,重新刷新hadoop dfsadmin -refreshNodes

5最后别忘了删除slaves中该节点的配置,防止下次整个集群重启时,该节点不能通过namenode自动启动。


注意:当你下线一个datanode节点,有可能该节点长时间处于Decommission In Progress状态,一直不能转变为Decommissioned。请你用hadoop fsck /检查下是否有些块少于指定的块数,特别注意那些mapreduce的临时文件。将这些删除,并且从垃圾箱移除,该节点就可以顺利下线。这是我解决该问题的办法。


2.上线一个节点的步骤如下:
1保证将要上线的机器不存在于dfs.hosts.exclude所对应的的文件中,并且存在于dfs.hosts所对应的文件中

2在namenode上刷新配置:hadoop dfsadmin -refreshNodes

3在要上线的节点重启datanode,hadoop-daemon.sh start datanode

4通过hadoop dfsadmin -report或者web界面,可以看到,节点已经上线

5还是老话最后别忘了修改slaves。


jobtracker中mapred-site.xml的配置如下:

<property>
<name>mapred.hosts</name>
<value>/ddmap/hadoop-1.0.4/conf/mr_include</value>
</property>
<property>
<name>mapred.hosts.exclude</name>
<value>/ddmap/hadoop-1.0.4/conf/mr_exclude</value>
</property>

tasktracker上下线基本同上。mapred.hosts中的文件是允许连接到jobtracker的机器,mapred.hosts.exclude则刚好相反,如果一台机器在两个配置中都存在,则不允许连接到jobtracker。
1.下线tasktracker步骤如下:
1将要下线的机器加入到mapred.hosts.exclude指定的文件中(使用主机名,ip基本不靠谱)

2刷新配置:hadoop mradmin -refreshNodes,你可以看见web界面Excluded Nodes中多出了一个节点,该节点就是你要下线的节点,最后到你要下线的节点上运行hadoop-daemon.sh stop tasktracker

3最后将mr_exclude和mr_include中该节点的hosts删除,并在jobtracker上再次刷新该配置,hadoop mradmin -refreshNodes

4还是老化别忘了修改slaves

tasktracker上线基本上和datnode上线原理和步骤都差不多,此处就不说了。

tasktracker上下线问题不是很大,最多就是任务失败,我想这个对于很多人来说都是可以忍受的,但是datanode上下线需要注意,因为datanode上下线如果不得当,可能导致数据丢失,特别是同事操作2个以上的节点。如果集群不是非常大,最好的每次下线一至两台,通过检查发现数据没有问题的时候再下线别的。这样虽然麻烦,但是是最安全的。上面写的有可能不对的地方请大家指正,谢谢。
PS:转载请注明出处,谢谢

运维网声明 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.iyunv.com/thread-311444-1-1.html 上篇帖子: 分布式存储系统Hadoop、hypertable 下篇帖子: hadoop合并小文件的一些说说
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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