分享

hbase备份以及导出问题。

ld512870 发表于 2015-4-24 17:31:15 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 85009
    查阅了一下资料,查到了HBase自带的export/import机制可以实现Backup Restore功能。而且可以实现增量备份。
原理都是用了MapReduce来实现的。
1、Export是以表为单位导出数据的,若想完成整库的备份需要执行n遍。
2、Export在shell中的调用方式类似如下格式:
./hbase org.apache.hadoop.hbase.mapreduce.Export 表名 备份路径 (版本号) (起始时间戳) (结束时间戳)
Export [-D <property = value>]* <tableName> <outputDir> [<versions> [<startTime> [<endTime>]]]
括号内为可选项,例如
./hbase org.apache.hadoop.hbase.mapreduce.Export 'contentTbl' /home/codeevoship/contentBackup20120920 1 123456789
备份contentTbl这张表到/home/codeevoship/contentBackup20120920目录下(最后一级目录必须由Export自己创建),版本号为1,备份记录从123456789这个时间戳开始到当前时间内所有的执行过put操作的记录。
注意:为什么是所有put操作记录?因为在备份时是扫描所有表中所有时间戳大于等于123456789这个值的记录并导出。如果是delete操作,则表中这条记录已经删除,扫描时也无法获取这条记录信息。
3、当不指定时间戳时,备份的就是当前完整表中的数据。

那么,还有没有其他的方式呢?还有就是有没有可视化的一些工具。

另外还碰到两个问题:
1,需要查看表中数据总数的时候,需要遍历整个表。好慢啊。我这表中有10亿数据。要用多久啊。。有没有什么快速的获取
数据总数的方法?
2,我不知道某个表的时间戳范围,怎么获取这个范围呢?在hbase shell中,以及java api中怎么获取呢?







已有(5)人评论

跳转到指定楼层
w123aw 发表于 2015-4-24 18:12:08
可以用快照,这个比较方便
hbase数据快速备份:HBase snapshot分析
回复

使用道具 举报

w123aw 发表于 2015-4-24 18:14:53
w123aw 发表于 2015-4-24 18:12
可以用快照,这个比较方便
hbase数据快速备份:HBase snapshot分析


hbase有哪些可视化工具,图形界面管理工具



1.hbase有那些管理工具,首先hbase有自带的简单的web界面
2.还有一种HBase图形界面管理工具HBaseXplorer
HBaseXplorer 是一款HBase管理工具,采用JAVA界面方式,查看和管理数据都很发布.
HBaseXplorer原名为 hbase-gui-admin ,是由 zpasal 开发的一款HBase管理工具
下载地址:https://github.com/bit-ware/HBaseXplorer/downloads   提供了 0.94.* 和 0.20.* 版本.
HBaseXplorer 1.0.2 界面截图
开启程序:
Mac OS X 下,直接启动   HBaseXplorer.jar
Linux 下,启动 HBaseXplorer.sh
Win 下,启动 HBaseXplorer.bat

启动输入zookeeper地址 , 需要配置好  host


程序的主界面:

3.hbase web管理工具phphbaseadmin
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。由于hbase自带的操作工具只有hbase shell,创建表、批量删除表、查看记录等操作很不方便,因此开发了phphbaseadmin工具,使用hbase thrift接口、php CI框架、bootstrap前端框架开发。
目前实现的功能主要有
浏览表、创建表、批量删除表、查看表metadata、搜索表记录、清空表,其中搜索记录可以根据rowkey 、timestamp、value几个字段查询。
4.IBM 的BigInsights
IBM 对 HBase 的改进和扩展
BigInsights 最大限度的提供了统一的,IBM 特有的 HBase 管理功能,包括用户界面以及后台命令行管理模式。这样,用户可以通过简单的界面操作或者后台命令来启停 / 查看 HBase 集群,而不用关心具体的实现细节。
与此同时,IBM 还提供了统一的用户界面和添加、删除节点命令来支持 HBase 集群的可伸缩性。
另外,HBase Master 多结点功能的实现,提供并保证了 HBase 在 BigInsights 中的高可用性。
HBase 服务状态监控

HBase Master 服务状态监控及启停

HBase Region Servers 服务状态监控及启停







来源http://www.aboutyun.com/thread-6257-1-1.html
回复

使用道具 举报

w123aw 发表于 2015-4-24 18:17:00
1,需要查看表中数据总数的时候,需要遍历整个表。好慢啊。我这表中有10亿数据。要用多久啊。。有没有什么快速的获取
数据总数的方法?

没有索引就是慢的
2,我不知道某个表的时间戳范围,怎么获取这个范围呢?在hbase shell中,以及java api中怎么获取呢?
不知道范围,还想获取,这是什么情况。

回复

使用道具 举报

ld512870 发表于 2015-4-25 11:20:13
w123aw 发表于 2015-4-24 18:12
可以用快照,这个比较方便
hbase数据快速备份:HBase snapshot分析

ok。我看看。谢谢了
回复

使用道具 举报

z-sir 发表于 2016-3-31 10:54:18
你好,楼主麻烦问一下。我用这种方法做数据导出时出现了这个问题。烦请看一下。不胜感激~
2016-03-31 10:38:07,843 INFO  [main] mapreduce.Job: Job job_1459216044525_0015 completed successfully
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.hbase.mapreduce.Driver.main(Driver.java:60)
Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.mapreduce.JobCounter.MB_MILLIS_MAPS
        at java.lang.Enum.valueOf(Enum.java:236)
        at org.apache.hadoop.mapreduce.counters.FrameworkCounterGroup.valueOf(FrameworkCounterGroup.java:148)
        at org.apache.hadoop.mapreduce.counters.FrameworkCounterGroup.findCounter(FrameworkCounterGroup.java:182)
        at org.apache.hadoop.mapreduce.counters.AbstractCounters.findCounter(AbstractCounters.java:154)
        at org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:240)
        at org.apache.hadoop.mapred.ClientServiceDelegate.getJobCounters(ClientServiceDelegate.java:370)
        at org.apache.hadoop.mapred.YARNRunner.getJobCounters(YARNRunner.java:511)
        at org.apache.hadoop.mapreduce.Job$7.run(Job.java:756)
        at org.apache.hadoop.mapreduce.Job$7.run(Job.java:753)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
        at org.apache.hadoop.mapreduce.Job.getCounters(Job.java:753)
        at org.apache.hadoop.mapreduce.Job.monitorAndPrintJob(Job.java:1361)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1289)
        at org.apache.hadoop.hbase.mapreduce.Export.main(Export.java:189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:72)
        at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:152)
        ... 5 more
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条