Hbase学习
第一章 Hbase简介
第二章 HBase安装
在安装HBse之前需要安装Zookeeper
zookeeper
1.修改配置文件

2.添加主机信息
server.0={hostname}:2888:3888
server.1={hostname}:2888:3888
server.2={hostname}:2888:3888

3.配置环境变量
source /etc/profile
echo $PATH | grep zookeeper
4.创建数据目录

5.分发并修改从节点的myid
xsync zookeeper路径

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

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.安装完成

需要配置的文件

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(行键)
要保证全局唯一,是用来检索记录的主键,只有三种方式。
- 通过单个
RowKey访问; - 通过
RowKey的正则; - 全表扫描;
RowKey的设计
尽量把时间戳加进去;

4.2 Column Family(CF,列族)
创建的时候必须定义列族;

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 命名空间

// 查看命名空间
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_谷粒微博之测试