HBase基础之Hbase shell常用操作

一般操作

查看服务器状态

status

查看hbase版本

version

DDL操作

创建表

create ‘member‘,‘member_id‘,‘address‘,‘info‘

创建了3个列族,分别是member_id, address, info

知识点回顾:cf是schema的一部分,而column不是

查看表信息

describe ‘member‘

DESCRIPTION                                                              ENABLED
 ‘member‘, {NAME => ‘address‘, DATA_BLOCK_ENCODING => ‘NONE‘, BLOOMFILTE true
 R => ‘ROW‘, REPLICATION_SCOPE => ‘0‘, VERSIONS => ‘1‘, COMPRESSION => ‘
 NONE‘, MIN_VERSIONS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED_CELLS =>
 ‘false‘, BLOCKSIZE => ‘65536‘, IN_MEMORY => ‘false‘, BLOCKCACHE => ‘tru
 e‘}, {NAME => ‘info‘, DATA_BLOCK_ENCODING => ‘NONE‘, BLOOMFILTER => ‘RO
 W‘, REPLICATION_SCOPE => ‘0‘, VERSIONS => ‘1‘, COMPRESSION => ‘NONE‘, M
 IN_VERSIONS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED_CELLS => ‘false‘,
  BLOCKSIZE => ‘65536‘, IN_MEMORY => ‘false‘, BLOCKCACHE => ‘true‘}, {NA
 ME => ‘member_id‘, DATA_BLOCK_ENCODING => ‘NONE‘, BLOOMFILTER => ‘ROW‘,
  REPLICATION_SCOPE => ‘0‘, VERSIONS => ‘1‘, COMPRESSION => ‘NONE‘, MIN_
 VERSIONS => ‘0‘, TTL => ‘2147483647‘, KEEP_DELETED_CELLS => ‘false‘, BL
 OCKSIZE => ‘65536‘, IN_MEMORY => ‘false‘, BLOCKCACHE => ‘true‘}
1 row(s) in 0.1800 seconds

查询所有的表

list

删除一个列族

member表建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。

alter ‘member‘,‘delete‘=>‘member_id‘ 

drop表

为了测试drop,先创建一个表

create ‘tmp_table‘,‘info‘

删除表之前需要先将表disable再drop

disable ‘tmp_table‘
drop ‘tmp_table‘

判断表是否enable

is_enabled ‘member‘

判断表是否disabled

is_disabled ‘member‘

DML操作

插入记录

格式:put 表名 row_key cf:column value

put ‘member‘,‘luogankun‘,‘info:age‘,‘27‘
put ‘member‘,‘luogankun‘,‘info:birthday‘,‘1986-09-05‘
put ‘member‘,‘luogankun‘,‘info:company‘,‘asinainfo-linkage‘
put ‘member‘,‘luogankun‘,‘address:country‘,‘china‘
put ‘member‘,‘luogankun‘,‘address:province‘,‘beijing‘
put ‘member‘,‘luogankun‘,‘address:city‘,‘beijing‘

put ‘member‘,‘spring‘,‘info:age‘,‘27‘
put ‘member‘,‘spring‘,‘info:birthday‘,‘1986-05-14‘
put ‘member‘,‘spring‘,‘info:company‘,‘asinainfo-linkage‘
put ‘member‘,‘spring‘,‘address:country‘,‘china‘
put ‘member‘,‘spring‘,‘address:province‘,‘hubei‘
put ‘member‘,‘spring‘,‘address:city‘,‘wuhan‘
put ‘member‘,‘spring‘,‘info:favorite‘,‘shopping‘

知识点回顾: column完全动态扩展,每行可以有不同的columns。

获取一个rowkey的所有数据

格式:get 表名 row_key

get ‘member‘,‘luogankun‘

COLUMN                       CELL
 address:city                timestamp=1409122962541, value=beijing
 address:country             timestamp=1409122962468, value=china
 address:province            timestamp=1409122962510, value=beijing
 info:age                    timestamp=1409122962328, value=27
 info:birthday               timestamp=1409122962399, value=1986-09-05
 info:company                timestamp=1409122962434, value=asinainfo-linkage 

知识点回顾:htable按rowkey字典序(1,10,100,2)自动排序,每行包含任意数量的columns,columns按照columnkey(address:city,address:country,address:province,info:age,info:birthday,info:company)自动排序

获取一个id,一个列族的所有数据
格式: get 表名 row_key column

get ‘member‘,‘luogankun‘,‘info‘

COLUMN                       CELL
 info:age                    timestamp=1409122962328, value=27
 info:birthday               timestamp=1409122962399, value=1986-09-05
 info:company                timestamp=1409122962434, value=asinainfo-linkage 

获取一个id,一个列族中一个列的所有数据
格式:get 表名 row_key cf:column

get ‘member‘,‘luogankun‘,‘info:age‘

COLUMN                       CELL
 info:age                    timestamp=1409122962328, value=27

更新一条记录
格式: put 表名 row_key cf:column value
将luogankun的年龄改成18

put ‘member‘,‘luogankun‘,‘info:age‘,‘18‘

get ‘member‘,‘luogankun‘,‘info:age‘

COLUMN                       CELL
 info:age                    timestamp=1409123175384, value=18 

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

通过timestamp来获取指定版本的数据
格式: get 表名 row_key {COLUMN=>‘cf:column‘,TIMESTAMP=>xxxxxx}

get ‘member‘,‘luogankun‘,{COLUMN=>‘info:age‘,TIMESTAMP=>1409122962328}

COLUMN                       CELL
 info:age                    timestamp=1409122962328, value=27                                                 

get ‘member‘,‘luogankun‘,{COLUMN=>‘info:age‘,TIMESTAMP=>1409123175384}
COLUMN                       CELL
 info:age                    timestamp=1409123175384, value=18  

知识点回顾:每个column可以有任意数量的values,按timestamp倒序自动排序;tableName+rowkey+column+timestamp==>value

全表扫描
格式:scan 表名

scan ‘member‘

ROW                          COLUMN+CELL
 luogankun                   column=address:city, timestamp=1409122962541, value=beijing
 luogankun                   column=address:country, timestamp=1409122962468, value=china
 luogankun                   column=address:province, timestamp=1409122962510, value=beijing
 luogankun                   column=info:age, timestamp=1409123175384, value=18
 luogankun                   column=info:birthday, timestamp=1409122962399, value=1986-09-05
 luogankun                   column=info:company, timestamp=1409122962434, value=asinainfo-linkage
 spring                      column=address:city, timestamp=1409122962828, value=wuhan
 spring                      column=address:country, timestamp=1409122962754, value=china
 spring                      column=address:province, timestamp=1409122962787, value=hubei
 spring                      column=info:age, timestamp=1409122962592, value=27
 spring                      column=info:birthday, timestamp=1409122962623, value=1986-05-14
 spring                      column=info:company, timestamp=1409122962670, value=asinainfo-linkage
 spring                      column=info:favorite, timestamp=1409122963494, value=shopping      

删除id为spring的值的‘info:age‘字段
格式:delete 表名 row_key cf:column
先查看

get ‘member‘,‘spring‘,‘info:age‘

COLUMN                       CELL
 info:age                    timestamp=1409122962592, value=27

再删除

delete ‘member‘,‘spring‘,‘info:age‘

再查看对比是否已经删除

get ‘member‘,‘spring‘,‘info:age‘

COLUMN                       CELL
0 row(s) 

查询表中有多少行
格式:count 表名

count ‘member‘

删除整行
格式: deleteall 表名 row_key

deleteall ‘member‘,‘spring‘

将整张表清空
格式: truncate 表名

truncate ‘member‘

Truncating ‘member‘ table (it may take a while):
 - Disabling table...
 - Dropping table...
 - Creating table...

可以看出,hbase是先将掉disable掉,然后drop掉后重建表来实现truncate的功能的。

时间: 2024-10-03 22:40:31

HBase基础之Hbase shell常用操作的相关文章

MongoDB Shell 常用操作

数组查询 数组查询 MongoDB 中有子文档的概念,一个文档中能方便的嵌入子文档,这与关系性数据库有着明显的不同,在查询时,语法有一些注意点. 例子代码,假如我们的一个集合(tests)中存在标签键,有如下模式: tags: [ObjectId] 查询含有某个标签 ID 的文档 db.tests.find({tags: tagId}); 我现在有一组标签 tagIds,即是数组,需要查询含有该数组中任一元素的文档,此时需要用到 $in 操作符 db.tests.find({tags: {$in

Hive基础之Hive表常用操作

本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED

Hive Shell常用操作

1.本文命令的两种模式: 交互模式,即hive的shell环境:hive > …. 非交互模式:普通的Linux命令模式:%..... 2.Hive Shell常用操作 1) hive -e:从命令行执行指定的HQL,不需要分号: % hive -e 'select * from dummy' > a.txt 2) hive –f: 执行HQL脚本 % hive -f /home/my/hive-script.sql 3) hive -i:在进入交互模式之前,执行初始化sql文件 % hive

Docker 基础概念科普 和 常用操作介绍

Docker 基础概念 Docker是什么? Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响.那么我就不需要专门运送瓷器的船和专门运送化学物品的船了.只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走. 不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成

Java基础之数组-->>数组常用操作

3.2一维数组 3.2.1声明数组 数组类型[] 数组名称: int [] username; 或者 数组类型 数组名称[]; int username[]; 3.2.2初始化一维数组 一维数组初始化有两种格式,一种是先声明再赋值,一种是直接声明并赋值 int [] array = new int[5]; //创建一个整型数组对象,长度为5: int [] array = {1,2,3,4,5}; //创建一个整型数组对象,长度为5,并同时赋值: 用new 运算符来创建数组对象时,必须指定数组大

70个shell常用操作

1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2 3) 如何计算传递进来的参数 ? $# 4) 如

shell常用操作积累

1. 拼接字符串* #!/bin/sh write_log(){ local up_name=$1 local num=${#string} while [ $num -le 256 ]; do up_name="$up_name*" num=$(($num + 1)) done echo $up_name } write_log "wang" 输出: wang*****************************************************

shell 常用操作

Command + K 清屏 Command + L 清屏 Command + T 新建标签 Command +W  关闭当前标签页 Command + S  保存终端输出 Command + D  垂直分隔当前标签页 Command + Shift + D  水平分隔当前标签页 Command + shift +  {或} 向左/向右切换标签

Shell常用操作

1.读取配置文件中的jdbc_url参数的值($InputParamFile为待读取的目标文件绝对路径) jdbc_url=`grep "jdbc_url" $InputParamFile | awk -F '=' '{print $2}'` 2.修改配置文件jdbc_url参数的值(${jdbcConfigFilePath}为待修改的目标文件绝对路径) sed -i "s#\${jdbc_url}#${jdbc_url}#" ${jdbcConfigFilePat