【实验目的】

1)学会向表中添加记录

2)学会添加记录时动态添加列

3)学会查看一条记录

4)学会查看表中的记录总数

5)学会删除记录

【实验原理】

Hbase shell作为Hbase数据的客户端,可以连接hbase,通过命令行方式和hbase进行交互。

Hbase shell是一个封装了Java客户端API的JRuby应用软件。

在终端中执行hbase shell命令启动Shell,即可操作hbase。

Shell可以支持命令自动补全和命令文档内联访问。

【实验环境】

本次环境是:centos6.5+jdk1.7.0_79+hbase0.96+hbase shell

host01是计算机名称对应ip地址为 192.168.1.2,可以在/etc/hosts文件中查看映射关系

【实验步骤】

    一 、项目准备阶段

1.1  通过命令start-all.sh启动hadoop,启动hbase。进入$HBASE/bin/目录,执行命令./start-hbase.sh。如图1所示

图1

1.2  启动shell模式。进入$HBASE/bin目录,执行./hbase shell命令。如图2所示

图2

1.3  创建测试表。在命令行中输入create 'people', {NAME =>'info', VERSIONS=>3}, {NAME=>'data', VERSIONS=>1}创建people表。如图3所示

图3

    二、向表中添加记录

2.1  查看插入操作帮助。在命令行中执行help 'put',可以查看相关帮助文档。如图4所示

图4

2.2 向第一个列族的第一个列插入一条记录。

说明:

插入一行数据到列族info的列name中。在命令行中执行put 'people',

'rk0001',   'info:name', 'MaYun'。其中,rk0001为行健值,MaYun

为列族info中字段name的值。如图5所示

图5

2.3 向第一个列族的第二个列插入一条记录。

说明:

插入一行数据到列族info的列gender中。在命令行中执行put 'people'

,'rk0001',   'info:gender', 'male'。其中,rk0001为行健值,male为列

族info中字段gender的值。插入该记录之后,列族info下面将会含有两

个列name和gender。如图6所示

图6

2.4 向第二个列族的第一个列插入一条记录。

说明:

插入一行数据到列族data的列myurl中。在命令行中执行put 'people'

, 'rk0001',   'data:myurl', 'www.yun.alibaba.com/myURL'。其中,

rk0001为行健值,www.yun.alibaba.com/myURL为列族data中字

段myurl的值。如图7所示

图7

2.5 插入第二行数据。

说明:

Hbase中用rowkey来判断数据属于哪一行,上面数据的rowkey为

rk0001,下面将用rk0002做为rowkey来插入第二列数据。插入一

行数据到列族info的列name中。在命令行中执行put 'people' ,

'rk0002',   'info:name', 'LiuChangle'。其中,rk0002为行健值,

LiuChangle为列族info中字段name的值。如图8所示

图8

    三、查看表中一条记录

3.1 已知rowkey值为rk0001,执行语句get ‘people’, ‘rk0001’,查询该rowkey对应的一条记录。如图9所示

图9

    四、查看表中的记录总数

4.1 查询表people中的记录总数。执行语句count ‘people’返回记录数。如图10所示

图10

    五、删除表中的记录

5.1 删除数据之前,首先插入测试数据。如图11所示

测试数据如下:

put 'people' , 'rk0003',  'info:name', 'MaYun2'
    put 'people' , 'rk0003',  'info:gender', 'male'
    put 'people' , 'rk0003',  'data:myurl', 'www.y

un.alibaba.com/myURL2'

图11

5.2 查询上面插入的数据。执行命令get 'people', 'rk0003'。如图12所示

图12

5.3 删除rowkey为rk0003的值的记录。执行命令deleteall 'people','rk0003'。如图13

图13

执行命令get 'people', 'rk0003'查看结果,发现记录数为0,说明删除成功。如图14

图14

云计算与大数据实验:Hbase shell终端操作之数据操作一的更多相关文章

  1. 【大数据】Hbase如何批量删除指定数据

    一.起因: Hbase是一个列式存储,nosql类型的数据库,类似mongodb. 目前似乎没有提供批量删除的方法,只有一个单行删除的命令:deleteall 'tablename', rowkey ...

  2. Hbase Shell命令详解+API操作

    HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...

  3. 云计算与大数据实验:Hbase shell基本命令操作

    [实验目的] 1)了解hbase服务 2)学会启动和停止服务 3)学会进入hbase shell环境 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件 ...

  4. Hbase记录-Hbase shell使用命令

    1.进入hbase shell  执行./bin/hbase shell 2.进入后,help  帮助信息,如可以使用help 'create' 3.创建表:create 'test','cf'  表 ...

  5. Hbase shell 输入无法使用退格键删除解决办法

    今天在进入hbase shell终端进行数据查询和添加时,发现输入的命令无法撤回,现将解决办法写下: 1.使用Ctrl + Backspace或Shift + Backspace组合键删除 2.(Se ...

  6. 【hbase】——bulk load导入数据时value=\x00\x00\x00\x01问题解析

    一.存入数据类型 Hbase里面,rowkey是按照字典序进行排序.存储的value值,当用filter进行数据筛选的时候,所用的比较算法也是字典序的. 1.当存储的value值是float类型的时候 ...

  7. flink-cdc同步mysql数据到hbase

    本文首发于我的个人博客网站 等待下一个秋-Flink 什么是CDC? CDC是(Change Data Capture 变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的 ...

  8. HBase shell 中的十六进制数值表示

    在使用Hbase shell 进行get 或scan操作时,时不时会看到一些数值被转成了16进制, 就像下面那样 value=W\x5C5\x80 那么这个值具体等于多少? 查阅资料后发现算法如下 W ...

  9. 云计算与大数据实验:Hbase shell操作用户表

    [实验目的] 1)了解hbase服务 2)学会hbase shell命令操作用户表 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Ha ...

随机推荐

  1. 【SpringBoot】SpringBoot日志框架(四)

    日志框架介绍 在开发过程中,我们经常使用到日志来进行排查问题,我们使用的日志框架都是由2部分组成(日志API + 日志实现) 日志API(及日志抽象层)有:SLF4j(Simple Logging F ...

  2. C# HashSet集合类型使用介绍

    1.HashSet集合 使用HashSet可以提高集合的运算.使用HashSet集合不自带排序方法,如果需要排序的需求可以参考使用List<T>集合配合Sort方法. HashSet的优势 ...

  3. java修改文件所有者及其权限

    1.设置所有者 管理文件所有者 Files.getOwner()和Files.setOwner()方法 要使用UserPrincipal来管理文件的所有者 (1)更改文件的所有者 import jav ...

  4. js生成条形码——JsBarcode

    原文地址:https://www.cnblogs.com/huangenai/p/6347607.html 介绍一下在GitHub生成条形码的js插件→JsBarcode 条码支持的有: CODE12 ...

  5. IDEA和JIRA任务联动(redmine同理)

    IDEA和JIRA任务联动-操作流程详解 redmine和这个步骤类似,只是第一步选择的工具不一样 操作流程 添加jira配置,File->Setting-->tools-->Tas ...

  6. 一个".java"源文件中是否可以包括多个类(不包括内部类)

    开通好几个月博客了,但是一直没有时间写,这一段时间准备开始复习了,以后准备好好写博客了,会从基础的内容开始. 一个".java"源文件中可以定义多个类,但最多只能定义一个publi ...

  7. 执行sudo supervisorctl reload报错ImportError: No module named supervisor.supervisord

    由于yum install supervisor 会默认使用python2.6环境,首先要安装好python2.6的环境,然后修改以下文件首行为2.6即可 [root@VM_0_15_centos ~ ...

  8. Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'xxxxx.Controllers.xxxxController'.

    Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activa ...

  9. day21——面向对象初识、结构、从类名研究类、从对象研究类、logging模块进阶版

    day21 面向对象的初识 面向对象第一个优点: 对相似功能的函数,同一个业务下的函数进行归类,分类. 想要学习面向对象必须站在一个上帝的角度去分析考虑问题. 类: 具有相同属性和功能的一类事物. 对 ...

  10. Python 基础 while 循环

    Python 基础 while 循环 while 循环 在生活中,我们遇到过循环的事情吧?比如循环听歌.在程序中,也是存才的,这就是流程控制语句 while 基本循环 while 条件: # 循环体 ...