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

[经验分享] hadoop & hbase 上下线

[复制链接]

尚未签到

发表于 2015-7-14 08:13:05 | 显示全部楼层 |阅读模式
  线上部署hadoop、hbase 一般都是采用存储、计算一对一的方式,即每个节点启动 hadoop 的 datanode(以下简称dn)& tasktracker(以下简称tt) 再加 hbase regionserver(以下简称rs),hadoop namenode(以下简称nn)和 hbase master(以下简称master)一般在负载较轻的情况下可以部署在同一个节点上。
  生产集群在长时间运行过程中不可避免存在机器损坏替换的情况,计算资源需求随着业务数据量的增长也会不断提高,这需要我们对集群进行扩容或缩减。
  集群改变规模后,最为彻底的刷新方式就是重启整个集群,但重启会导致服务中断,hadoop hbase提供了较好的在线动态调整方式,结合网上的资料整理如下。
  
  hadoop节点增删

  
  dn和tt的增加:
  
  参考:
  http://www.iyunv.com/rilley/archive/2012/02/13/2349858.html
  http://rritw.com/a/bianchengyuyan/C__/20120815/205760.html
  1、修改nn的配置文件 hadoop/conf/slaves ,添加新节点,并同步配置到所有新节点的机器上.
  2、启动dn和tt服务:




1
2


hadoop/bin/hadoop-daemon.sh start datanode
hadoop/bin/hadoop-daemon.sh start tasktracker
  该步骤如果可以确定 slaves 中节点都正常,也可以直接在 nn 上运行 hadoop/bin/start-all.sh 来启动.
  3、开启balancer (默认10%):
  




1


hadoop/bin/start-balancer.sh ?-threshold 5
  
  
  dn和tt的删除:
  一般如果需要删除的节点较少,那么可以直接在需要删除的节点上stop所有应用即可。
  较为安全的方式推荐使用exclude文件,注意在删除对应节点时,添加到exclude中的hostname或ip必须和report中看到的一致,否则会无法踢出,一般都是ip地址.
  
  一、删除dn:
  1、修改nn conf/hdfs-site.xml文件, 指定exclude文件位置:




1
2
3
4



    dfs.hosts.exclude
    /home/admin/hadoop/conf/dfs_excludes
  2、dfs_excludes中添加需要下线的dn,如:




1
2
3
4


vi /home/admin/hadoop/conf/dfs_excludes
172.16.1.10
172.16.1.11
172.16.1.12
  3、在nn上执行下面指令开始迁移数据,完成后这些服务器上的 DataNode 将被停掉:




1


hadoop/bin/hadoop dfsadmin -refreshNodes
  4、通过下面方法检查下线是否完成:




1
2
3
4
5


hadoop/bin/hadoop dfsadmin -report

# 正在执行的会显示:Decommission Status : Decommission in progress
# 执行完毕后会显示:Decommission Status : Decommissioned
# 正常服务节点显示:Decommission Status : Normal
  也可以通过 web-UI 以下两个状态值来查看剩余需要balance的块数和进度:




1
2


Decommissioning Nodes              : 0
Number of Under-Replicated Blocks  : 0
  
  二、删tt
  
1、修改 jobtracker(一般和nn部署在一起)的配置文件 hadoop/conf/mapred-site.xml,指定exclude文件位置:




1
2
3
4



    mapred.hosts.exclude
    /home/admin/hadoop/conf/tt_excludes
  2、编辑 tt_excludes中添加需要下线的tt:




1
2
3
4


/home/admin/hadoop/conf/tt_excludes
hadoop-server-10
hadoop-server-11
hadoop-server-12
  
  3、在jobtracker上执行下面命令下线列表里面的JobTracker:




1
2


hadoop/bin/hadoop mradmin -refreshNodes
4、验证结果:
  操作后会立即生效,可以到 hadoop 的 web-UI 中查看节点的个数是否已经如期变化.
  
  ***** 以上操作完成后,可以清空两个 exclude 文件,并修改 slaves 文件为最新.
  
  
  HBase 节点增删
      基于hadoop hdfs部署后本身的存储容灾完全由hdfs接管,master结合zookeeper(以下简称zk)监控所有的在线rs保证所有的region在线正 常服务,rs将region信息都加载到内存中,一旦某个rs异常,master检测到该rs不可用后(该rs原先负责的region会转到zk中的 /hbase/unassigned)会及时重新分配unassigned region,让其他在线rs接管下线的rs服务的region;如果新增一个rs节点,master检测到新节点后,会在较短的时间段内启动 balancer,达到在线rs的region负载均衡(所有region平等,不管真实大小,只按region数量做均衡,更精细化的均衡策略在 0.92版本之后可以自己定制 可以参考 http://www.searchtb.com/2012/05/hbase_loadbalance_plugins.html   https://issues.apache.org/jira/browse/HBASE-3373)
    在增删hbase rs时,最好避开高峰期,并确认 如果删掉的rs是服务META 、ROOT表,master log中成功切换至别的rs,如果有异常需要立即处理。


  
  RS 增加:
  1、在 HMaster 上(一般和nn部署在同一节点) 的 hbase/conf/regionservers 中增加需要增加的节点.
  2、重新启动加载 RegionServer 配置列表(执行前需要确认是否已经有死掉的节点仍在列表之中):
  




1


hbase/bin/start-hbase.sh
  3、可以在 hbase 的 web-UI 中查看增加的节点是否生效.
  
  
  RS 删除:
  1、在 HMaster 上(一般和nn部署在同一节点) 执行下面命令下线对应服务器上的 ReginServer:
  




1
2
3
4


for HOSTNAME in `cat exclude_list`;do
    hbase/bin/graceful_stop.sh $HOSTNAME
    sleep 5
done
  2、由于下线 RS 时会关闭 hbase 的 LB,所以完成后要手工打开 balance:
  




1
2


# hbase shell
hbase(main):001:0> balance_switch true
  3、可以在 hbase 的 web-UI 中查看删除的节点是已经在 Dead Region Servers 的列表里.
  
  
  
  Hadoop & Hbase 单台节点启动和关闭:
  




1
2
3
4
5
6
7
8
9


# 停止:
hbase/bin/hbase-daemon.sh stop regionserver
hadoop/bin/hadoop-daemon.sh stop tasktracker
hadoop/bin/hadoop-daemon.sh stop datanode

# 启动:
hadoop/bin/hadoop-daemon.sh start datanode
hadoop/bin/hadoop-daemon.sh start tasktracker
hbase/bin/hbase-daemon.sh start regionserver  


原文:http://blog.chinaunix.net/uid-16362696-id-3479643.html

运维网声明 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-86374-1-1.html 上篇帖子: hadoop集群全纪录 下篇帖子: 使用Hadoop对复旦语料库建立word-doc矩阵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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