HBase学习之路(一):HBase的基本概念与HBase完全分布式搭建,
内容简介
- 一、初识HBase
- 1.什么是HBase
- 2.为什么会诞生HBase
- 3.HBase与Hive的区别
- 二、HBase完全分布式的搭建
- 1.安装前须知
- 2.下载并解压HBase安装包
- 3.配置环境变量
- 4.配置HBase的配置文件
- 5.启动集群并测试
- 三、总结
一、初识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=/home/hadoop/app/hbase-1.2.0-cdh5.7.0 export PATH=$PATH:$HBASE_HOME/bin
4.配置HBase的配置文件
进入$HBASE_HOME/conf目录配置一下文件:
- 在hbase-env.sh中添加JAVA_HOME,即你JDK的目录:
并将参数HBASE_MANAGES_ZK设置为false,该设置表明我们不使用HBase自带的Zookeeper而用独立就群的:
- 在hbase-site.xml中的完整配置如下:
<configuration> <!-- 设置为分布式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定hbase数据在hdfs上的存放路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop00:8020/user/hbase</value> </property> <!-- 配置zookeeper地址 --> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value> </property> <!-- zookeeper的本地目录 --> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop/tmp/zk</value> </property> <!-- HBase的webui端口 --> <property> <name>hbase.master.info.port</name> <value>16010</value> </property> </configuration> - 在regionservers中添加HBase集群的区域服务器节点的IP或主机名(master不用写进去),即HBase集群的从节点:
5.启动集群并测试
- 在Linux终端使用命令
start-hbase.sh启动HBase集群。 - 在浏览器上输入master的地址,端口号是16010,查看HBase的WebUI:
至此HBase集群搭建成功。
三、总结
本文简单介绍了一下HBase的基础知识,为后面深入学习HBase打下一点基础,HBase在大数据领域有着很重要的作用,又被称为“Hadoop DataBase”。然后详细演示了HBase完全分布式的搭建,其实除了完全分布式,HBase和Hadoop一样,具有单机模式和伪分布模式,在这里就不一一演示了。感谢您的阅读,如有错误请不吝赐教!
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。