出处: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. Python 可变长度函数参数

      func( *tuple_grp_nonkw_args, **dict_grp_kw_args ) 在编程的过程中,我们可能会遇到函数参数个数不固定的情况.这时就需要使用可变长度的函数参数来实现我们的 ...

    2. 每天一个Linux命令(6)rmdir命令

           rmdir命令用来删除空目录. 利用rmdir命令可以从一个目录中删除一个或多个空的子目录.该命令从一个目录中删除一个或多个子目录,其中dirname表示目录名.如果dirname中没有指定 ...

    3. Data Structure Graph: prim

      最小生成树算法.这里的s是可以随意选取的,不影响树的生成,但是不同的s有不同的dis #include <iostream> #include <vector> #includ ...

    4. Please enable network time synchronisation in system settings

      eth区块同步出现这样的WARN: WARN [06-17|13:02:42] System clock seems off by -51.509894715s, which can prevent ...

    5. <再看TCP/IP第一卷>关于网络层及协议细节---IP协议(2)--移动IP及DHCP

      题外话:本来想按照互联网的层级自下向上回顾这些协议的,但是今天实在得破个例,DHCP不得不说! 主机从一个网络迁移到另一个网络,那么IP编址的结构就要发生改变,当今主流有如下几种修改方案: (一)改变 ...

    6. java入门了解13

      小知识点: 网络编程:主要解决计算机间数据传输 不需要html页面可以达到数据传输:QQ,微信 网页编程:继续Html页面基础上数据交互:OA,天猫... java方向:web方向,annrod常用S ...

    7. 1.start

      1. react-native init Helloworld  // 创建 helloworld 工程 2. 进入 helloworld ->android, 运行 react-navite ...

    8. 动态规划 最长回文子串 leetcode5

      public static String longestPalindrome(String s) { if(null==s||s.length()==0) return s; int n=s.leng ...

    9. I.MX6 USB Camera

      /************************************************************************* * I.MX6 USB Camera * 说明: ...

    10. 白话算法(6) 散列表(Hash Table)从理论到实用(上)

      处理实际问题的一般数学方法是,首先提炼出问题的本质元素,然后把它看作一个比现实无限宽广的可能性系统,这个系统中的实质关系可以通过一般化的推理来论证理解,并可归纳成一般公式,而这个一般公式适用于任何特殊 ...