3.1 HBase安装文件详解
任务目的
了解安装包下各个文件作用
任务清单
任务1:解压安装包
任务2:文件介绍
任务步骤
任务1:解压安装包
下载
通过hbase官网https://hbase.apache.org/downloads.html,选择版本进行下载。
3.1-1
解压
通过以下指令进行解压。
shell
tar -zxvf hbase-1.4.10-bin.tar.gz
3.1-2
任务2:文件介绍
主目录预览
进入hbase主目录并进行查看。
shell
cd hbase-1.4.10
ll
3.1-3
bin目录
该目下两个文件重要,一个文件可以启动hbase服务,一个可以关闭
3.1-4
conf目录
该目录下,一个文件用来配置系统环境,一个文件用来配置hbase环境,一个用来配置从节点
3.1-5
其他目录
docs:帮助文档,比如API等。
hbase-webapp:hbase的web资源存储目录。
lib:jar包存储目录。
3.2 HBase快速搭建
任务目的
掌握HBase单机安装
掌握HBase伪分布式安装
任务清单
任务1:HBase单机安装
任务2:HBase伪分布式安装
任务步骤
任务1:HBase单机安装
1、下载好hbase的tar包,解压到指定目录下。
tar -zxf hbase-1.4.10-bin.tar.gz
3.2-1
2、切入到hbase目录下的配置目录,修改hbase-env.sh文件,导入JDK,并使用自带ZK。保存配置。
cd hbase-1.4.10/conf
vim hbase-env.sh
3.2-2
3.2-3
3、修改hbase-site.xml文件,加入如下三条配置。并保存。
vim hbase-site.xml
3.2-4
4、返回主目录,启动hbase环境。通过jps命令检查,HMaster节点启动。
bin/start-hbase.sh
bin/stop-hbase.sh
3.2-5
任务2:HBase伪分布式安装
1、在hbase主目录下,修改hbase-env.sh文件,把false改为true。保存退出。
vim conf/hbase-env.sh
3.2-6
2、修改conf目录下的hbase-site.xml文件,修改两条,增加一条。保存退出。
vim conf/hbase-site.xml
3.2-7
3、到此hbase的伪分布式就安装完成,接下来要检查是否成功。把ZK、Hadoop以及hbase的节点启动起来,进入到ZK的客户端,可以看到hbase已注册到ZK。
ls /
3.2-8
3.3 HBase分布式讲解
任务目的
了解分布式搭建方法
任务清单
任务1:HBase分布式讲解
任务步骤
任务1:HBase分布式讲解
1、在hbase-env.sh文件中导入JDK安装路径,hbase安装路径以及Hadoop安装路径,并设置使用外部ZK。
shell
export JAVA_HOME=/root/software/jdk1.8.0_221
export HADOOP_HOME=/root/software/hadoop-2.7.7
export HBASE_CLASSPATH=/root/software/hbase-1.4.10
export HBASE_MANAGES=true
2、把HADOOPHOME/etc/hadoop/hdfs−site.xml文件拷贝到HBASE_HOME/conf目录下。
shell
cp /root/software/hadoop-2.7.7/etc/hadoop/hdfs-site.xml /root/software/hbase-1.4.10/conf
3、修改hbase-site.xml文件,加入以下配置。
xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/software/zookeeper-3.4.14/</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
4、修改conf目录下的regionservers文件,把从节点的主机名写入该文件。
shell
master
slave1
slave2
5、把配置好的hbase文件分发给其他从节点机器。从节点上的机器也要配置hbase的环境变量,并要使变量生效。
shell
scp -r hbase-1.4.10 slave1:/root/software
scp -r hbase-1.4.10 slave2:/root/software
6、如果分布式环境是基于伪分布式环境搭建,则需要删除ZK中已经注册的hbase,并重启ZK。新环境安装的分布式就可以启动集群了。主节点上启动了一个HMaster和一个HRegionserver,从节点上启动了一个HRegionserver。
3.4 表的存储结构
任务目的
理解表的逻辑视图
掌握表的数据结构
任务清单
任务1:表的逻辑视图
任务2:数据结构
任务步骤
任务1:表的逻辑视图
-ROOT-表和.META.表
hbase除了有存储海量数据的用户表以外,还有两张特殊的table,-ROOT-表和.META.表。
-ROOT-表:记录了.META.表的Region信息,-ROOT-只有一个region。
.META.表:记录了用户表的Region信息,.META.可以有多个regoin。
示意图如下:
3.4-1
user table
3.4-2
rowkey
与关系型数据数据库中的主键一样,row key是用来表示唯一一行记录的主键。访问hbase table中的行,有三种方式:
通过单个row key访问;
通过row key的range(正则);
全表扫描;
任务2:数据结构
rowkey设计
一条数据的唯一标识就是 rowkey,那么这条数据存储于哪个分区,取决于 rowkey 处于哪一个预分区的区间内,设计 rowkey 的主要目的 ,就是让数据均匀的分布于所有的 region 中。 rowkey 常用的设计方案遵循的原则如下:
长度原则
散列原则
唯一原则
columns family和versions
Columns Family :列簇,HBASE表中的每个列,都归属于某个列族。列名都以列族(簇)作为前缀。
versions:默认是 1 这个参数的意思是数据保留 1 个 版本。
cell和timestamp
cell:由{row key,columnFamily,version} 唯一确定的最小存储单元。
timestamp:时间戳,hbase中通过rowkey和columns确定为一个存储单元称为cell。每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整型。
namespace
namespace 类似于关系数据库系统中数据库表的逻辑分组。结构如下:
3.4-3