HBase环境配置


HBase中有三个主要组件:1.客户端库,2.一台服务器,3.多台region服务器.
HBase可以动态增加或移除region服务器,以适应不断变化的负载.
主服务器主要负责利用Apache ZooKeeper为region服务器分配region.
重点: ZooKeeper是一个关键组成部分,没有它HBase就无法运作.

事前准备

HBase的配置需要JDK,另外HDFS的配置方法可以参考Hadoop单机模式与伪分布式(CentOS7)

首先,下载HBase

解压下载的tar包

tar xzf hbase-2.2.2-bin.tar.gz -C /TO/SOME-PATH/YOU-WANT

在这里插入图片描述
创建一个符号链接,方便访问,或多版本存在的情况下进行指定.

ln -s hbase-2.2.2 hbase

在这里插入图片描述
注:至于HBase的配置,各种资料,各种版本,各不相同,所以在这里说明一下,同配置Hadoop一样,这类软件的包里(一般是doc或者etc等目录下)一般都会有index.html文件,可以用浏览器打开,里面都是官方的文档,网上版本再花,官方的总该最权威~
如果懒得找那就直接点这里吧官方配置页面

配置环境变量,添加如下内容

vim ~/.bash_profile
....
export HBASE_HOME=/opt/tools/hbase
PATH=$PATH:$HBASE_HOME/bin
export PATH
# 最后别忘了重读配置
source ~/.bash_profile

本地模式

打开hbase-site.xml,并配置如下内容:

·hbase.rootdir为RegionServer的共享目录,是用来持久化HBase的.
·默认为file:///tmp/hbase-${user.name}/hbase
    有些文件系统启动时会清空/tmp文件夹,所以如果不修改,有被清空的风险,这里还是强烈推荐修改,
    毕竟是用来持久化的,目录配置好以后启动时会自动创建,无需提前mkdir.
.hbase.zookeeper.property.dataDir:
    这个属性其实是和zookeeper的zoo.cfg文件中dataDir属性同样的效果,是zookeeper的数据目录,
    存储快照信息等,虽然不配置这个属性仍旧可以在本地模式正常运行hbase.这里本地模式对这个属性不做
    过多讨论,下面伪分布式再进一步说明.
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///home/hadoop/hbase</value>
    </property>
    <property>
	    <!-- zookeeper数据目录,用来存放快照信息 -->
    	<name>hbase.zookeeper.property.dataDir</name>
    	<value>/home/hadoop/zookeeper</value>
    </property>
</configuration>
启动HBase服务
/opt/tools/hbase/bin/start-hbase.sh

jps命令查看是否有HMaster进程,至此本地模式配置ok,可以用hbase shell来启动hbase的命令行模式
在这里插入图片描述
在这里插入图片描述

help 可以查看总的帮助信息
此外,指定命令,可以查看具体命令帮助信息
e.g:help 'create'来查看建表命令的帮助信息
# hbase命令与hive不同,不指定结尾分号,直接执行.参数需要放在引号中.
# 创建表t1,指定字段为'f1','f2','f3'
create 't1', 'f1', 'f2', 'f3'
# 查看表新消息
list 't1'

在这里插入图片描述

# 插入数据
# put 'table', 'row', 'col', 'value'
put 't1', 'row1', 'f1', 'This is row 1 and field 1'
put 't1', 'row2', 'f2', 'This is row 2 and field 2'
put 't1', 'row3', 'f3', 'This is row 3 and field 3'
# 查看添加的数据
scan 't1'

在这里插入图片描述

# 如果只想查看某一行数据用get
get 't1', 'ro3'

在这里插入图片描述

# 删除数据
# 删除某行中某列的数据
# delete 'table', 'row', 'column'
delete 't1', 'row1', 'f1'

删除表之前需要先disable掉表,之后才能删除,如果disable后不想删除,又要再次使用的话请再使用enable命令来激活
在这里插入图片描述

# 禁用表
disable 't1'
# 启用表
enable 't1'
# 表删除(disable后)
drop 't1'

在这里插入图片描述

# 退出hbase shell
quit
# 停止HMaster服务
/opt/tools/hbase/bin/stop-hbase.sh
# 再次查看jps
jps

在这里插入图片描述

伪分布式模式

这里跟hdfs类似,因为涉及到分布式,所以为了保证其他节点也都能正确的获取JDK信息,需要在
hbase-env.sh中配置JAVA_HOME信息.
在这里插入图片描述
接下来修改hbase-site.xml

·这里的hdfs://localhost:9000是你本地的hadoop目录中的core-site.xml中fs.defaultFS所配置的信息
·而最后的hbase上面介绍过,是RegionServer目录,启动服务自动创建无需提前创建
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
</property>
<property>
    <!-- zookeeper数据目录,用来存放快照信息 -->
   	<name>hbase.zookeeper.property.dataDir</name>
   	<value>/home/hadoop/zookeeper</value>
</property>
·设置hbase的分布式属性设置为true,默认false为单机
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>

再来说说hbase.zookeeper.property.dataDir,上面本地模式简单介绍过,这次来看下伪分布式有什么不 同.
开篇我们说过,如果没有ZooKeeper,hbase就无法正常工作,而即使你的主机上没有自己安装zookeeper也是可以成功启动并使用hbase的,这是因为对于hbase来说它太重要了,所以hbase已经内置zookeeper(是否是完全功能这里不做讨论),在hbase/conf/hbase-env.sh文件中有有一段被注释掉的内容为:
#export HBASE_MANAGES_ZK=true,表示hbase是否启用内置的zookeeper来进行管理,这里我做了实验,修改为false,虽然启动hbase和hbase shell控制台都没有任何异样,但是执行hbase语句时,会卡住很久,然后报错:
在这里插入图片描述
再次jps查看,发现根本没有HMaster和HRegionServer等进程
在这里插入图片描述
所以,这里我们要么使用默认的配置,要么就在开启hbase之前先启动zookeeper(具体配置这里不做介绍),由于这里只做伪分布式,所以使用默认的zookeeper即可.

配置好以后可以启动hbase了
在这里插入图片描述
发现,上面配置的hbase.rootdir也,也被自动创建了
在这里插入图片描述
浏览器通过16010端口访问
在这里插入图片描述

发布了62 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Leonardy/article/details/103595292
今日推荐