HBase(五): HBase运维管理

HBase自带的很多工具可用于管理、分析、修复和调试,这些工具一部分的入口是hbase shell 客户端,另一部分是在hbase的Jar包中。

目录:

  • hbck
  • hfile
  • 数据备份与恢复
    1. Snapshots
    2. Replication
    3. Export
    4. CopyTable
    5. HTable API
    6. Offline backup of HDFS data

hbck:


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

hfile:


  • 查看HFile文件内容工具,命令及参数如下:
  • 命令:hbase hfile -p -f  /apps/hbase/data/data/default/PerTest/7685e6c39d1394d94e26cf5ddafb7f9f/d/3ef195ca65044eca93cfa147414b56c2
  • 效果如下图:

 数据备份与恢复:


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

snapshots:


  • HBase快照功能丰富,有很多特征,创建时不需要关闭集群
  • 快照在几秒内就可以完成,几乎对整个集群没有任何性能影响。并且,它只占用一个微不足道的空间
  • 启用快速需设置 hbase-site.xml 文件的  hbase.snapshot.enabled 为True
  • 命令: snapshot ‘PerTest‘,‘snapPerTest‘     基于表 PerTest 创建名为 snapPerTest 的快照
  • 命令: list_snapshots                               查看快照列表
  • 创建完快照后,在hbase 目录下会生成 .hbase-snapshots 目录,存放快照信息,如右下角图
  •   
  • 命令: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目录
  • 导出的文件结构如下

Replication:


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

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>     示例如下:
  • 导出的文件结构如下:
  • 命令:hdfs dfs -get /zhu c:/zhu 下载到A集群某节点c盘,手工上传至liunx,如下图
  • 使用import命令导入数据至B集群HBase表,如下:(注:输入目录的文件必须是Export命令导出的文件格式)
  • 命令语法:hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>  如下图:
  • 查看Hbase 表,如下图则OK

copyTable:


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

Offline backup of HDFS data:


时间: 2024-11-10 23:08:08

HBase(五): HBase运维管理的相关文章

IT运维管理7要

IT运维管理起源于IT基础设置建设之初,是对处于运行状态下的物理网络,软硬件环境.业务系统等进行维护管理,我们把这种IT管理的工作简称为IT运维管理. 具体我们可以大致概括为以下七部分内容: 第一.设备管理:对网络设备.服务器设备.操作系统运行状况进行监控,对各种应用支持软件如数据库.中间件.群件以及各种通用或特定服务的监控管理,如邮件系统.DNS.WEB等的监控与管理; 第二.数据/存储/容灾管理:对系统和业务数据进行统一存储.备份和恢复; 第三.业务管理:包含对企业自身核心业务系统运行情况的

shell + ansible + gateone 自动化运维管理

目的: shell + ansible + gateone 自动化运维管理:最少的人工干预下,结合运用脚本与第三方工具,保证业务系统7*24小时高效稳定运行: 1.安装环境涉及软件 本次操作系统:Centos 6.5 32/64 进行测试 项目安装软件 版本 Python 2.6.6 Tornado 2.4.1 2.环境部署 2.1 安装依赖包 yum install -y python python-pip gcc python-devel setuptool python-pam opens

VMware交付的软件定义的数据中心 - 运维管理

上一篇,我介绍了VMware交付的软件定义的存储产品,Virtual SAN和vCenter SiteRecovery Manager,本文就详细描述VMware交付的数据中心管理和自动化产品组. 数据中心管理和自动化 在前面几期我详细描述了VMware交付的软件定义的计算.网络和存储,细心的读者可以发现,如果数据中心的计算资源.网络资源和存储资源都被虚拟化后,IT部门可以更加灵活而弹性的控制数据中心的各种资源,为业务部门提供更好的支持和服务.但是,这也给IT部门对于数据中心的管理提出了更大的挑

CPR式的IT运维管理,我们不要!

什么是CPR式的IT运维管理?CPR(Cardiopulmonary Resuscitation),是医学术语"心肺复苏"的简称,是指心搏骤停一旦发生,就必须立即在现场进行心肺复苏CPR,以挽救患者的生命. 想想我们的IT运维场景,是不是也会经常出现IT运维式的CPR呢?当客户先于我们发现运维事件时,我们的运维人员除了迅速变身为IT医生,前往现场实施CPR式的运维处理外,剩下的就只有尴尬和忐忑了. 作为一个IT运维人,闲暇时我总是问自己:从事运维有没有前途? 论职位,在一般企业最高级别

8个方面谈IT运维管理

IT运维管理的概念应该源于信息系统的生命周期,通常信息系统要经历规划.设计.开发.实施(部署).测试(验收).运行.废止等阶段,每个阶段都有相应的工作内容,运维管理就是运行阶段的主要工作. IT运维管理,是指单位 IT 部门采用相关的方法.手段.技术.制度.流程和文档等,对IT 运行环境(如硬软件环境.网络环境等).IT 业务系统和 IT 运维人员进行的综合管理.IT 运维管理主要包括8个方面的管理内容: 1·设备管理:对网络设备.服务器设备.操作系统运行状况进行监控和管理: 2·应用/服务管理

Linux小课堂开课了(9)-Centos7日常运维管理

Centos7日常运维管理 1,查看系统配置,进程,I/O,网卡流量使用w可以查看系统的状态,当前时间,系统启动时间,登录用户,从哪个IP登录的,系统的负载值.使用uptime查看系统的负载值使用iptop,可以具体查看哪个进行使用的I/O较多,需要安装一下[[email protected] ~]# yum -y install iotop[[email protected] ~]# iotop使用cat /proc/cpuinfo查看系统配置使用vmstat可以查看CPU,内存,虚拟磁盘,交

Pexpect:系统批量运维管理器!!!

项目背景: 为了更好的实现我们企业的自动化运维,我们需要对pexpect模块有清晰的了解和使用能力. 实验环境: vmware workstation 11 centos6.5的系统下 pexpect服务器:192.168.0.26 远程主机:192.168.0.14 SecureCRT (ssh远程连接软件) 软件介绍 Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块. Pexpect 可以用来和像 ssh.ftp.passwd.telnet 等命令行程序进行自动

如何有效进行IT运维管理

IT运维中的不良习惯 (1).治标不治本.IT设施故障往往是突发的.随机的.不可预测.不可控制的.也很难自动提醒和警告.运维和管理人员成天处于高度紧张状况,节假日也提心吊胆.一旦发生故障,往往手忙脚乱来不及仔细多方面观察.分析原因,也无法很快准确定位.为了尽快恢复业务,只能采取重启.清除等不可回朔操作.这种治标不治本的维护措施,不能根本解决问题,类似现象仍然可能再发生. (2).没有排错记录.我们的很多IT人员没有排错记录的习惯,这样当事后查找原因缺乏当时记录,就算找到点痕迹也缺乏进一步分析数据

zookeeper 运维管理

zookeeper 运维管理(转) link: http://blog.163.com/[email protected]/blog/static/963698182012928114335375/ 2012-10-28 11:43:35|  分类: zookeeper|字号 订阅 学习借鉴 1.部署 本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容: 1. 系统环境 2. 集群模式的配置 3. 单机模式的配置 系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生产环境

Mysql运维管理-MySQL备份与恢复实战案例及生产方案17

1.全量备份与增量备份 1.1 全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B –A gzip >/server/backup/mysq_backup_$(date +%F).sql.gz 备份一个库: mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B linzhong