小卜java

Hadoop系列-HBase数据库

2022-04-01  本文已影响0人  汤太咸啊

前面写了Hadoop的Hive,咱们再来看看另一个HBase数据库,这个是NoSQL数据库,非关系数据库,下面有和普通数据库的比较部分。

一、HBase数据库基础知识

1.HBase是纵表,存储形式如下

Id Column Value
1 Name zhangsan
1 Birthday 1987-01-01
2 Name lisi
2 Birthday 1988-01-01

2.相比传统关系数据库,方便扩展,节省空间,如果需要新增字段,Gender,只需要再增加一行或者多行数据,不需要为每一个Id的人都增加该字段,而传统数据库必须为所有数据都增加该字段。具体如下,只需要给Id为1的人增加一条数据即可。

Id Column Value
1 Name zhangsan
1 Birthday 1987-01-01
1 Gender
2 Name lisi
2 Birthday 1988-01-01

3.由于在大数据集群中,存储比较便宜,纵表把很多不同的信息都存储到同一张表中,例如用户的班级信息,教师是哪位,都可以同时存储在同一张表中,每一次查询都可以把用户的所有信息都查询出来,效率很高。

4.HBase不支持SQL,只允许增删改查,表上没有索引,只有行键可以标识记录,没有其他二级索引,没有约束检查字段是否有效,没有办法说明该字段是否允许为null,没有办法指定外键等等。

5.总结下HBase和传统数据库的区别:

传统数据库 HBase
按照行和列存储 按照列存储
支持SQL NoSQL
支持复杂查询,group by join等操作 只支持增删改查
存储规范化,最大程度减少冗余并确保更新简单,例如增加字段,每条数据都增加该字段 最小化磁盘查找,把所有数据集中到一个表中,取消存储标准化,增加字段,不必处理所有数据,只针对需要增加的Id,增加一行数据即可。
兼容ACID 只在行级别兼容ACID,跨行或者多个表无法保证数据的完整性

二、安装HBase

到阿帕奇官网下载https://hbase.apache.org/downloads.html

由于我的是hadoop,不兼容最新版的hbase,因此下载了2021年的hbase-1.7.1-bin.tar.gz

#将下载好的文件cp到docker中
docker cp Downloads/hbase-1.7.1-bin.tar.gz master:/usr/local
#解压
tar -xvzf hbase-1.7.1-bin.tar.gz
#编辑配置文件hbase-site.xml
cd /usr/local/hbase-1.7.1/conf
vi hbase-site.xml
<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>
#编辑配置文件hbase-env.sh
vi hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
#配置hbase环境变量
vi ~/.bash_profile
export HBASE_HOME=/usr/local/hbase-1.7.1
PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$JAVA_HOME/bin:$HBASE_HOME/bin
source ~/.bash_profile
#启动hbase
./start-hbase.sh

最后通过执行jps查看到HQuorumPeer,HRegionServer表明启动成功,下一篇咱们看看HBase的基础命令如何

jps
138 NameNode
432 SecondaryNameNode
5512 HQuorumPeer
265 DataNode
708 NodeManager
5718 HRegionServer
5990 Jps
606 ResourceManager

谢各位的阅读,谢谢您动动手指点赞,万分感谢各位。另外以下是我之前写过的文章,感兴趣的可以点进去继续阅读。

历史文章

Hadoop系列-入门安装
Hadoop系列-HDFS命令
Hadoop系列-Hive安装
Hadoop系列-Hive数据库常见SQL命令
Hadoop系列-HBase数据库
Hadoop系列-HBase数据库(二)
Hadoop系列-HBase数据库JAVA篇
Hadoop系列-Spark安装以及HelloWorld
JAVA面试汇总(五)数据库(一)
JAVA面试汇总(五)数据库(二)
JAVA面试汇总(五)数据库(三)
JAVA面试汇总(四)JVM(一)
JAVA面试汇总(四)JVM(二)
JAVA面试汇总(四)JVM(三)
JAVA面试汇总(三)集合(一)
JAVA面试汇总(三)集合(二)
JAVA面试汇总(三)集合(三)
JAVA面试汇总(三)集合(四)
JAVA面试汇总(二)多线程(一)
JAVA面试汇总(二)多线程(二)
JAVA面试汇总(二)多线程(三)
JAVA面试汇总(二)多线程(四)
JAVA面试汇总(二)多线程(五)
JAVA面试汇总(二)多线程(六)
JAVA面试汇总(二)多线程(七)
JAVA面试汇总(一)Java基础知识

上一篇 下一篇

猜你喜欢

热点阅读