最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[Hbase] 提高效率工具总结--操作hbase数据工具

[复制链接]
跳转到指定楼层
楼主
发表于 2014-11-14 11:37:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一.工具开发背景:
业务上目前主要计算逻辑的数据源是hbase,但是我们没有工具对hbase的数据进行单条更改造数据来验证逻辑,之前的做法是把hbase的数据都导出来,改完再重新载入回去,或使用hbase [url=]shell[/url]接口进行更改(有一个限制就是hbase shell get 出来的数据汉字是看不出来的),效率低,也不便于自动化的回归。[url=]测试[/url]非常的被动。
于是在师姐的建议下期望有操作hbase数据的工具来提高我们的效率,及大数据的验证。
二.工具简介:
工具使用[url=]java[/url]编写的jar包,在ihbase.sh进行简单数据处理对jar包进行调用。主要功能为数据的增删改查,支持gbk,utf8编码。通过配置一个xml格式的配置文件 (也可以不配置)。
三.使用方法:
1.properties.sh:在里面配置hbase,hadoop等环境变量,里面目前默认是我们测试集群的配置作为参考。注意一些基础的jar包一定要有。
2.config:xml格式的配置hbase导出数据的信息。在海量导出数据或根据rowkey到处数据的时候使用。
3.ihbase.sh工具的使用接口。
四.简要使用介绍:
操作均在bin目录下。

一.查询数据功能
1. ./ihbase –t table_name -rowkey rowkey -enc encoding -s
-enc encoding这个的目的是指定以什么编码读出hbase数据,目前支持utf8,gbk。如果不加该参数则默认以utf读出。
查看表名为table_name,rowkey为rowkey的数据。
2. ./ihbase –t 表名 –k CF:COLUMN=value –k CF:COLUMN=value –w column -s
./ihbase.sh –t "[url=]test[/url]" –k "a:name=jkfs" –k "a:id=111" -w "nid" -s
查询满足a:name=jkfs且a:id=111的记录,若加上-w参数,则只显示 -w 传进去的列。若不加-w 显示所有列。
(这个命令一般很少用,因为使用这个=的filer需要扫hbase全表,因为这种方式很少使用,所以暂时没考虑如何优化)
二.删除数据功能
1. ./ihbase –t table_name –rowkey rowkey –delete
根据rowkey进行删除。
2. ./ihbase –t table_name –k CF:COLUMN=value –k CF:COLUMN=value –delete
./ihbase –t test –k "a:id=jaks" -k "name=a:jkasj" -delete
删除满足a:id=jaks且a:name=jkasf的数据(目前支持and进行删除,不支持or,原理同该方式的查询)
三.添加数据功能
./ihbase –t table_name –rowkey rowkey –v CF:COLUMN=value –v CF:COLUMN=value -a
./ihbase.sh –t "a:test" -rowkey "111" –v "a:name=jkfs" –v "id=111" -a
添加rowkey为111的数据,后面key,value可以任意指定。如果rowkey已经存在,则报错不进行添加。
添加数据要求必须指定rowkey
四.修改数据功能
1. ./ihbase –t table_name –rowkey rowkey –v key=value -v key=value -u
./ihbase.sh -t "test" -rowkey "1111" –v "name=jkasjd" -u
根据rowkey进行修改一条记录的列数据
2. ./ihbase –t table_name –k key=value –k CF:COLUMN=value -v CF:COLUMN=value -u
./ihbase.sh –t test –k "a:name=jksdj" –k "mge=kjdk" –v "a:name=huanyu" -u
根据非rowkey进行修改,-k 提供修改的条件,-u 提供要修改的列的数数据。(原理同查询,scan全表)
五.导出hbase指定列的数据(所有数据)
./ihbase -f config 此处有一个限制:就是导出表的配置文件必须放在bin的目录下。如果不喜欢这样也可以修改ihbase脚本进行调整。
config为配置导出表信息的xml配置
<?xml version="1.0"?>
<configuration>
  <table>
    <in_enc>gbk</in_enc>
    <out_enc>utf8</out_enc>
    <tablename>test</tablename>
    <field_separator>\001</field_separator>
    <record_separator>\002</record_separator>
    <column>
      bmw_shops:title
    </column>
    <outpath>/test/huanyu/hbase</outpath>
  </table>
</configuration>
in_enc:hbase中的编码,以解析hbase中数据使用的编码。
out_enc:输出到hdfs路径上的编码。
tablename:操作的表名。
field_separator:如果导出多个字段则作为多个字段间的分隔符。
record_separator:导出数据的行分隔符。(除了\n的字符,因为默认会分行)。
column:导出的字段。如果不存在该字段则导出''。
outpath:导出数据的路径。(其实应在代码中把这个路径先删除的,但是怕用户忘记修改路径误删除,所以没有这么做)
有多少个region 启动多少个map。
六.导出hbase指定行的指定列的数据
./ihbase -f config -rf rfile
config里面配置导出的列,字符编码表名等信息。
rfile 配置导出哪些rowkey的数据。(一个rowkey一行)
类似上面。
七.帮助信息
./ihbase –h
显示帮助信息


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-9 00:42

Powered by BI168大数据社区

© 2012-2014 168大数据

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