`

hbase日常操作以及日常维护

 
阅读更多

出自:http://my.oschina.net/beiyou/blog/76456

 

一,基本命令:

    建表:create 'testtable','coulmn1','coulmn2'

     也可以建表时加coulmn的属性如:create 'testtable',{NAME => 'coulmn1', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '10', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY => 'false', BLOCKCACHE => 'false'}, {NAME => 'coulmn', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '30', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY => 'true'}  (其中的属性有versions:设置历史版本数,TTL:过期时间,COMPRESSION:压缩方式,当配置lzo的情况)

    删除表:drop 'testtable'   (删除表之前先要禁用表,命令disable 'testtable')

    启用和禁用表: enable 'testtable' 和disable 'testtable'

    其它的基本命令:describe 'testtable'(查看表结构),alert 修改表结构,list 列出所有表。

二,日常维护的命令

    1,major_compact 'testtable',通常生产环境会关闭自动major_compact(配置文件中hbase.hregion.majorcompaction设为0),选择一个晚上用户少的时间窗口手工major_compact,如果hbase更新不是太频繁,可以一个星期对所有表做一次major_compact,这个可以在做完一次major_compact后,观看所有的storefile数量,如果storefile数量增加到major_compact后的storefile的近二倍时,可以对所有表做一次major_compact,时间比较长,操作尽量避免高锋期。

    2,flush 'testtable',将所有memstore刷新到hdfs,通常如果发现regionserver的内存使用过大,造成该机的regionserver很多线程block,可以执行一下flush操作,这个操作会造成hbase的storefile数量剧增,应尽量避免这个操作,还有一种情况,在hbase进行迁移的时候,如果选择拷贝文件方式,可以先停写入,然后flush所有表,拷贝文件。

    3,balance_switch true或者balance_switch flase,配置master是否执行平衡各个regionserver的region数量,当我们需要维护或者重启一个regionserver时,会关闭balancer,这样就使得region在regionserver上的分布不均,这个时候需要手工的开启balance。

三,重启一个regionserver

    bin/graceful_stop.sh --restart --reload --debug nodename

    这个操作是平滑的重启regionserver进程,对服务不会有影响,他会先将需要重启的regionserver上面的所有region迁移到其它的服务器,然后重启,最后又会将之前的region迁移回来,但我们修改一个配置时,可以用这种方式重启每一台机子,这个命令会关闭balancer,所以最后我们要在hbase shell里面执行一下balance_switch true,对于hbase regionserver重启,不要直接kill进程,这样会造成在zookeeper.session.timeout这个时间长的中断,也不要通过bin/hbase-daemon.sh stop regionserver去重启,如果运气不太好,-ROOT-或者.META.表在上面的话,所有的请求会全部失败。

四,关闭下线一台regionserver

    bin/graceful_stop.sh --stop  nodename

    和上面一样,系统会在关闭之前迁移所有region,然后stop进程,同样最后我们要手工balance_switch true,开启master的region均衡。

五,检查region是否正常以及修复

    bin/hbase hbck  (检查)

    bin/hbase hbck -fix  (修复)

    会返回所有的region是否正常挂载,如没有正常挂载可以使用下一条命令修复,如果还是不能修复,那需要看日志为什么失败,手工处理。

六,hbase的迁移

    1,copytable方式

    bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=zookeeper1,zookeeper2,zookeeper3:/hbase 'testtable'

    目前0.92之前的版本的不支持多版本的复制,0.94已经支持多个版本的复制。当然这个操作需要添加hbase目录里的conf/mapred-site.xml,可以复制hadoop的过来。

    2,Export/Import

    bin/hbase org.apache.hadoop.hbase.mapreduce.Export testtable /user/testtable [versions] [starttime] [stoptime]

    bin/hbase org.apache.hadoop.hbase.mapreduce.Import testtable  /user/testtable

    跨版本的迁移,我觉得是一个不错的选择,而且copytable不支持多版本,而export支持多版本,比copytable更实用一些。

    3,直接拷贝hdfs对应的文件

    首先拷贝hdfs文件,如bin/hadoop distcp hdfs://srcnamenode:9000/hbase/testtable/ hdfs://distnamenode:9000/hbase/testtable/

    然后在目的hbase上执行bin/hbase org.jruby.Main bin/add_table.rb /hbase/testtable

    生成meta信息后,重启hbase

    这个操作是简单的方式,操作之前可以关闭hbase的写入,执行flush所有表(上面有介绍),再distcp拷贝,如果hadoop版本不一致,可以用hftp接口的方式,我推荐使用这种方式,成本低。

    先总结这么多,有空我再详细写一下region坏时怎么修复。

分享到:
评论

相关推荐

    hbase维护操作手册.zip

    这份手册深入探讨了HBase的日常维护与操作,旨在帮助读者熟练掌握HBase的核心概念、管理和优化技巧。 1. **HBase基础** - **数据模型**:HBase基于Bigtable的数据模型,以行键、列族、列和时间戳来组织数据,支持...

    hbase维护操作手册.docx

    1. **日常巡检**:包括检查HBase管理页面的可达性、Base Stats状态以及使用`jps`命令检查服务状态。 2. **节点管理**:节点的添加和移除需要谨慎操作,避免数据丢失或性能下降。使用`graceful_stop.sh`脚本安全关闭...

    HBase官方文档

    熟悉HBaseShell是HBase日常使用的基础。 ### 数据模型 HBase的数据模型主要包括概念视图、物理视图、表、行、列族、Cells等。HBase采用的是列族式存储模型,每个表由一个或多个列族组成,表中的数据都是以行的形式...

    HBase安装指南及Shell操作详解

    本文详细介绍了HBase与Hadoop之间的...适用人群:正在尝试安装配置以及日常运维HBase系统的研发技术人员及数据库管理员。 使用场景及目标:适用于想要快速部署HBase并在生产系统中存储大规模结构化数据的企业级项目。

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    7. **HBase运维参考**:在提供的“hbase运维参考手册(项目实战).docx”文档中,详细介绍了HBase的日常维护、故障排查和性能优化方法,包括但不限于日志分析、监控指标解读、常见问题解决等,对于实际运维工作具有很...

    HBase企业应用开发实战.rar

    此外,还会讨论如何使用HBase Shell进行交互式操作,这对于日常的运维和调试工作非常实用。 除了基本操作,书中还会探讨HBase的高级特性,如Region Splitting和Merge,负载均衡,以及Zookeeper在协调HBase节点中的...

    hbase2.x-hbck2 jar包及测试命令

    HBCK2是HBase维护和故障排查的重要组成部分,尤其在处理数据丢失、Region分裂不正确或者元数据不一致等问题时。 HBCK2 jar包是这个工具的可执行文件,通常在HBase的lib目录下可以找到,名为`hbase-hbck2-x.x.x.jar`...

    HBase 编程指南

    同时,提供了运维人员日常管理所需的一系列任务列表,包括数据导入导出、日志级别调整、问题排查等,以确保HBase集群的稳定运行和高效维护。 综上所述,《HBase编程指南》不仅是一本详尽的技术手册,更是一部引导IT...

    Hbase运维手册.pdf

    作为一名运维工程师,需要对Hbase进行日常维护和监控,以确保Hbase集群的稳定运行。本文档将为您提供Hbase运维手册,涵盖region情况检查、Region数量和大小调整、手动merge region和手动分配region等内容。 1. ...

    Hbase二级索引与JOIN

    - **管理工具**:开发专门的网页管理工具,方便管理员进行日常管理和操作。 #### 后期工作方向 - **数据稳定性**:进一步增强数据保护机制,确保数据的完整性和一致性。 - **性能提升**:持续优化系统架构,提高...

    weibo_hbase_

    《使用HBase技术实现微博...通过理解HBase的基本概念、表设计、数据操作以及性能优化,开发者可以灵活地运用HBase实现各种复杂的数据存储需求。在实际应用中,还需要结合监控、安全等多方面考虑,确保系统的稳定运行。

    HBase权威指南中文版

    12. **监控与运维**:书中还涵盖了HBase的监控工具,如HBase Master UI、JMX、Ambari等,以及日常运维的最佳实践,如性能调优、故障排查等。 通过对《HBase权威指南中文版》的学习,读者不仅能理解HBase的基本概念...

    云上HBase冷热分离实践.pdf.pdf

    综上所述,云HBase冷热分离方案充分利用了云计算的弹性伸缩能力、低成本优势以及高度自动化的特点,有效地解决了传统方案中存在的问题。它不仅提高了数据处理效率,降低了运维成本,还极大地增强了系统的灵活性和可...

    管理系统系列--HBaseManager,是一款强大的HBase表管理系统,目前系统集成的功能有,命名空间管理,表管.zip

    HBaseManager是专为管理HBase数据库设计的一款高效、全面的表管理系统,它致力于简化HBase的日常操作并提供丰富的管理功能。在HBase这种分布式列式存储系统中,有效地管理和优化表结构对于大数据处理至关重要。本文...

    Linux Ubuntu 18.04安装JDK、Hadoop、Hbase以及图形界面1

    在本文中,我们将详细探讨如何在Linux Ubuntu 18.04系统上安装JDK、Hadoop、Hbase以及配置...安装完成后,你将拥有一个运行在Ubuntu 18.04上的完整的Hadoop和HBase环境,同时具备了图形化界面,方便日常管理和维护。

Global site tag (gtag.js) - Google Analytics