首页 > 其他分享 >HBase学习11(项目01分析及准备)

HBase学习11(项目01分析及准备)

时间:2023-09-22 13:55:19浏览次数:47  
标签:11 01 分区 MOMO CHAT ROWKEY MSG HBase hbase

海量数据

1.准备

在idea中创建项目,然后创建脚本包hbase_shell。

添加文件说明readme.md,写入相关项目结构说明。

通过复制hbase_shell文件目录,在VSCode中打开进行对脚本文件的编写。

在VSCode中编写方便。

 2.创建名称空间namespace

当表的数量比较多的时候,为了方便管理,不同的业务域以名称空间(namespace)来划分。

启动hbase shell

 命名空间的基本操作:

# 创建命名空间
create_namespace 'MOMO_CHAT'

# 查看命名空间
list_namespace

# 删除命名空间,注意删除前该命名空间必须是空的,无表
drop_namespace 'XX'

# 查看某个具体的命名空间
describe_namespace 'MOMO_CHAT'

在指定命名空间中创建表,不指定命名空间会自动在default命名空间中创建表。

# 在MOMO_CHAT命名空间下创建表MSG
create "MOMO_CHAT:MSG","C1"

 3.注意事项

列簇越少越好,不然对hbase性能有影响。

GZIP的压缩率最高,但是其实CPU密集型的,对CPU的消耗比其他算法要多,压缩和解压速度也慢

LZO的压缩率居中,比GZIP要低一些,但是压缩和解压速度明显要比GZIP快很多,其中解压速度快的更多;

Zippy/Snappy的压缩率最低,而压缩和解压速度要稍微比LZO要快一些

4.设置数据压缩

hbase shell

# 设置数据压缩
# 表创建的时候指定压缩方式
create "MOMO_CHAT:MSG", {NAME => "C1", COMPRESSION => "GZ"}
# 指定修改某个表的列簇的压缩方式
alter "MOMO_CHAT:MSG",{NAME => "C1", COMPRESSION => "GZ"}

 

5.ROWKEY

注意事项:

1.避免使用递增行键/时序数据

如果ROWKEY设计的都是按照顺序递增(例如:时间戳),这样会有很多的数据写入时,负载都在一台机器上。我们尽量应当将写入大压力均衡到各个RegionServer。

2. 避免ROWKEY和列的长度过大

在HBase中,要访问一个Cell(单元格),需要有ROWKEY、列族、列名,如果ROWKEY、列名太大,就会占用较大内存空间。所以ROWKEY和列的长度应该尽量短小。ROWKEY的最大长度是64KB,建议越短越好

3.使用long等类型比String类型更省空间

long类型为8个字节,8个字节可以保存非常大的无符号整数,例如:18446744073709551615。如果是字符串,是按照一个字节一个字符方式保存,需要快3倍的字节数存储。

 

4.ROWKEY唯一性

 

由于在HBase中数据存储是Key-Value形式,若向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据覆盖。

6.预分区P24

可以避免数据热点

热点是指大量的客户端(client)直接访问集群的一个或者几个节点(可能是读、也可能是写)

大量地访问量可能会使得某个服务器节点超出承受能力,导致整个RegionServer的性能下降,其他的Region也会受影响

hbase设置预分区:

1指定 start key、end key来分区

# 预分区
# 1.指定 start key、end key来分区
hbase> create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40']

划分出来五个区:

 

2.指定分区数量、分区策略

# 2.指定分区数量、分区策略
hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}
# HexStringSplit: ROWKEY是十六进制的字符串作为前缀的
# DecimalStringSplit: ROWKEY是10进制数字字符串作为前缀的
# UniformSplit: ROWKEY前缀完全随机

 

了解上面的知识后,我们要在建表的时候就要指定预分区,所以我们先把表删掉,再重新建立

注意,删除表分两步: 先  disable "MOMO_CHAT:MSG" ,后 drop "MOMO_CHAT:MSG"

然后建表:

create 'MOMO_CHAT:MSG',{NAME => 'C1', COMPRESSION => 'GZ'}, {NUMREGIONS => 6, SPLITALGO => 'HexStringSplit'}

 

 

 

标签:11,01,分区,MOMO,CHAT,ROWKEY,MSG,HBase,hbase
From: https://www.cnblogs.com/hmy22466/p/17705912.html

相关文章

  • 【UVA 11175】From D to E and Back 题解(图论)
    取具有n个顶点和m条边的任意有向图D。你可以在以下方式。E将有m个顶点,每个顶点对应于D的每条边。例如,如果D有一条边uv,那么E将有一个叫做uv的顶点。现在,每当D有边uv和vw时,E就会有边顶点uv到顶点vw。E中没有其他边。你将得到一张E图,并且必须确定E是否有可能是某些有向图D的图的卧......
  • Day01 - Vue介绍
    前端介绍1HTML(5)、CSS(3)、JavaScript(ES5、ES6、ES11):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端->在浏览器中查看2Ajax的出现->后台发送异步请求,Render+Ajax混合3单用Ajax(加载数据,DOM渲染页面):......
  • P7200 [COCI2019-2020#1] Lutrija
    发现相邻的奇数只能恰好差\(2\)(偶质数只有\(2\))。而大于\(3\)的三个连续奇数至多有两个是质数,因为有一个能被\(3\)整除。对于357这三个数,我们可以构造成3527以归入下面的构造方法。所以相邻的奇数最多只有两个。但我们可以放偶质数\(2\)。显然,放多个\(2\)肯......
  • currently, chromedriver 114.0.5735.90 is recommended for chrome 114.*, so it is
    报错原因是驱动和浏览器不匹配解决办法1.下载低版本的谷歌浏览器  本次使用的是114  下载地址:https://downzen.com/en/windows/google-chrome/download/11405735199/  2.下载谷歌浏览器的插件https://registry.npmmirror.com/binary.html?path=chromedriver/114.......
  • 华为云oracle11.2.4安装
    centos7.932核64g200g2Thostnamectl set-hostnameo11gecho"10.240.0.200o11g">>/etc/hostswgethttps://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/datadisk/LinuxVMDataDiskAutoInitialize.shbashLinuxVMDataDiskAutoInitialize.sh  ......
  • Buuctf——[ZJCTF 2019]NiZhuanSiWei
    审题进入题目链接发现是白盒审计<?php$text=$_GET["text"];$file=$_GET["file"];$password=$_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcometothezjctf")){echo"&l......
  • 已解决 File “F:\File_Anaconda\2020CV\yolov5-master\20200701.py“, line 5 Sy
    已解决File“F:\File_Anaconda\2020CV\yolov5-master\20200701.py”,line5SyntaxError:Non-UTF-8codestartingwith‘\xc0’infileF:\File_Anaconda\2020CV\yolov5-master\20200701.pyonline5,butnoencodingdeclared;seehttp://python.org/dev/peps/pe......
  • RB_0001:她被困在考研考编里的五年
    她被困在考研考编里的五年 刘同,一个简单而又坚毅的女孩。从大学毕业后的四年开始,她的生活似乎陷入了一种封闭的状态。她大多数时间都待在老家那间只有10平米的小卧室里。从2018年的春天开始备考研究生,直到2023年的夏天,整整五年时间里,她几乎都在书桌前度过。21岁的时......
  • 041802114金晶的自我介绍~
    我的学号041802114;我是退役大学生士兵金晶,在部队是一名医疗救护员;我的爱好是运动还有看书;推荐紫荆园二楼的漳州鸭面;最近常听的歌我推荐一首lauv的《parisintherain》;想要说些什么呢,那就是“勇敢的人先享受世界”......
  • css01小结
    <!--CSS的引入外链式定义一个css文件,直接写然后在head标签内用link引入<linkrel="stylesheet"href="">内嵌式head标签内写style标签行内式直接在标签内写style定义,没有做到结构与样式分离,所以不用......