一、常见命令操作
- 开启hbase:hbase shell
- 创建名空间:create_namespace 'mydemo'
- 查看名空间:list_namespace
- 创建表:create 'mydemo:userinfos','base','other'
注:名空间:表名 , 列族,列族- 查看名空间下的表:list_namespace_tables 'mydemo'
- 删除表:①、disable 'mydemo:userinfos' ②、drop 'mydemo:userinfos'
- 上传数据:put 'mydemo:userinfos','1','base:username','zhangsan'
注:名空间:表名 , rowkey , 列族:修饰符 , 空格里的值- 查看表:
get 'mydemo:userinfos','1'
scan 'mydemo:userinfos'- 查看有多少行数据
hbase org.apache.hadoop.hbase.mapreduce.RowCounter "表名"- 过滤
①scan 'mydemo:userinfos',filter=>"RowFilter(=,'substring:1')"
substring 是包含的意思
②scan 'mydemo:userinfos',FILTER=>"PrefixFilter('1')"
首个行值为1
③scan 'mydemo:userinfos',FILTER=>"FamilyFilter(=,'substring:r')"
列里包含r
④scan 'mydemo:userinfos',FILTER=>"ValueFilter(=,'substring:zhao')"
值里包含zhao
⑤scan 'mydemo:userinfos',FILTER=>
"SingleColumnValueFilter('base','username',=,'substring:zhang')"
指定base列族里的username列的值为zhang
⑥scan 'mydemo:userinfos',FILTER=>
"SingleColumnValueFilter('base','username',=,'binaryprefix:zhang')"
首字母为zhang的
⑦scan 'mydemo:userinfos',FILTER=>
"SingleColumnValueFilter('base','username',=,'regexstring:.+zhang.*')"
中间字符有zhang的
⑧scan 'mydemo:userinfos',LIMIT=>1
查询行值为1的
2.hive映射hbase
-- 创建数据库
create database myhbase
-- 创建表
create external table myhbase.hbase_userinfos(
id string,
name string,
bir string,
likes string
)
--row format serde 'org.apache.hadoop.hive.hbase.HBaseSerDe'
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties(
"hbase.columns.mapping"=":key,base:username,base:birthday,other:likes"
)
tblproperties(
"hbase.table.name"="mydemo:userinfos"
)
3.TSV文件上传 hbase(简单文件)
1.创建csv文件上传至hdfs hdfs dfs -put /opt/data/hbasedata.csv /opt/data4
2.hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
> -Dimporttsv.separator=, \
> -Dimporttsv.columns="HBASE_ROW_KEY,base:username,base:birthday,other:likes" \
> mydemo:userinfos file:///opt/data/hbasedata.csv