出处:http://www.taobaotest.com/blogs/1604

业务开发测试HBase之旅二:通过HBase Shell与HBase交互

yedu 发表于:2011-10-11 浏览:9029次 评论:1次 所属分类: 分布式系统测试
引言

HBase提供了丰富的访问接口。

• HBase Shell

• Java clietn API

• Jython、Groovy DSL、Scala

• REST

• Thrift(Ruby、Python、Perl、C++…)

• MapReduce

• Hive/Pig

其中HBase Shell是常用的便捷方式,我们将结合本系列上一篇文章的理论分析来实践一把,依然采用blog表示例

首先你需要一个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控制台

>bin/hbase shell

看来控制台是靠jruby语言解析的。输入“help”可以快速扫描下支持那些命令。

创建表

> create 'blog','article','author'

知识点回顾:Column Family是schema的一部分,而Column不是。这里的article和author是Column Family。

增加记录

>put 'blog','1','article:title,' Head First HBase '

>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查询

> get 'blog','1'

知识点回顾:HTable按RowKey字典序(1,10,100,11,2)自动排序,每行包含任意数量

的Columns,Columns按ColumnKey(article:content,article:tags,article:title,author:name,author:nickname)自动排序

更新练习

  • 查询下更新前的值:

    > get ‘blog’,’1’,’author:nickname’

  • 更新nickname为’yedu’:

    > put ‘blog’,’1’,’ahthor:nickname’,’yedu’

  • 查询更新后的结果:

    > get ‘blog’,’1’,’author:nickname’

    知识点回顾:查询默认返回最近的值。

  • 查询nickname的多个(本示例为2个)版本值

    > get 'blog','1',{COLUMN => 'author:nickname',VERSIONS => 2}

    知识点回顾:每个Column可以有任意数量的Values,按Timestamp倒序自动排序。

  • 如何只查询到以前的旧版本呢,需要借助Timestamp

    >get 'blog','1',{COLUMN => 'author:nickname', TIMESTAMP => 1317180070811}

    知识点回顾:TabelName+RowKey+Column+Timestamp=>Value

    删除记录

  • delete只能删除一个column

    >delete 'blog','1','author:nickname'

  • 删除RowKey的所有column用deleteall

    >deleteall ‘blog’,’1’

    删除表

    练习完毕,把练习表删了吧,删除之前需要先disable

    >disable ‘blog’

    >drop ‘blog’

    小结

    本文演示了通过HBase shell创建、删除表及对记录的增删改查,可以参照操作结果对回顾的知识点进一步理解掌握,在本系列下一篇文章中讲演示如何通过Java api来与HBase交互。

  • 通过HBase Shell与HBase交互的更多相关文章

    1. Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

      转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...

    2. 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理

      第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...

    3. HBase Shell操作

      Hbase 是一个分布式的.面向列的开源数据库,其实现是建立在google 的bigTable 理论之上,并基于hadoop HDFS文件系统.     Hbase不同于一般的关系型数据库(RDBMS ...

    4. HBase shell 命令介绍

      HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,如果配置了HBase的环境变量,只要在sh ...

    5. 云计算与大数据实验:Hbase shell终端操作之数据操作一

      [实验目的] 1)学会向表中添加记录 2)学会添加记录时动态添加列 3)学会查看一条记录 4)学会查看表中的记录总数 5)学会删除记录 [实验原理] Hbase shell作为Hbase数据的客户端, ...

    6. hbase shell 基本命令总结

      访问hbase,以及操作hbase,命令不用使用分号hbase shell 进入hbase list 查看表hbase shell -d hbase(main):024:0> scan '.ME ...

    7. HBase shell

      进入命令行 ./hbase shell 查看HBase shell帮助 help 查看命令帮助 直接输入命令回撤 创建命名空间 create_namespace 'ns1' 查看命名空间 list_n ...

    8. Hbase Shell命令

      1 启动HBase shell 2 HBase shell 命令 3 我们将以“一个学生成绩表”的例子来详细介绍常用的 HBase 命令及其使用方法. 这里 grad 对于表来说是一个列,course ...

    9. Hbase shell详情

      HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”.HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建.删 ...

    随机推荐

    1. Storm,Spark和Samza

      http://www.csdn.net/article/2015-03-09/2824135 Apache Storm 在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topolo ...

    2. <Perl算法小菜>排序加速--Schwatzian变换及Guttman-Rosler变换

      原创博客,转载请联系博主! perl里的数据都是以双精度为单元存储的,也就是相当于C/Cpp中的double型,而正则的解析是由perl内置的正则引擎完成的,那么除了重写一个属于自己的排序方法之外,我 ...

    3. Spring Cloud之Swagger集群搭建

      在微服务中,Swagger是每个服务 比如会员服务,订单服务,支付服务 进行继承. 如何将整个微服务中的Swagger进行合成,同一台服务器上. 使用Zuul+Swagger实现管理整个微服务API文 ...

    4. HashMap,Hashtable,TreeMap ,Map

      package com.wzy.list; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterato ...

    5. MessFormat的简单使用

      MessageFormat用法java.text.MessageFormat 作用:MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置. Messa ...

    6. codeforces 627B B. Factory Repairs(线段树)

      B. Factory Repairs time limit per test 4 seconds memory limit per test 256 megabytes input standard ...

    7. 截取URL参数的方法

      1,有点小瑕疵,双问号会截取不到第一个参数 function GetQueryString(name){ var reg = new RegExp("(^|&)"+ nam ...

    8. linux命令学习笔记(53):route命令

      Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两 个不同的子网之间的通信,需要一台连接两个网络的路由器, ...

    9. 如何用Mendeley引用目标期刊要求的参考文献格式

      如果我们要向目标的杂志期刊投稿,则需要采用该期刊的参考文献格式.我用的mendeley管理文献,不收费且使用方便.那么,我们如何用mendeley引用目标期刊的参考文献呢?以Applied energ ...

    10. jitter buffer QoS的解决方案

      本文主要介绍一种QoS的解决方案,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help QoS出现的背景: 而当网络发生拥塞的时候,所有的数据流都有 ...