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

[经验分享] HBase(五): HBase运维管理

[复制链接]

尚未签到

发表于 2017-7-1 18:24:38 | 显示全部楼层 |阅读模式
        HBase自带的很多工具可用于管理、分析、修复和调试,这些工具一部分的入口是hbase shell 客户端,另一部分是在hbase的Jar包中。
  目录:


  • hbck
  • hfile
  • 数据备份与恢复



    • Snapshots
    • Replication
    • Export
    • CopyTable
    • HTable API
    • Offline backup of HDFS data

  hbck:



  • hbck 工具用于Hbase底层文件系统的检测与修复,包含Master、RegionServer内存中的状态及HDFS上数据的状态之间的一致性、黑洞问题、定位元数据不一致问题等
  • 命令: hbase hbck -help  查看参数帮助选项
  • DSC0000.png
  • 命令: hbase hbck -details   显示所有Region的完整报告
  • 命令: hbase hbck -metaonly  只检测元数据表的状态,如下图:
  • DSC0001.png
  • 快捷修复命令:
  • 命令:hbase hbck -repair -ignorePreCheckPermission   
  • 命令:hbase hbck -repairHoles -ignorePreCheckPermission   
  • 应用示例,参见:HBase(三): Azure HDInsigt HBase表数据导入本地HBase
  hfile:



  • 查看HFile文件内容工具,命令及参数如下:
  • DSC0002.png
  • 命令:hbase hfile -p -f  /apps/hbase/data/data/default/PerTest/7685e6c39d1394d94e26cf5ddafb7f9f/d/3ef195ca65044eca93cfa147414b56c2
  • 效果如下图:
  • DSC0003.png
  数据备份与恢复:



  • 常用的备份恢复方法如下图:参考文档: http://blog.cloudera.com/blog/2013/11/approaches-to-backup-and-disaster-recovery-in-hbase/
  • DSC0004.png
  snapshots:



  • HBase快照功能丰富,有很多特征,创建时不需要关闭集群
  • 快照在几秒内就可以完成,几乎对整个集群没有任何性能影响。并且,它只占用一个微不足道的空间
  • 启用快速需设置 hbase-site.xml 文件的  hbase.snapshot.enabled 为True
  • 命令: snapshot 'PerTest','snapPerTest'     基于表 PerTest 创建名为 snapPerTest 的快照
  • 命令: list_snapshots                               查看快照列表
  • 创建完快照后,在hbase 目录下会生成 .hbase-snapshots 目录,存放快照信息,如右下角图
  • DSC0005.png     DSC0006.png
  • 命令:delete_snapshot 'snapPerTest'       删除快照
  • 恢复快照需要对表进行离线操作。一旦恢复快照,那任何在快照时刻之后做的增加/更新数据都会丢失,命令如下:


    disable 'PerTest'
    restore_snapshot  'snapPerTest'
    enable 'PerTest'
  •    命令:clone_snapshot 'snapPerTest','PerTest1'     根据快照clone新表(注:clone出来的新表不带数据副本)

  • ExportSnapshot tool 快照导出工具命令: hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'snapPerTest' -copy-to /apps/hbase/data/zhu
  • 注意: 如果能访问到另一集群,则后面的地址可直接改为另一集群hdfs目录
  • DSC0007.png
  • 导出的文件结构如下
  • DSC0008.png

  Replication:



  • HBase replication是另外一个负载较轻的备份工具。被定义为列簇级别,可以工作在后台并且保证所有的编辑操作在集群复制链之间的同步
  • 复制有三种模式:主->从(master->slave),主<->主(master<->master)和循环(cyclic)。这种方法给你灵活的从任意数据中心获取数据并且确保它能获得在其他数据中心的所有副本。在一个数据中心发生灾难性故障的情况下,客户端应用程序可以利用DNS工具,重定向到另外一个备用位置
  • 注:对于一个存在的表,你需要通过本文描述的其他方法,手工的拷贝源表到目的表。复制仅仅在你启动它之后才对新的写/编辑操作有效
  • DSC0009.png
  • 复制是一个强大的,容错的过程。它提供了“最终一致性”,意味着在任何时刻,最近对一个表的编辑可能无法应用到该表的所有副本,但是最终能够确保一致。
  Export:



  • Export是HBase一个内置的实用功能,它使数据很容易将hbase表内容输出成HDFS的SequenceFiles文件
  • 使用map reduce任务,通过一系列HBase API来获取指定表格的每一行数据,并且将数据写入指定的HDFS目录中
  • 示例说明:集群A:基于HDInsight创建的windows系统下的hbase 集群, 集群B 基于Azure 虚拟机创建的liunx系统下 hbase集群,将A集群中表StocksInfo表导出至集群B的hdfs目录,遗憾的是两个集群无法通信,只能先导到本地,再手工上传
  • 命令语法: hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir>     示例如下:
  • DSC00010.png
  • 导出的文件结构如下:
  • DSC00011.png
  • 命令:hdfs dfs -get /zhu c:/zhu 下载到A集群某节点c盘,手工上传至liunx,如下图
  • DSC00012.png
  • 使用import命令导入数据至B集群HBase表,如下:(注:输入目录的文件必须是Export命令导出的文件格式)
  • 命令语法:hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>  如下图:
  • DSC00013.png
  • 查看Hbase 表,如下图则OK
  • DSC00014.png
  copyTable:



  • 和导出功能类似,拷贝表也使用HBase API创建了一个mapreduce任务,以便从源表读取数据。不同的地方是拷贝表的输出是hbase中的另一个表,这个表可以在本地集群,也可以在远程集群
  • 它使用独立的“puts”操作来逐行的写入数据到目的表。如果你的表非常大,拷贝表将会导致目标region server上的memstore被填满,会引起flush操作并最终导致合并操作的产生,会有垃圾收集操作等等
  • 必须考虑到在HBase上运行mapreduce任务所带来的性能影响。对于大型的数据集,这种方法的效果不太理想
  • 命令语法:hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=PerTest2 PerTest    (copy名为PerTest的表到集群中的另外一个表PerTest2) 如下图
  • 注意:若用到--new.name =xxx,首先这个新表要之前就被定义
  • DSC00015.png
  Offline backup of HDFS data:



  • 参见:HBase(三): Azure HDInsigt HBase表数据导入本地HBase

运维网声明 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-390133-1-1.html 上篇帖子: 基于BUI开发Asp.net MVC项目 下篇帖子: docker4dotnet #5 使用VSTS/TFS搭建基于容器的持续交付管道
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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