【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

相关推荐
一位卑微的码农3 小时前
深入解析Spring Cloud Config:构建高可用分布式配置中心
分布式·spring cloud·微服务·架构
余衫马4 小时前
CentOS7 离线安装 Postgresql 指南
数据库·postgresql
E___V___E4 小时前
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2
数据库·笔记·mysql
m0_748254885 小时前
mysql之如何获知版本
数据库·mysql
Bai_Yin5 小时前
Debezium 与 Apache Kafka 的集成方式
分布式·kafka·apache·debezium
劉煥平CHN5 小时前
RabbitMQ的脑裂(网络分区)问题
网络·分布式·rabbitmq
mikey棒棒棒5 小时前
Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)
数据库·redis·lua·redisson·watchdog·cas·并发锁
明达技术5 小时前
分布式 IO 模块:水力发电设备高效控制的关键
分布式
水手胡巴6 小时前
oracle apex post接口
数据库·oracle
专注API从业者6 小时前
分布式电商系统中的API网关架构设计
大数据·数据仓库·分布式·架构