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'

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

相关推荐
会飞的老朱33 分钟前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
陌上丨5 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_56785 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw5 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30735 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
CRzkHbaXTmHw5 小时前
探索Flyback反激式开关电源的Matlab Simulink仿真之旅
大数据
数据知道5 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
七夜zippoe6 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥6 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿6 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能