出处: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. maven setting.xml 中文配置详解(全配置)

      春节假期在家养病,乘有时间整理了下之前的知识——知识贵在归纳总结. 参照了官方文档,针对其中的一些未描述详尽的内容翻查了不少资料,补充到了配置文件中,同时再加上一些说明.例子,方便查阅. 内容虽然比较 ...

    2. C#判断VS是否处于设计模式

      public class CheckDesingModel { public static bool IsDesingMode() { bool ReturnFlag = false; if (Lic ...

    3. mysql管理工具之pt-heartbeat

      之前我一直用Seconds_behind_master来衡量主从的延迟,今天看到文档,才觉得多么不可靠!以下是官方文档的描述: In essence, this field measures the ...

    4. Spring中ApplicationContext和beanfactory区别

      BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP ...

    5. 大话设计模式--观察者模式 Observer -- C++ 实现实例

      大话设计模式--1.观察者模式: 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有的 观察者对象,使他们能够自动更新自己. 使用场合: 当一 ...

    6. Codeforces 876C Classroom Watch:枚举

      题目链接:http://codeforces.com/contest/876/problem/C 题意: 定义函数:f(x) = x + 十进制下x各位上的数字之和 给你f(x)的值(f(x) < ...

    7. js操作url的常用函数

      1. //替换指定传入参数的值,paramName为参数,replaceWith为新值 function replaceParamVal(oUrl,paramName, replaceWith) { ...

    8. php 简单判断是否微信浏览器

      今天遇到一问题,让一个页面在微信上打开和浏览器打开显示不同的按钮,这是一个建议的方法 $user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($us ...

    9. PHP不用第三变量交换2个变量的值的解决方法

      以前做过一道php面试题是这样的:不使用第三个变量实现交换两个变量的值.一般都是借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变量,这对于初学者来说也算是一个难题了.网上找 ...

    10. LSM Tree 学习笔记——MemTable通常用 SkipList 来实现

      最近发现很多数据库都使用了 LSM Tree 的存储模型,包括 LevelDB,HBase,Google BigTable,Cassandra,InfluxDB 等.之前还没有留意这么设计的原因,最近 ...