HBase文章目录
- 1. HBase 安装
- 1.1 HBase下载
- 1.2 HBase安装
- 1.3 HBase 初始配置
- 2. 配置高可用并且群起集群
- 2.1 HBase高可用
- 2.2 群起集群
- 2.3 进入HBase客户端
- 3. DDL&DML操作
- 3.1 DDL操作
- 3.2 DML操作
1. HBase 安装
1.1 HBase下载
HBase下载官方网站直达
- 选择自己需要的版本,建议使用稳定版的
1.2 HBase安装
- 安装步骤
- 打开远程登录窗口,进入到将安装包存放的路径,直接拉拽到窗口,会自动传输
- 解压到相应路径
1.3 HBase 初始配置
- Ⅰ 进入到环境变量配置文件
vim /etc/profile.d/my_env.sh
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase-2.4.11
export PATH=$PATH:$HBASE_HOME/bin
- 进入到HBase的conf目录
- Ⅱ 对hbase-env.sh文件做如下修改
- Ⅲ 对hbase-site.xml修改如下
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
<description>The directory shared by RegionServers. </description>
</property>
<!-- <property>-->
<!-- <name>hbase.zookeeper.property.dataDir</name>-->
<!-- <value>/export/zookeeper</value>-->
<!-- <description> 记得修改 ZK 的配置文件 -->
<!-- ZK 的信息不能保存到临时文件夹-->
<!-- </description>-->
<!-- </property>-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:8020/hbase</value>
<description>The directory shared by RegionServers. </description>
</property>
- Ⅳ 对regionservers文件做出修改【不要有任何空格】
hadoop102
hadoop103
hadoop104
2. 配置高可用并且群起集群
2.1 HBase高可用
- 高可用实现的就是在master挂掉的时候,可以有一个备用的master作为管理者来管理集群,HBase是通过zookeeper来管理Region Server的
实现步骤:
Ⅰ在 conf 目录下创建 backup-masters 文件
touch conf/backup-masters
Ⅱ在 backup-masters 文件中配置高可用 HMaster 节点
echo hadoop103 > conf/backup-masters
Ⅲ完成所有配置将HBase分发到其他的机器
xsync hbase-2.4.11
2.2 群起集群
操作步骤:
Ⅰ启动Hadoop集群
- 有脚本的可以使用脚本,没有的参考以下命令
//注意启动的位置按照自己配置的进行启动
sbin/start-dfs.sh
sbin/start-yarn.sh
Ⅱ启动zookeeper集群
- 三台机器分别进入到zookeeper所在目录执行
bin/zkServer.sh start
Ⅲ 启动HBase
- 这是群起命令
bin/start-hbase.sh
Ⅳ 到浏览器输入网址查看可视化界面
http://hadoop102:16010
大概长这样
2.3 进入HBase客户端
进入命令
输入help,查看帮助文档,对于HBase常用命令为namespace的操作,以及DDL和DML操作,增删改查命令如下:
3. DDL&DML操作
3.1 DDL操作
在此之前先创建一个namespace,或者也可以使用默认的namespace
//创建操作
create_namespace 'bigdata'
//查看操作
list_namespace
- 创建表
- 创建表时只需要指定所在namespace,列族,以及维护版本信息即可
create 'bigdata:person', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}
-
查看表
- 查看表有两个命令:list 和 describe
- list:查看所有的表名: list
- describe:查看一个表的详情: describe ‘person’
- 查看表有两个命令:list 和 describe
-
修改表
- 表名创建时写的所有和列族相关的信息,都可以后续通过 alter 修改,包括增加删除列族。
- 增加列族和修改信息都使用覆盖的方法
- alter ‘person’, {NAME => ‘add’, VERSIONS => 3}
- 删除信息使用特殊的语法
- alter ‘person’, ‘delete’ => ‘add’
- 增加列族和修改信息都使用覆盖的方法
- 表名创建时写的所有和列族相关的信息,都可以后续通过 alter 修改,包括增加删除列族。
-
删除表
- shell 中删除表格,需要先将表格状态设置为不可用。
disable 'person'
drop 'person'
3.2 DML操作
写入数据
- 在 HBase 中如果想要写入数据,只能添加结构中最底层的 cell
- 入相同 rowKey,相同列的数据,会写入多个版本进行覆盖
put 'bigdata:person','1001','info:name','lisi'
put 'bigdata:person','1001','info:age','18'
cell回顾:
- 读取数据
- 读取数据的方法有两个:get 和 scan
- get 最大范围是一行数据,也可以进行列的过滤,读取数据的结果为多行 cell。
- 读取数据的方法有两个:get 和 scan
get 'bigdata:person','1001'
get 'bigdata:person','1001' , {COLUMN => 'info:name'}
-
scan 是扫描数据,能够读取多行数据:推荐使用 startRow 和stopRow 来控制读取的数据,默认范围左闭右开
- scan ‘bigdata:person’,{STARTROW => ‘1001’,STOPROW => ‘1002’}
-
删除数据
- delete 表示删除一个版本的数据,即为 1 个 cell,不填写版本默认删除最新的一个版本。
- deleteall 表示删除所有版本的数据,即为当前行当前列的多个 cell。
delete 'bigdata:student','1001','info:name'
deleteall 'bigdata:student','1001','info:name'