千家信息网

(第6.2篇)大数据发展背后的强力推手——HBase分布式存储系统

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇接着6.1 继续讲HBase。4. Hbase容错与恢复每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStor
千家信息网最后更新 2026年11月02日(第6.2篇)大数据发展背后的强力推手——HBase分布式存储系统

本篇接着6.1 继续讲HBase。

4. Hbase容错与恢复

每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中(HLog文件格式见后续),HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知到,HMaster首先会处理遗留的 HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应region的目录下,然后再将失效的region重新分配,领取到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复

Hbase容错性:

1) Master容错:Zookeeper重新选择一个新的Master

l 无Master过程中,数据读取仍照常进行;

l 无master过程中,region切分、负载均衡等无法进行;

2) RegionServer容错:定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳,Master将该RegionServer上的Region重新分配到其他RegionServer上,失效服务器上"预写"日志由主服务器进行分割并派送给新的RegionServer

3) Zookeeper容错:Zookeeper是一个可靠地服务,一般配置3或5个Zookeeper实例

Region定位流程:

寻找RegionServer过程:ZooKeeper--> -ROOT-(单Region)--> .META.--> 用户表

1) -ROOT-

l 表包含.META.表所在的region列表,该表只会有一个Region;

l Zookeeper中记录了-ROOT-表的location。

2) .META.

l 表包含所有的用户空间region列表,以及RegionServer的服务器地址。

5. Hbase基础操作

1) 进入hbase shell console

$HBASE_HOME/bin/hbase shell

表的管理:

2) 查看有哪些表

list

3) 创建表

# 语法:create

, {NAME => , VERSIONS => }

# 例如:创建表t1,有两个family name:f1,f2,且版本数均为2

> create 't1',{NAME => 'f1', VERSIONS => 2},{NAME => 'f2', VERSIONS => 2}

4) 删除表

# 分两步:首先disable,然后drop

# 例如:删除表t1

> disable 't1'

> drop 't1'

5) 查看表的结构

# 语法:describe

# 例如:查看表t1的结构

> describe 't1'

6) 修改表结构

# 修改表结构必须先disable

# 语法:alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}

# 例如:修改表test1的cf的TTL为180天

> disable 'test1'

> alter 'test1',{NAME=>'body',TTL=>'15552000'},{NAME=>'meta', TTL=>'15552000'}

> enable 'test1'

权限管理:

1) 分配权限

# 语法 : grant

参数后面用逗号分隔

# 权限用五个字母表示: "RWXCA".

# READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')

# 例如,给用户'test'分配对表t1有读写的权限,

> grant 'test','RW','t1'

2) 查看权限

# 语法:user_permission

# 例如,查看表t1的权限列表

> user_permission 't1'

3) 收回权限

# 与分配权限类似,语法:revoke

# 例如,收回test用户在表t1上的权限

> revoke 'test','t1'

表数据的增删改查:

1) 添加数据

# 语法:put

,,,,

# 例如:给表t1的添加一行记录:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认

> put 't1','rowkey001','f1:col1','value01'

2) 查询数据--查询某行记录

# 语法:get

,,[,....]

# 例如:查询表t1,rowkey001中的f1下的col1的值

> get 't1','rowkey001', 'f1:col1'

# 或者:

> get 't1','rowkey001', {COLUMN=>'f1:col1'}

# 查询表t1,rowke002中的f1下的所有列值

hbase(main)> get 't1','rowkey001'

3) 查询数据--扫描表

# 语法:scan

, {COLUMNS => [ ,.... ], LIMIT => num}

# 另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能

# 例如:扫描表t1的前5条数据

> scan 't1',{LIMIT=>5}

4) 查询表中的数据行数

# 语法:count

, {INTERVAL => intervalNum, CACHE => cacheNum}

# INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

# 例如,查询表t1中的行数,每100条显示一次,缓存区为500

> count 't1', {INTERVAL => 100, CACHE => 500}

5) 删除数据--删除行中的某个列值

# 语法:delete

, , , ,必须指定列名

# 例如:删除表t1,rowkey001中的f1:col1的数据

> delete 't1','rowkey001','f1:col1'

6) 删除数据--删除行

# 语法:deleteall

, , , ,可以不指定列名,删除整行数据

# 例如:删除表t1,rowk001的数据

> deleteall 't1','rowkey001'

7) 删除数据--删除表中的所有数据

# 语法: truncate

# 其具体过程是:disable table -> drop table -> create table

# 例如:删除表t1的所有数据

> truncate 't1'

Region管理:

1) 移动Region

# 语法:move 'encodeRegionName', 'ServerName'

# encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表

# 示例

>move '4343995a58be8e5bbc739', 'db-41.xxx.xxx.org,60020,139'

2) 开启/关闭region

# 语法:balance_switch true|false

hbase(main)> balance_switch

3) 手动split

# 语法:split 'regionName', 'splitKey'

4) 手动触发major compaction

#语法:

#Compact all regions in a table:

> major_compact 't1'

#Compact an entire region:

> major_compact 'r1'

#Compact a single column family within a region:

> major_compact 'r1', 'c1'

#Compact a single column family within a table:

> major_compact 't1', 'c1'



此时你已经学会了安装hadoop集群,了解了HDFS文件系统,MapReduce计算框架和Zookeeper协作服务(Zookeeper数据模型、访问控制、应用场景),今天学完了HBase,下一篇我们介绍hadoop的数据库工具--Hive。



如何用4个月学会Hadoop开发并找到年薪25万工作?

免费分享一套17年最新Hadoop大数据教程和100道Hadoop大数据必会面试题。

因为链接经常被和谐,需要的朋友请加微信 ganshiyun666 来获取最新下载链接,注明"51CTO"


教程已帮助300+人成功转型Hadoop开发,90%起薪超过20K,工资比之前翻了一倍。

百度Hadoop核心架构师亲自录制

内容包括0基础入门、Hadoop生态系统、真实商业项目实战3大部分。其中商业案例可以让你接触真实的生产环境,训练自己的开发能力。


数据 语法 权限 查询 文件 用户 过程 容错 分配 服务 查询表 结构 系统 服务器 开发 管理 参数 商业 基础 手动 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网最新的科技 互联网科技小贷 期待互联网科技 互联网科技视频 深圳齐家互联网科技 上海喔噻互联网科技 广州凡科互联网科技 互联网科技大会 盛创互联网科技有限公司 滨湖区互联网智能科技产品供应 佩信高科技互联网 恒银科技与互联网金融 广州慧亚互联网科技怎么样 承德科技产业互联网发展 新兴科技互联网创新大赛颁奖典礼 科技类公司包括互联网吗 西安小鹰速贷互联网科技有限公司 互联网科技实习生岗位 领航科技大厦互联网公司 美国五大互联网科技公司市值多少 互联网佳科技有限公司 江苏南京365互联网科技 赶超互联网科技 微信多开 中国航天科技大学国际工业互联网 湖南一路畅行互联网科技 本届互联网博览会上的黑科技 中国科技创新与世界互联网大会 互联网时代的科技公司 西安左小互联网科技有限公司 互联网科技创新创业项目
0