hbase搭建及指令

本文详细介绍了如何在已有的Hadoop和Zookeeper环境中搭建HBase,包括设置环境变量,配置文件如hbase-env.sh和hbase-site.xml,以及如何配置分布式ZooKeeper、HDFS存储和高可用性。还提供了启动/停止HBase服务的命令和基本操作指南,如创建命名空间、表、列族等。
摘要由CSDN通过智能技术生成

本hbase搭建前提已经搭建好hadoop和zookeeper,如果没有搭建好可以看我主页相应搭建或配置文章


 环境变量

sudo vim /etc/profile.d/my_env.sh
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile.d/my_env.sh

配置 

cd $HBASE_HOME/conf
vim hbase-env.sh
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
#是否使用hbase自身的Zookeeper,默认为true,我们选择自己的分布式Zookeeper,所以为false
export HBASE_MANAGES_ZK=false
vim hbase-site.xml
<!--表示我们要部署一个分布式的hbase-->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
<!--表示我们要使用自己分布式的Zookeeper,三台zk的地址分别为hadoop102...端口号默认为2181可以省略不填-->
 <property>
 <name>hbase.zookeeper.quorum</name>
 <value>hadoop102,hadoop103,hadoop104</value>
 <description>The directory shared by RegionServers.</description>
 </property>

<!--zookeeper的配置,一定要修改zookeeper的数据存储地址(默认为tmp目录下,会有丢失风险),我已经在zk改过这里就注释了-->
<!-- <property>-->
<!-- <name>hbase.zookeeper.property.dataDir</name>-->
<!-- <value>/export/zookeeper</value>-->
<!-- <description> 记得修改 ZK 的配置文件 -->
<!-- ZK 的信息不能保存到临时文件夹
<!--</description>-->
<!-- </property>-->

<!--我们要将数据存放在hdfs上,故需要告诉hbase要将数据放到哪-->
 <property>
 <name>hbase.rootdir</name>
 <value>hdfs://hadoop102:8020/hbase</value>
 <description>The directory shared by RegionServers.</description>
 </property>
</configuration>

 #修改regionservers,他相当于hadoop里的workers,告诉hbase这个分布式架构有哪些节点

vim regionservers
hadoop102
hadoop103
hadoop104

完成后分发到其它节点 


常见报错

#hbase和hadoop都有log4j的jar包,会有冲突的风险,我们选择将hbase里的jar包删除(改名)

cd $HBASE_HOME/lib/client-facing-thirdparty
mv slf4j-reload4j-1.7.33.jar slf4j-reload4j-1.7.33.jar.bak

完成后分发到其它节点


启停命令

#单点启动

bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

#群起

bin/start-hbase.sh

#对应的停止服务

bin/stop-hbase.sh

启动后可以到master对应的host的16010端口进入hbase的web端

我这里是hadoop102放置master,故为hadoop102:16010


高可用

cd $HBASE_HOME/conf
touch backup-masters

#在文件内配置你选择的备用master,这里我选择的是hadoop103,在文件内就配置hadoop103 

hadoop103

分发该文件

启动hbase后可以看到,启动完相应的master和regionserver后会再启动一个master

start-hbase.sh

使用jps查看备用节点,也能看到一个HMaster进程

在hadoop102:16010中的Backup Masters栏下能看见相应备用master信息

在hadoop103:16010也可以打开,但是不显示hbase的分布式信息

可以在主master上jps查看相应进程号,将其kill掉,这时候去hadoop103:16010上就能看到全部的regionserver信息了


使用(只提供简单的语句)

#进入base客户端

hbase shell

#帮助

help

#查看某个命令介绍

help '你要查看的命令'

eg:help 'list_namespace'

#查看命名空间(命名空间可以理解为mysql里的database)

list_namespace

#创建命名空间

create_namespace '命名空间的名字'

#查看表格

list

#创建表格

create '命名空间:表名',{NAME => '列族名',VERSIONS => 数字(维护几个版本)}

#查看表格详细信息

describe '命名空间:表名'

#修改版本号

alter '表名',NAME => '列族名',VERSIONS => 修改后的值

#增加列族

alter '表名',NAME => '要增加的列族名',VERSIONS => 版本号

#删除列族

#方法一
alter '命名空间:表名',NAME => '要删除的列族',METHOD => 'delete'
#方法二
alter '命名空间:表名','delete' => 'f1'

#删除表

disable '命名空间:表名'
drop '命名空间:表名'

#添加/修改数据

put '命名空间:表名','行号','列族名:列名','数据'


#如果你put相同命名空间里的相同表的相同行号的相同列族名的相同列名不同数据
#那么原先的数据将会被覆盖掉,这就起到了修改的作用
#原理是hbase默认填写了一个时间戳

#查看数据

#查看一行
get '命名空间:表名','行号'

#查看一行里的某一列
get '命名空间:表名','行号',{COLUMN => '列族名:列名'}

#查看多个版本的数据,如果查看的版本数超过维护的版本数只能看到最近对应维护的版本数
get '命名空间:表名','行号',{COLUMN => '列族名:列名',VERSIONS => 数字(查看几个版本)}


#查看整张表数据
scan '命名空间:表名'

#查看从某一行到某一行数据(不包含结束行号的那一行数据,左闭右开)
scan '命名空间:表名',{STARTROW => '起始行号',STOPROW => '结束行号'}

 #删除数据

#默认删除最新版本的数据
delete '命名空间:表名','行号','列族名:列名'

#删除所有版本
deleteall '命名空间:表名','行号','列族名:列名'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值