出处:
业务开发测试HBase之旅二:通过HBase Shell与HBase交互
发表于:2011-10-11 浏览:9029次 评论: 所属分类:
引言 HBase提供了丰富的访问接口。 • HBase Shell • Java clietn API • Jython、Groovy DSL、Scala • REST • Thrift(Ruby、Python、Perl、C++…) • MapReduce • Hive/Pig 其中HBase Shell是常用的便捷方式,我们将结合本系列 的理论分析来实践一把,依然采用 。 首先你需要一个HBase的环境,如果需要自己搭建可以参考http://hbase.apache.org/book/quickstart.html 和http://hbase.apache.org/book/notsoquick.html。 如果你在windows环境下配置cygwin及ssh遇到问题可以参考 http://www.taobaotest.com/blogs/1688。 进入HBase shell控制台 看来控制台是靠jruby语言解析的。输入“help”可以快速扫描下支持那些命令。 创建表 知识点回顾:Column Family是schema的一部分,而Column不是。这里的article和author是Column Family。 增加记录 >put 'blog','1','article:content','HBase is the Hadoop database. Use it when you need random, realtime read/write access to your Big Data.' > put 'blog','1','article:tags','Hadoop,HBase,NoSQL' > put 'blog','1','author:name','hujinjun' > put 'blog','1','author:nickname',’一叶渡江’ 知识点回顾:Column完全动态扩展,每行可以有不同的Columns。 根据RowKey查询 知识点回顾:HTable按RowKey字典序(1,10,100,11,2)自动排序,每行包含任意数量 的Columns,Columns按ColumnKey(article:content,article:tags,article:title,author:name,author:nickname)自动排序 更新练习 查询下更新前的值: 更新nickname为’yedu’: 查询更新后的结果: 知识点回顾:查询默认返回最近的值。 查询nickname的多个(本示例为2个)版本值 知识点回顾:每个Column可以有任意数量的Values,按Timestamp倒序自动排序。 如何只查询到以前的旧版本呢,需要借助Timestamp 知识点回顾:TabelName+RowKey+Column+Timestamp=>Value 删除记录 delete只能删除一个column 删除RowKey的所有column用deleteall 删除表 练习完毕,把练习表删了吧,删除之前需要先disable >drop ‘blog’ 小结 本文演示了通过HBase shell创建、删除表及对记录的增删改查,可以参照操作结果对回顾的知识点进一步理解掌握,在本系列下一篇文章中讲演示如何通过Java api来与HBase交互。
>bin/hbase shell
> create 'blog','article','author'
>put 'blog','1','article:title,' Head First HBase '
> get 'blog','1'
> get ‘blog’,’1’,’author:nickname’
> put ‘blog’,’1’,’ahthor:nickname’,’yedu’
> get ‘blog’,’1’,’author:nickname’
> get 'blog','1',{COLUMN => 'author:nickname',VERSIONS => 2}
>get 'blog','1',{COLUMN => 'author:nickname', TIMESTAMP => 1317180070811}
>delete 'blog','1','author:nickname'
>deleteall ‘blog’,’1’
>disable ‘blog’