目录
1. HBase简介
HBase是一个基于HDFS的面向列的分布式数据库。HDFS基于流式数据访问,低时间延迟的数据访问并不适合在HDFS上运行。所以,如果需要实时地随机访问超大规模数据集,使用HBase是更好的选择。HBase时NoSQL(非关系型数据库)数据库,不支持关系型数据库地SQL,并且是以键值对地方式按列存储,是非关系型数据库(Not Only SQL)中的一个重要代表。NoSQL目前并没有明确地范围和定义,其主要特点是通常被用于大规模数据地存储、没有预定义地模式(如表结构)、表和表之间没有复杂的关系。总体上可将NoSQL数据库分为以下4类:
- 基于列存储地类型
- 基于文档存储的类型
- 基于键值对存储的类型
- 基于图形数据存储的类型
HBase 是一个可以建立在HDFS上的分布式NoSQL数据库(非关系型数据库只有对数据表进行增、删、查操作;没有改地操作,要做改的操作,需要先删除,再插入来代替)。
2. hbase安装
hbase有三种安装方式:单机、伪分布式、完全分布式。
【单机hbase】:hbase数据库的数据文件存在单一的一台设备上,使用的是该设备的文件系统。
【伪分布式hbase】:hbase数据库的数据文件存在一台设备构成的hdfs上,数据库也分主从结构。
【完全分布式hbase】:hbase数据库的数据文件存在多台设备构成的hdfs上,数据库也分主从结构。
我们这里为了后期学习,直接采用【完全分布式hbase】方式安装:
1)获取hbase安装包并解压到node1的/home/hdser/下 并重命名为hbase
[hduser@node1 ~]$ tar -zxvf /home/hduser/桌面/hbase-1.2.0-bin.tar.gz -C /home/hduser/
[hduser@node1 ~]$ mv /home/hduser/hbase-1.2.0/ /home/hduser/hbase
2)配置hbase核心配置文件(hbase-site.xml)
/home/hduser/hbase/conf/下
用安装的gedit记事本进入:
[hduser@node1 conf]$ gedit hbase-site.xml
增加以下核心内容:
<!-- 设置hbase 在hdfs 数据的存储位置 即配置HRegionServer的数据库存储目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:9000/hbase</value>
</property>
<!-- 设置hbase是完全分布式类型,默认为false,即单机运行,true表示在分布模式运行 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定hbase的HMaster访问地址、端口 -->
<property>
<name>hbase.master</name>
<value>node1:60000</value>
</property>
<!-- hbase的家庭成员(主从机的网络用户名) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
3)配置hbase环境配置文件(hbase-env.sh)
/home/hduser/hbase/conf/下
用安装的gedit记事本进入:
[hduser@node1 conf]$ gedit hbase-env.sh
在文末增加以下环境变量配置:
修改JAVA_HOME配置:
export JAVA_HOME=/usr/java/jdk1.8.0_171
增加HADOOP_HOME配置:
export HADOOP_HOME=/home/hduser/hadoop
增加HBASE_HOME配置:
export HBASE_HOME=/home/hduser/hbase
增加启用hbase 内置zookeeper配置:
export HBASE_MANAGERS_ZK=true
4)配置从机网络用户名(regionservers)
/home/hduser/hbase/conf/下
用安装的gedit记事本进入:
[hduser@node1 conf]$ gedit regionservers
将内容更改成从机用户名信息:
node2
node3
5)拷贝node1的hbase的主目录到node2,node3下,使得各个节点上都能运行HBase来构建HBase集群,执行以下两个命令
[hduser@node1 ~]$ scp -r hbase hduser@node2:/home/hduser/
[hduser@node1 ~]$ scp -r hbase hduser@node3:/home/hduser/
6)配置hbase的环境变量
用记事本命令打开配置环境
[hduser@node1 ~]$ sudo gedit /etc/profile
增加以下配置内容:
export HBASE_HOME=/home/hduser/hbase
export PATH=$PATH:$HBASE_HOME/bin
保存并退出,使文件生效: