【HBase分布式数据库】第三章 HBase快速入门

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。

zkCli.sh

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

相关推荐
nongcunqq28 分钟前
abap 操作 excel
java·数据库·excel
rain bye bye1 小时前
calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
服务器·数据库·lvs
喵桑..1 小时前
kafka源码阅读
分布式·kafka
阿里云大数据AI技术2 小时前
云栖实录|MaxCompute全新升级:AI时代的原生数据仓库
大数据·数据库·云原生
酷ku的森3 小时前
RabbitMQ的概述
分布式·rabbitmq
不剪发的Tony老师3 小时前
Valentina Studio:一款跨平台的数据库管理工具
数据库·sql
weixin_307779133 小时前
在 Microsoft Azure 上部署 ClickHouse 数据仓库:托管服务与自行部署的全面指南
开发语言·数据库·数据仓库·云计算·azure
六元七角八分3 小时前
pom.xml
xml·数据库
虚行4 小时前
Mysql 数据同步中间件 对比
数据库·mysql·中间件
奥尔特星云大使4 小时前
mysql读写分离中间件Atlas安装部署及使用
数据库·mysql·中间件·读写分离·atlas