内容简介
一、初识HBase
1.什么是HBase
- HBase是一个分布式的、面向列的建立在Hadoop之上的开源非关系型数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的基于列的而不是基于行的数据库。
2.为什么会诞生HBase
- 传统的RDBMS的处理大数据的瓶颈。传统的RDBMS在处理小规模数据有着绝对的优势:1.提供二维表格模型,对于结构化数据的组织非常适合,且提供大量的索引帮助用户快速定位和修改数据;2.提供完整的事务支持使得数据的读写的安全性得到了有力保障;3.使用SQL语言查询和修改数据,编程便捷。但是如果面对海量的数据,传统的RDBMS会显得力不从心,因为光是建立索引已经耗费大量的空间,在处理海量数据时RDBMS遇到了瓶颈,从而诞生了NoSQL,而对于大数据领域而言NoSQL用的较多的就是HBase。
- HDFS存在高延迟访问。在Hadoop学习之路(六):理解Hadoop三大核心组件之HDFS一文中就已经指出HDFS存在高延迟访问的问题,所以为了解决这个HDFS与生俱来的短板,HBase是一个非常优秀的选择,HBase可以实现海量数据的随机定位和实时读写。
3.HBase与Hive的区别
- HBase是建立在Hadoop之上的NoSQL,是非关系型数据库,Hive是数据仓库,不是数据库。
- HBase提供海量数据的随机定位和实时读写,毫秒级别内响应查询请求,Hive的查询并不能在短时间内响应。
- HBase只提供数据的存储和查询功能,没有数据的处理能力,Hive提供类SQL的方式对数据进行处理,底层转变为MapReduce跑在YARN上。
- Hive和HBase是两种基于Hadoop的不同技术,Hive是一种类SQL的引擎,并且运行MapReduce任务,Hbase是一种在Hadoop之上的NoSQL 的Key/Value数据库。
二、HBase完全分布式的搭建
1.安装前须知
- HBase建立在Hadoop之上,所以必须有一个可用Hadoop集群。
- HBase是需要Zookeeper进行集群管理的,多以必须有一个可用的Zookeeper集群。
- 本次演示安装的HBase版本是1.2.0-cdh5.7.0
- 以下的第2、3、4点操作在每台HBase集群的主机上同步完成,且对于HBase而言Master不需要显式指定,一般而言启动HBase的主机为Master。
2.下载并解压HBase安装包
- HBase安装包可以去官网下载,我演示的安装包长这个样子的:
- 在安装包目录下使用命令
tar -zxvf hbase-1.2.0-cdh5.7.0.tar.gz -C ~/app/
,-C后是你解压的路径。
3.配置环境变量
- 使用命令
vim ~/.bash_profile
,在该文件下添加一下两行配置,HBASE_HOME后是你解压HBase的目录:export HBASE_HOME=