hbase安装文档
Hbase 分布式部署
在bigdata1、bigdata2和bigdata3上部署分布式hbase
Hbase依赖hadoop和zookeeper,先要安装并启动hadoop和zookeeper
1 | start-all.sh |
- 解压
1 | tar -zxvf hbase-2.2.3-bin.tar.gz |
- 拷贝hadoop的core-site.xml 和hdfs-site.xml到hbase的conf目录下
1 | cp /opt/hadoop/etc/hadoop/hdfs-site.xml /opt/hbase/conf/ |
- 配置
hbase-env.sh
文件
1 | export JAVA_HOME=/opt/jdk |
- 配置
hbase-site.xml
1 | <configuration> |
- 配置
regionservers
1 | cat >> regionservers << EOF |
- 修改环境变量
1 | vi /etc/profile |
输入如下内容:
1 | export HBASE_HOME=/opt/hbase |
- 分发文件和环境变量
1 | scp -r /opt/hbase bigdata2:/opt |
- 启动Hbase
1 | start-hbase.sh |
- 进入Hbase shell
1 | hbase shell |
Hbase分布式部署完成
以下是Hbase shell的基本操作,有时候在其他题目会有数据要写入Hbase的情况。
第8章 HBase操作
启动:
1 | zkServer.sh start |
关闭:
1 | stop-hbase.sh |
进入Hbase shell:
1 | hbase shell |
Hbase查询中文信息,在滤波器中设置参数:
1 | FORMATTER=>'toString' |
HBase获取帮助:
显示所有支持的命令
1 | help |
常用的命令是数据操作命令
1 | Group name: dml |
查询某一个命令的具体用法
1 | help '命令' |
例如:help 'get'
8.3 HBase的基本操作
- 创建表
使用create命令创建表,具体语法如下:
1 | create 'table name','column family' |
“create”表示用于创建数据表的命令;“table name”表示数据表,创建表时必须指定;“column family”为列族名,创建表时同样也必须指定。
创建一个名称为phone、列族名为info的HBase表,具体如下:
1 | create 'phone','info' |
执行“list”命令,查看数据库中的数据表
1 | list |
- 插入操作
使用put命令插入或更新数据表中的数据
1 | put 'table name','row1','column family: column name', 'value' |
“put”表示用于插入或更新数据表中数据的命令;“table name”表示数据表;“row1”为行键(即Row Key);“column family:column name”为列族名和列名;“value”为插入列的值。
向数据表phone的info列族中插入数据
1 | put 'phone','p001','info:brand','Apple' |
- 使用scan命令扫描数据表中的数据
扫描数据表phone中的所有数据
1 | scan 'phone', {FORMATTER => 'toString'} |
- 使用describe命令查看数据表结构
查看数据表phone的表结构
1 | describe 'phone' |
- 使用put命令更新数据表指定字段的数据
在数据表phone中,将行键为p001、列为info:name的值iPhone 11 Pro更新为iPhone X
1 | put 'phone','p001','info:name','iPhone X' |
- 获取数据表中指定数据
使用get命令获取数据表phone中行键为p001的数据
1 | get 'phone','p001' |
获取info:brand列中的数据
1 | scan 'phone',{COLUMNS=>'info:brand'} |
查询两个rowkey:p002和p003之间的数据
1 | scan 'phone',{STARTROW=>'p002',STOPROW=>'p004'} |
查询brand列的数据,显示前4条
1 | scan 'phone',{COLUMNS=>'info:brand',STARTROW=>'p001',STOPROW=>'p005',FORMATTER=>'toString'} |
- 使用count命令统计数据表中数据的行数
统计数据表phone中数据的行数
1 | count 'phone' |
- 删除数据
(1)使用delete命令删除数据表中指定字段的数据
删除数据表phone中行键为p002、列为info:price的数据
1 | delete 'phone','p002','info:price' |
(2)如果想要删除数据表中一行的所有数据,则可以使用deleteall命令
删除数据表phone中行键为p001的所有数据
1 | deleteall 'phone','p001' |
(3)清空数据表phone中的所有数据
1 | truncate 'phone' |
(4)使用drop命令删除数据表
1 | disable 'phone' |