Hbase 笔记

Hbase 笔记

主要是介绍 Hbase 相关的常用操作,方便以后查阅!!!

一、简介

1.1版本信息

环境

内容
版本 hbase-1.4.9
hadoop版本 hadoop2.6.5
安装目录 /data/hbase-1.4.9
zookeeper 使用hbase自带的zk

1.2访问

在10.111.25.140中

hbase shell
注意:hbase shell中用"Ctrl+Backspace"进行删除

1.3maven

java 复制代码
<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>1.4.9</version>
</dependency>

1.4进入Hbase

打开Hbase Shell:

powershell 复制代码
#打开Hbase Shell
hbase shell

#获取帮助
help

#获取命令的详细信息
help 'status'

#查看服务器状态
status

#查看版本信息
version

二、表操作

2.1创建表

命令格式1:create '表名','列簇名1','列簇名2'...

命名格式2:create '表名',{NAME=>'列簇名1'},{NAME=>'列簇名2'}...

powershell 复制代码
#创建一张名为Student的表,包含基本信息(baseinfo)、学校信息(schoolinfo)两个列簇
create 'student','haseinfo','schoolinfo'

2.2删除表

powershell 复制代码
#删除表前需要先禁用表
disable 'student'
#删除表
drop 'student'

2.3修改表名

powershell 复制代码
#命令格式:
snapshot '表名','镜像名'
clone_snapshot '镜像名','新表名'
delect_snapshot '镜像名'

snapshot 'student','temp'
clone_snapshot 'temp','stu'
delect_snapshot 'temp'

注:可以将原表删除,删除命令参照2.2删除表

2.4查看所有的表

powershell 复制代码
list

2.5查看表的基本信息

powershell 复制代码
#命令格式:desc '表名'
desc 'Student'

2.6检查表是否存在

powershell 复制代码
exists 'student'

2.7表的启用和禁用

powershell 复制代码
#禁用表
disable 'student'
#检查表是否被禁用
is_disabled 'student'
#启用表
enable 'student'
#检查表是否被启用
is_enabled 'student'

三、增删改

3.1添加列簇

命令格式:alter '表名','列簇名'

powershell 复制代码
alter 'student','teacherinfo'

3.2删除列簇

命令格式:alter '表名',{NAME=>'列簇名',METHOD='delete'}

powershell 复制代码
alter 'student', {NAME => 'teacherinfo', METHOD => 'delete'}

3.3更改列簇存储版本的限制

默认情况下列族只存储一个版本的数据,如果需要存储多个版本的数据,则需要修改列族的属性。修改后可通过 desc 命令查看。

powershell 复制代码
alter 'student',{NAME=>'baseinfo',VERSIONS=>3}

3.4插入数据

命令格式:put '表名','行键','列簇名:列名','值'[,时间戳]

powershell 复制代码
put 'student', '1','baseinfo:name','tom'
put 'student', '1','baseinfo:birthday','1990-01-09'
put 'student', '1','baseinfo:age','29'
put 'student', '1','schoolinfo:name','Havard'
put 'student', '1','schoolinfo:localtion','Boston'

put 'student', '2','baseinfo:name','jack'
put 'student', '2','baseinfo:birthday','1998-08-22'
put 'student', '2','baseinfo:age','21'
put 'student', '2','schoolinfo:name','yale'
put 'student', '2','schoolinfo:localtion','New Haven'

put 'student', '3','baseinfo:name','maike'
put 'student', '3','baseinfo:birthday','1995-01-22'
put 'student', '3','baseinfo:age','24'
put 'student', '3','schoolinfo:name','yale'
put 'student', '3','schoolinfo:localtion','New Haven'

put 'student', '4','baseinfo:name','maike-jack'

3.5获取指定行、指定行中的列族、列的信息

powershell 复制代码
# 获取指定行中所有列的数据信息
get 'student','3'
# 获取指定行中指定列族下所有列的数据信息
get 'student','3','baseInfo'
# 获取指定行中指定列的数据信息
get 'student','3','baseinfo:name'

3.6删除指定行、指定行中的列

powershell 复制代码
# 删除指定行
delete 'student','3'
# 删除指定行中指定列的数据
delete 'student','3','baseinfo:name'

四、查询

hbase 中访问数据有两种基本的方式:

  • 按指定 rowkey 获取数据:get 方法;
  • 按指定条件获取数据:scan 方法。

scan 可以设置 begin 和 end 参数来访问一个范围内所有的数据。get 本质上就是 begin 和 end 相等的一种特殊的 scan。

4.1get查询

powershell 复制代码
# 获取指定行中所有列的数据信息
get 'student','3'
# 获取指定行中指定列族下所有列的数据信息
get 'student','3','baseinfo'
# 获取指定行中指定列的数据信息
get 'student','3','baseinfo:name'

4.2scan查询

powershell 复制代码
#查询整表数据
scan 'student'
#查询指定列簇的数据
scan 'student', {COLUMN=>'baseinfo'}
# 查询指定列的数据
scan 'student', {COLUMNS=> 'baseinfo:birthday'}
# 查看指定列两个版本的数据(3.3中我们设置了3个版本)
scan 'student', {COLUMNS=> 'baseinfo:birthday',VERSIONS=>2}
# 查看前3条数据
scan 'student',{LIMIT=>3}

五、用户权限

powershell 复制代码
user_permission ['表名'..]
grant '用户名' ,'RWXCA'

设置用户权限需要配置hbase-site.xml

xml 复制代码
<property>
 <name>hbase.security.authorization</name>
 <value>true</value>
</property>
<property>
 <name>hbase.coprocessor.master.classes</name>
 <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
 <name>hbase.coprocessor.region.classes</name>
 <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
 <name>hbase.superuser</name>
 <value>hadoop</value>
</property>

六、批量导入文件

6.1建表:表名为emp_basic

powershell 复制代码
create 'emp_basic',{NAME=>'emp'},{NAME=>'time'}

6.2上传文件到hdfs

powershell 复制代码
hdfs dfs -put emp_basic.csv /test

6.3将文档数据导入HBase

powershell 复制代码
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns="HBASE_ROW_KEY,emp:name,emp:job_title,emp:company,time:sDate,time:eDate" "emp_basic" /test/emp_basic.csv

七、命令空间

7.1创建命名空间

powershell 复制代码
create_namespace 'events_db'

7.2查看命名空间

powershell 复制代码
list_namespace

7.3命名空间下建表

powershell 复制代码
create 'events_db:user_friend','uf'

7.4查看命名空间下的表

powershell 复制代码
list_namespace_tables 'events_db'

关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。

相关推荐
经典199218 分钟前
mysql 锁介绍
数据库·mysql
不太可爱的大白18 分钟前
Mysql分片:一致性哈希算法
数据库·mysql·算法·哈希算法
~ 小团子20 分钟前
每日一SQL 【游戏玩法分析 IV】
数据库·sql·游戏
零叹24 分钟前
MySQL——常用程序and主从复制
数据库·mysql
胚芽鞘6814 小时前
关于java项目中maven的理解
java·数据库·maven
Edingbrugh.南空6 小时前
Flink自定义函数
大数据·flink
gaosushexiangji7 小时前
利用sCMOS科学相机测量激光散射强度
大数据·人工智能·数码相机·计算机视觉
sun0077008 小时前
mysql索引底层原理
数据库·mysql
无级程序员10 小时前
大数据平台之ranger与ldap集成,同步用户和组
大数据·hadoop
workflower10 小时前
MDSE和敏捷开发相互矛盾之处:方法论本质的冲突
数据库·软件工程·敏捷流程·极限编程