Hbase简介
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式.
安装Hbase的准备工作
Hbase的安装
- 将安装包解压并放置到/opt目录下
- 配置环境变量
vi /etc/profile
输入以下内容
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
并输入source /etc/profile
配置文件生效
Hbase的配置(完全分布式)
- 进入cd /opt/hbase/conf/目录下更改hbase-site.xml文件
<configuration>
<!-- HRegionServer的数据存储目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://zcy01:9000/hbase</value>
</property>
<!-- 配置hbase为分布式值改为true-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 配置Hmaster的地址,这里选择主机器hadoop110-->
<property>
<name>hbase.master</name>
<value>zcy01:6000</value>
</property>
<!-- 配置zookeeper集群-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>zcy01,zcy02,zcy03</value>
</property>
</configuration>
- 配置hbase-env.sh文件:
vi hbase-env.sh
添加相关环境变量:
export JAVA_HOME=/opt/jdk
export HBASE_HOME=/opt/hbase
export HADOOP_HOME=/opt/hadoop
#表示内置zookeeper不开启(手动配置了zookeeper集群)
export HBASE_MANAGES_ZK=false
- 配置regionservers文件
vi regionservers
#该文件列出了所有HRegionServer节点
zcy01
zcy02
zcy03
- 将其他机器上同样配置这些文件
Hbase的启动和验证
- 在主机上启动hdfs
start-dfs.sh
,然后启动所有机器上的Zookeeper./zkServer.sh start
最后在主机器启动HBasesh start-hbase.sh
- 验证,通过
hbase shell
命令进入,然后使用命令list查看所有表,初始状态应该是0
[root@zcy01 bin]# hbase shell
2020-06-28 20:38:40,188 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
2020-06-28 20:38:41,100 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.0-cdh5.14.2, rUnknown, Tue Mar 27 13:31:54 PDT 2018
hbase(main):001:0> list
TABLE
0 row(s) in 0.1600 seconds
=> []
hbase(main):002:0>