没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Hbase 性能测试
一、涉及调优参数
1、表的设计
1.1、Pre-Creang Regions
默认情况下,在创建 表的时候会自动创建一个 分区,当导入数据的时候,所有的
客户端都向这一个 写数据,直到这个 足够大了才进行切分。
一种可以加快批量写入速度的方法是通过预先创建一些空的 ,这样当数据写入 时,
会按照 分区情况,在集群内做数据的负载均衡。
1.2、Compact & Split
在 中,数据在更新时首先写入 日志和内存中, 中的数
据是排序的,当 累计到一定阈值时,就会创建一个新的 ,并且将老的
添 加 到 队 列 , 由 单 独 的 线 程 到 磁 盘 上 , 成 为 一 个 。 于 此 同 时 , 系 统 会 在
中记录一个 ,表示这个时刻之前的变更已经持久化了。
是只读的,一旦创建后就不可以再修改。因此 的更新其实是不断追加的操作。当
一个 中的 达到一定的阈值后,就会进行一次合并 ,将对同一个 !
的修改合并到一起,形成一个大的 ,当 的大小达到一定阈值后,又会对 进
行分割,等分为两个 。
由 于 对 表 的 更 新 是 不 断 追 加 的 , 处 理 读 请 求 时 , 需 要 访 问 中 全 部 的 和
,将它们按照 "! 进行合并,由于 和 都是经过排序的,并且
带有内存中索引,通常合并过程还是比较快的。
实际应用中,可以考虑必要时手动进行 ,将同一个 "! 的修改进行合并形成
一个大的 。同时,可以将 设置大些,减少 的发生。
1.3、压缩方式
在 和 文件传输可以在压缩之后在进行传输,这样就可以在传输的时候减少传输数据,
增大 #$% 和带宽效率。在 中主要提供了三种压缩方式 &、'%、! 三种数据压缩。
实际使用中,可以考虑分别尝试两种压缩模式,选出最适合业务场景要求的。
2、写表操作
2.1、Row Key 设计
中 "! 用来检索表中的记录,支持以下三种方式:
() 通过单个 "! 访问:即按照某个 "! 键值进行 操作;
*) 通过 "! 的 进行 :即通过设置 +",! 和 +",!,在这个范围
内进行扫描;
-) 全表扫描:即直接扫描整张表中所有行记录。
"! 是按照字典序存储,因此,设计 "! 时,要充分利用这个排序特点,将经常一起读取
的数据存储到一块,将最近可能会被访问的数据放在一块。
如果最近写入 表中的数据是最可能被访问的,可以考虑将时间戳作为 "! 的一部分,
由于是字典序排序,所以可以使用 )./0123 作为 "!,这样能保证新写入
的数据在读取时可以被快速命中。
2.2、多 HTable 并发写
创建多个 4 客户端用于写操作,提高写数据的吞吐量,
2.3、HTable 参数设置
2.3.1 Auto Flush
通过调用 4)5方法可以将 4 写客户端的自动 关闭,这样可以
批量写入数据到 ,而不是有一条 就执行一次更新,只有当 填满客户端写缓存时,才实际
向 服务端发起写请求。默认情况下 是开启的。
2.3.2 Write Buer
通过调用 4)6"6方法可以设置 4 客户端的写 6
大小,如果新设置的 6 小于当前写 6 中的数据时,6 将会被 到服务端。其中,
"6 的单位是 ! 字节数,可以根据实际写入数据量的多少来设置该值。
2.3.3 WAL Flag
在 中,客户端向集群中的 +7 提交数据时(8$9 操作),首先会先写
()日志(即 ,一个 +7 上的所有 + 共享一个 ),
只有当 日志写成功后,再接着写 ,然后客户端被通知提交数据成功;如果写 日志
失败,客户端则被通知提交失败。这样做的好处是可以做到 +7 宕机后的数据恢复。
因此,对于相对不太重要的数据,可以在 8$9 操作时,通过调用
8)45或 9)45函数,放弃写 日志,从而提高数据
写入的性能。
3、读表操作
3.1 多 HTable 并发读
创建多个 4 客户端用于读操作,提高读数据的吞吐量,
3.3 批量读
通过调用 4)&方法可以根据一个指定的 "! 获取一行记录,同样 提供了
另一个方法:通过调用 4)方法可以根据一个指定的 "! 列表,批量获取多行记录,
这样做的好处是批量执行,只需要一次网络 #$% 开销,这对于对数据实时性要求高而且网络传输 +44 高的
情景下可能带来明显的性能提升。
3.4 多线程并发读
在客户端开启多个 4 读线程,每个读线程负责通过 4 对象进行 操作。
3.5 缓存查询结果
对于频繁查询 的应用场景,可以考虑在应用程序中做缓存,当有新的查询请求时,首先在缓
存中查找,如果存在则直接返回,不再查询 ;否则对 发起读请求查询,然后在应用程序中
将查询结果缓存起来。至于缓存的替换策略,可以考虑 +1 等常用的策略。
3.6 Blockcache
上 +7 的内存分为两个部分,一部分作为 ,主要用来写;另外一部分
作为 :,主要用于读。
写请求会先写入 ,+7 会给每个 提供一个 ,当
满 ;< 以后,会启动 刷新到磁盘。当 的总大小超过限制时(=
剩余17页未读,继续阅读
资源评论
- 聆听随风2019-01-03抄的 不值
- yl9007112015-10-14不是很推荐下载 写的内容很简单
- qq_356201842018-12-04压力测试代码的话,比较简单
- liwenhjuan2021-01-14不推荐,感觉不划算哦
- boyangcool2015-06-14用例比较全,可以
cao258636408
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功