设计图网站,个人建设网站服务器怎么解决,遵义网站建设优化公司,网站做前端一、help
1.help
显示命名的分组情况 2.help 命令名称
查看命令的具体使用#xff0c;包括命令的作用和用法。
举例#xff1a;help list 二、general 组#xff08;普通命令组#xff09; 命令 描述 …一、help
1.help
显示命名的分组情况 2.help 命令名称
查看命令的具体使用包括命令的作用和用法。
举例help list 二、general 组普通命令组 命令 描述 格式 三、命名空间namespace
命名空间是HBase中的一个逻辑概念用于对表进行逻辑分组类似于关系型数据库中的数据库概念。
1.创建命名空间
create_namespace 命名空间名称
2.列举命名空间
list_namespace
3.获取命名空间描述
describe_namespace 命名空间名称
4.查看命名空间下的所有表
list_namespace_tables 命名空间名称
5.删除命名空间
drop_namespace 命名空间名称 四、DDL组(与表相关的命令)
1. 创建表create
在创建一个表的时候列族必须作为模式定义的一部分预先给出而列族是支持动态扩展的也就是列族成员可以随后按需加入既创建表时只需要指定列族名称不需要指定列名。 语法1create 表名, {NAME 列簇名1}, {NAME 列簇名2}, {NAME 列簇名3} 注意指定命名空间下创建表(命名空间类似于数据库相当于指定某数据库下创建表)create 命名空间表名 列簇名 语法2create 表名, 列族名1, 列簇名2, 列簇名3 (此种方式是上面的简写方式但使用上面方式可以为列族指定更多的属性如VERSIONS、TTL、BLOCKCACHE、CONFIGURATION等属性,就是下面的语法3) 语法3 create 表名, {NAME 列簇名1, VERSIONS 版本号, TTL 过期时间, BLOCKCACHE true} 语法1示例 create tbl_user, info, detail 语法3示例 create t1, {NAME f1, VERSIONS 1, TTL 2592000, BLOCKCACHE true}{NAME f2,..} 2.修改(添加、删除)表结构Schema alter 2.1添加一个列簇 语法 alter 表名, 列族名 示例 alter table1, cf2 2.2删除一个列簇 语法 alter 表名, {NAME 列族名, METHOD delete} 示例 alter tbl_user, {NAME address, METHOD delete} 2.3修改列簇的属性 (可以修改列簇的VERSIONS、IN_MEMORY ) 语法1修改表table1的列簇cf1的版本为5 alter table1, NAME cf1, VERSIONS 5 语法2修改多个列簇修改cf2为内存cf3版本号为5 alter table1, cf1, {NAME cf2, IN_MEMORY true}, {NAME cf3, VERSIONS 5} 也可以修改table-scope属性例如MAX_FILESIZE, READONLY,MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH等。 例如修改region的最大大小为128MB alter t1, MAX_FILESIZE 134217728 3.表的基本操作
3.1获取表的描述
语法describe 表名
3.2列举所有表所有的命名空间下所有的表
语法list
3.3查看表是否存在
语法exists
3.4启用表和禁用表
通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled来检查表是否被禁用
1启用表enable 表名
2查看表是否被启用is_enabled 表名
3禁用表disable 表名
4查看表是否被禁用is_disabled 表名
3.4.1禁用满足正则表达式的所有表disable_all .匹配除“\n”和\r之外的任何单个字符 *匹配前面的子表达式任意次 # 匹配以t开头的表名 disable_all t.* # 匹配指定命名空间ns下的以t开头的所有表 disable_all ns:t.* # 匹配ns命名空间下的所有表 disable_all ns:.* 3.4.2启用满足正则表达式的所有表enable_all enable_all t.*
enable_all ns:t.* enable_all ns:.* 3.5 修改表可以存储多个版本
语法alter 表名,NAME列簇名,VERSIONS版本数量 3.6 删除表
需要先禁用表然后再删除表启用的表是不允许删除的
语法1删除单张表 disable 表名 drop 表名
语法2删除满足正则表达式的所有表
drop_all t.* //删除t开头的所有表默认命名空间下 drop_all ns:t.* //删除ns命名空间下t开头的所有表 drop_all ns:.* //删除ns命名空间下的所有表 3.7 获取某个表赋值给一个变量get_table
通过 var get_table ‘表名’ 赋值给一个变量对象然后对象.来调用就像面向对象编程一样通过对象.方法来调用这种方式在操作某个表时就不必每次列举表名了。 3.8 获取rowKey所在的区 locate_region
语法locate_region 表名, 行键 3.9 显示hbase所支持的所有过滤器show_filters
过滤器用于get和scan命令中作为筛选数据的条件类型关系型数据库中的where的作用 五、DML数据操作组
1.插入或者修改数据put 语法1:当列族中只有一个列时列族名:列名使用列族名put 表名, 行键, 列族名, 列值 语法2put 表名, 行键, 列族名:列名, 列值 # 示例 # 创建表 create tal_users, info, detail, address # 插入第一行数据 put tal_users, rk1001, info:id, 1 put tal_users, rk1001, info:name, 张三 put tal_users, rk1001, info:age, 28 put tal_users, rk1001, detail:birthday, 1990-06-26 put tal_users, rk1001, detail:email, abc163.com put tal_users, rk1001, detail:create_time, 2019-03-04 14:26:10 put tal_users, rk1001, address, 上海市 #插入第二行数据 put tal_users, rk1002, info:id, 2 put tal_users, rk1002, info:name, 李四 put tal_users, rk1002, info:age, 27 put tal_users, rk1002, detail:birthday, 1990-06-27 put tal_users, rk1002, detail:email, xxxgmail.com put tal_users, rk1002, detail:create_time, 2019-03-05 14:26:10 put tal_users, rk1002, address, 北京市 #插入第三行数据 put tal_users, rk1003, info:id, 3 put tal_users, rk1003, info:name, 王五 put tal_users, rk1003, info:age, 26 put tal_users, rk1003, detail:birthday, 1990-06-28 put tal_users, rk1003, detail:email, xyzqq.com put tal_users, rk1003, detail:create_time, 2019-03-06 14:26:10 put tal_users, rk1003, address, 杭州市 将内存中的数据刷新到表中 flush tal_users 这样每个列簇下都有数据 注意每次flush都会将内存中的数据书刷新到表中但是会新生成一个小文件来存放此数据因此我们可以使用major_compact 表名来合并这些小文件 2.全表扫描scan
效果类似于sql语句中select * from xxx
2.2查询完整数据 语法1:scan 表名 以1中插入的数据表为例 scan tal_users 注意Table中的所有行都是按照row key的字典排序的 2.3 查询某个列簇数据 语法 scan 表名, {COLUMN列族名} 示例 scan tal_users,{COLUMNinfo} 2.4 查询某个列簇下的某个列数据 语法 scan 表名, {COLUMN列族名:列名} 示例 scan tal_users, {COLUMNinfo:age} 3.获取数据 语法1获取一行数据 get 表名, 行键 示例 get tal_users,rk1001 语法2获取一行数据中某个列簇的数据 get 表名,行键,列簇名 示例get tal_users,rk1001,detail 或get tal_users, rk1002,{COLUMN detail} 语法3获取一行数据中多个列簇的数据 get 表名,行键,[列簇名1,列簇名2】 示例 get tal_users,rk1001,[info,detail] 语法4获取某个单元格的数据 get 表名,行键,列簇名列名 示例get tal_users,rk1002,detail:birthday 语法5获取某个单元格多个版本的值默认是按照时间戳降序排序 get 表名, 行键, {COLUMN 列簇名, VERSIONS 版本数} 4.删除数据
4.1删除某个列簇中的某个列delete
语法delete 表名, 行键, 列族名:列名
4.2删除某行数据deleteall
语法deleteall 表名, 行键 5.清空表数据
语法truncate 表名 6.自增与计数器
6.1自增incr 语法 incr 表名, 行键, 列族:列名, 步长值 incr tal_users,rk1004,info:name,1 # 注意incr 是对不存在的行键操作如果行键已经存在会报错如果使用put修改了incr的值再使用incr也会报错 6.2计数器get_counter # 创建表点击量日、周、月 create counters, daily, weekly, monthly incr counters, 20240415, daily:hits, 1 incr counters, 20110101, daily:hits, 1 统计表有多少行(统计的是行键的个数) count 表名 获取数目 get_counter counters, 20110101, daily:hits 7.修饰词过滤
7.1 COLUMNS与列簇列名相关
语法scan 表名, {COLUMNS [ 列族名1:列名1, 列族名1:列名2, ...]}
示例scan tal_users,{COLUMNS [info:name,info:id]} 7.2TIMESTAMP 指定时间戳
语法scan 表名,{TIMERANGE[timestamp1, timestamp2]}
注意区间取得值为[ ,),右边的值取不到
7.3 VERSIONS版本号
默认情况下一个列只能存储一个数据后面如果修改数据就会将原来的覆盖掉可以通过指定VERSIONS使HBase一列能存储多个值。
示例 create tbl_test, columnFamily1 describe tbl_test # 修改列族版本号 alter tbl_test, { NAMEcolumnFamily1, VERSIONS3 } put tbl_test, rowKey1, columnFamily1:column1, value1 put tbl_test, rowKey1, columnFamily1:column1, value2 put tbl_test, rowKey1, columnFamily1:column1, value3 1默认返回最新的一条数据 get tbl_test,rowKey1,columnFamily1:column1 2返回2个 get tbl_test,rowKey1,{COLUMNcolumnFamily1:column1, VERSIONS2} 3返回3个 get tbl_test,rowKey1,{COLUMNcolumnFamily1:column1, VERSIONS3} 7.4 STARTROW
ROWKEY起始行。会先根据这个key定位到region再向后扫描
语法scan 表名, { STARTROW 行键名}
示例 scan tal_users, { STARTROW rk1003} 7.5 STOPROW
截止到STOPROW行之前的数据不包括STOPROW这行数据
语法scan 表名, { STOPROW 行键名}
示例
scan tal_users, { STOPROW rk1003} 将 STARTROW与STOPROW结合使用左闭右开
scan tal_users, { STARTROWrk1001,STOPROW rk1003} 7.6 LIMIT
语法1返回限制的行数从前往后
scan 表名, { LIMIT 行数}
语法2返回限制的行数从后往前
scan 表名,{LIMIT行数,REVERSEDtrue} 六、FILTER条件过滤器
1、ValueFilter 值过滤器 语法1binary 等于某个值 scan 表名, FILTERValueFilter(,binary:列值) 示例 scan tal_users,FILTERValueFilter(,binary:26) 语法2substring包含某个值 scan 表名, FILTERValueFilter(,substring:列值) 示例 scan tal_users,FILTERValueFilter(,substring:2019) 啊 2、ColumnPrefixFilter 列名前缀过滤器 语法 scan 表名, FILTERColumnPrefixFilter(列名前缀) 示例 scan tal_users,FILTERColumnPrefixFilter(a) 七、与region有关的命令
1.查看表的所有region
list_regions 表名 2.强制将表切分出来一个region
split 表名,行键 示例split tal_users,rk1003
切分前 切分后
注意此时切分后的形成的两个region并不是在同一台机器上而是一个region在node1一个在node2,这是因为底层中Hmaster对RegionServer上的region作负载均衡才导致这个现象 3. 查看某一行在哪个region中
语法: locate_region 表名,行键 4.查看region中的某列簇数据
语法hbase hfile -p -f hdfs中存放列簇数据的目录
注意不是在客户端使用此命令 5.获取region的分割点清除数据快照