目录
1.前言
今天把之前学习Hbase的入门基础知识笔记翻出来了,为了不忘记也是帮助身边的小伙伴,我把他又整理了下放了出来给大家,希望对HBASE一知半解的小伙伴,能够对Hbase有一个清晰的认识,好了废话不多说,进入正题。
2.初识Hbase
进入正题之前,我们先说下Hbase是什么,他是一个分布式文件数据库,那么问题来了,大家都知道HDFS,也是分布式文件系统,既然有了为啥还要搞出来个Hbase呢?还有我们都知道有个大数据分布式数据仓库HIVE,可以通过sql语句来进行查询?为啥还要搞个Hbase呢?带着这个写问题,我们一起来研究。
2.1 有了HDFS为什么还需要HBase呢?
我们带着问题来研究?首先我们要先明白一个东西,就是HDFS 是什么,他到底是做什么的?
- 一个超大数据集,拆分为N多个block小文件,分散存储在多台机器上,对超大数据集实现分布式存储的效果,并且每个block小文件,还有3个副本冗余存储,每个副本在不同的机器上,高可用和高容错。
- hdfs hadoop distributed filesystem , 分布式文件系统,存放的是文件,文件是死的,静态的,最多只能是你不停的往文件末尾追加数据,会把你追加到末尾的数据其实都是分散在多个不同的小block里存储在机器上
2.2 HBase主要做什么的?
HBase是hadoop nosql database,来解决海量数据的增删改查的问题。nosql 是跟sql相对应的,是跟关系型数据库相反的,是不支持sql语句的,nosql数据库,一般都是分布式的,解决海量数据的简单增删改查问题的。hive的目的是用来解决海量数据的CRUD的,我们回到上面的问题,为啥HIVE有了,还要搞个hive,就是这个原因。
不明白么?我简单的啰嗦下,HIVE 的本质是什么?他的本质其实就是将你写的SQL翻译为基于mapreduce java api的java代码,他的特性就是只能够查询和插入,不能够删除某一条或者修改某一条的记录。
2.3 HBase架构特点?
(1)分布式架构
hbase的定位是分布式nosql数据库, nosql数据库的功能是通过多台机器来实现的,每台机器都是一个RegionServer,分布式管理数据库
(2) 分布式数据存储和自动数据分片
数据分片,就是说你在hbase搞一张表,这个数据很大很大,这个表里的数据会拆分为很多个 region,每个region里是一个数据分片,然后这些region 就会分散在多台机器上;如果某个region数据太大,此时这个region会自动进行分裂,分裂成多个region,自动分散在更多的机器上,对于我们来说是极为方便的。
(3)集成hdfs 作为分布式文件存储系统
(4)强一致读写
不是zk那种最终一致性,是强一致性,就是你写成功了立马就可以读。主要依靠的分布式存储才做到的。
(5)高可用