Hbase学习


第一章 Hbase简介

第二章 HBase安装

在安装HBse之前需要安装Zookeeper

zookeeper

1.修改配置文件

image-20220317234032356

2.添加主机信息

server.0={hostname}:2888:3888
server.1={hostname}:2888:3888
server.2={hostname}:2888:3888

image-20220317234713307

3.配置环境变量

source /etc/profile
echo $PATH | grep zookeeper

4.创建数据目录

image-20220317235100816

5.分发并修改从节点的myid

xsync zookeeper路径

image-20220317235303481

6.分发环境变量,并更新环境变量

image-20220317235553515

7.编写启动脚本

#/bin/sh
#for start or stop zookeeper
 
a=$1
 
if [[ $a = "start" ]];then
        for host in  node0 node1 node2
        do
        ssh $host "zkServer.sh start"
        done
elif [[ $a == "stop" ]];then
        for host in  node0 node1 node2
        do
        ssh $host "zkServer.sh stop"
        #ssh $host "ps -ef | grep zookeeper |egrep -v grep | awk -F " " '{print $2}' | xargs kill -9"
        done
 
elif [[ $a == "status" ]];then
        for host in  node0 node1 node2
        do
        ssh $host "zkServer.sh status"
        done
 
else
        echo "你输入的参数不正确,请重新输入!"
fi
赋权限 + 复制到/bin
chmod u+x myzookeeper.sh

8.安装完成

image-20220318001740468

需要配置的文件

image-20220406104601061

hbase-site.xml


	
		
		hbase.cluster.distributed
		true
	
	
	
	
		hbase.rootdir
		hdfs://hadoop100:8020/hbase
	

	
		hbase.zookeeper.quorum
		hadoop100:2181, hadoop101:2181, hadoop102:2181
	

regionservers

hadoop100
hadoop101
hadoop102

backup-masters

hadoop101

第三章 Hbase Shell操作

第四章 Hbase数据结构

4.1 RowKey(行键)

要保证全局唯一,是用来检索记录的主键,只有三种方式。

  1. 通过单个RowKey访问;
  2. 通过RowKey的正则;
  3. 全表扫描;

RowKey的设计

尽量把时间戳加进去;

image-20220406093158977

4.2 Column Family(CF,列族)

创建的时候必须定义列族;

image-20220406093409990

4.3 Cell

{rowkey, column Family:columu, version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。

关键字:无类型、字节码

4.4 Time Stamp

HBASE 中通过rowkey和columns确定的为一个存贮单元称为cell。每个 cell都保存 着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由HBASE(在数据写入时自动 )赋值,此时时间戳是精确到毫秒 的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版 本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供 了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段 时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

4.5 命名空间

image-20220406094718045

// 查看命名空间
list_namespace
// 创建命名空间
create_namespace 'bigdata'
//在命名空间下创建表
create 'bigdata:student', 'info'
// 查看改命名空间下的表
list
// 删除命名空间,只能删除没有表的命名空间
drop_namespace

第五章 Hbase原理

5.1 读操作

1. (客户端向ZK集群)发送获取元数据所在RegionServer;  
2. (ZK集群向客户端)返回meta表所在RegionServer(RS1:hadoop100)
3. 客户端请求rowkey所在的RS;
4. 返回rowkey所在RS(4);
5. 发起读请求;
6. 返回结果(先内存,后磁盘);

5.2 写操作

5.3数据Flush过程

1)当MemStore数据达到阈值(默认是128M,老版本是64M),将数据刷到硬盘,将内存中的数据删除,同时删除HLog中的历史数据;

2)并将数据存储到HDFS中;

3)在HLog中做标记点。

第六章 HBase API 操作

第七章 Hbase优化

第八章 Hbase实验

第九章 扩展

01_尚硅谷_HBase_课程介绍
02_尚硅谷_HBase_介绍
03_尚硅谷_HBase_特点
04_尚硅谷_HBase_架构
05_尚硅谷_HBase_角色介绍
06_尚硅谷_HBase_安装配置&启动

07_尚硅谷_HBase_Shell操作之增&查
08_尚硅谷_HBase_Shell操作(二)
09_尚硅谷_HBase_删除操作执行
10_尚硅谷_HBase_数据结构
11_尚硅谷_HBase_读数据流程
12_尚硅谷_HBase_写流程
13_尚硅谷_HBase_数据Flush&Compact参数
14_尚硅谷_HBase_回顾

15_尚硅谷_HBase_判断表是否存在旧API
16_尚硅谷_HBase_判断表是否存在新API
17_尚硅谷_HBase_创建表
18_尚硅谷_HBase_删除表
19_尚硅谷_HBase_添加数据
20_尚硅谷_HBase_删除数据
21_尚硅谷_HBase_全表扫描
22_尚硅谷_HBase_获取指定列族:列的数据
23_尚硅谷_HBase_&MR集成官方案例

24_尚硅谷_HBase_自定义MR1之Mapper
25_尚硅谷_HBase_自定义MR1之Reducer&Driver
26_尚硅谷_HBase_自定义MR1打包测试
27_尚硅谷_HBase_自定义MR2完成
28_尚硅谷_HBase_回顾

29_尚硅谷_HBase_Hive与HBase对比
30_尚硅谷_HBase_Hive&HBase集成(需求一)
31_尚硅谷_HBase_向关联表添加数据
32_尚硅谷_HBase_Hive&HBase集成(需求二)
33_尚硅谷_HBase_高可用
34_尚硅谷_HBase_预分区
35_尚硅谷_HBase_RowKey设计
36_尚硅谷_HBase_内存&基础优化

37_尚硅谷_HBase_谷粒微博之需求分析
38_尚硅谷_HBase_谷粒微博之项目构建
39_尚硅谷_HBase_谷粒微博之创建命名空间
40_尚硅谷_HBase_谷粒微博之创建表
41_尚硅谷_HBase_谷粒微博之发布微博
42_尚硅谷_HBase_谷粒微博之关注用户(一)
43_尚硅谷_HBase_谷粒微博之关注用户(二)
44_尚硅谷_HBase_谷粒微博之关注用户版本问题修复

45_尚硅谷_HBase_回顾(一)
46_尚硅谷_HBase_谷粒微博回顾
47_尚硅谷_HBase_谷粒微博之取关用户
48_尚硅谷_HBase_谷粒微博之获取微博内容&过滤器介绍
49_尚硅谷_HBase_谷粒微博之初始化页面微博内容
50_尚硅谷_HBase_谷粒微博之测试