概述
- HBase是Apache 组织开源的顶级项目 distributed, scalable, big data store 产品
- Apache HBase建立在HDFS之上的分布式、基于列存储的非关系型数据库;具有可靠、稳定、自动容错、多版本等特性
- HBase是Google BigTable的开源实现, 爬虫爬取的网页
- HBase运行亿级数据查询时,效率可达到秒级,毫秒级 在线处理 实时的处理
特点
- 大: 表可以有数十亿行、数百万列,适合大规模的结构化数据存储
- 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
- 结构稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
- 无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
- 数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
- 数据类型单一:HBase中的数据在底层存储时使用
byte[]
,没有类型。
NoSQL特点
1. 部分NoSQL In-Memory 内存型 (Redis)
2. Schema-Less NoSchema 弱格式 无格式
3. 杜绝表连接
4. 弱化事务,没有事务 (Redis有事务,MongoDB(4.x 没事务 4.x后有事务了)
5. 搭建集群方便
NoSQL分类
1. key value 类型 redis
2. document 类型 mongodb
3. column 类型 HBase Cassandra
4. 图 类型 neo4j (金融 知识图谱)
HBase的数据模型
列存储与行存储的区别
大多数的关系型数据库,都是行式存储系统;行式存储系统数据在物理介质(磁盘)存储组织方式逐行追加;擅长OLTP(联机事务处理)操作,指定字段查询时:
- 可能会造成一些不必要的IO浪费
- 通常情况下行式存储系统都是单机Server,规模严格硬件限制
- 查询延迟较高
HBase是一个列式存储系统,按照列簇将数据进行分布式存储;擅长OLAP(联机分析处理),大规模结构化数据存储;
HBase伪分布式集群环境搭建
- linux服务器 ip 主机名 主机映射 防火墙 selinux ssh免密 jdk
- hadoop安装
解压缩
6个配置文件
格式化
启动进程
- 安装zookeeper
解压缩
配置conf/zoo.cfg
创建临时目录 data ---> myid文件(集群)
启动服务
4.HBase的安装
- 上传安装包
- 解压缩安装
tar -zxf /root/hbase-1.2.4-bin.tar.gz -C /usr
- hdfs上创建 /hbase文件夹和hbase_home/data/tmp文件夹
- 配置hdfs-site.xml
[
root@HadoopNode00 hbase-1.2.4]# vi conf/hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://HadoopNode00:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>HadoopNode00</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
- 配置regionservers
[root@HadoopNode00 hbase-1.2.4]# vi conf/regionservers
HadoopNode00
- 配置环境变量
[root@HadoopNode00 hbase-1.2.4]# vi ~/.bashrc
export HBASE_HOME=/usr/hbase-1.2.4
export JAVA_HOME=/home/java/jdk1.8.0_181
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0
export PROTBUF_HOME=/home/protobuf/protobuf-2.5.0
export FINDBUGS_HOME=/home/findbugs/findbugs-3.0.1
export MAVEN_HOME=/home/maven/apache-maven-3.3.9
export M2_HOME=/home/maven/apache-maven-3.3.9
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTBUF_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin
[root@HadoopNode00 hbase-1.2.4]# source ~/.bashrc
- 启动服务
[root@HadoopNode00 hbase-1.2.4]# start-hbase.sh
[root@HadoopNode00 hbase-1.2.4]# jps
2480 SecondaryNameNode
2113 NameNode
8082 HRegionServer # 从服务
8438 Jps
7927 HMaster # 主服务
2231 DataNode
1851 QuorumPeerMain
- 访问web UI