`
无尘道长
  • 浏览: 161082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hbase client访问的超时时间、重试次数、重试间隔时间的配置

阅读更多

   超时时间、重试次数、重试时间间隔的配置也比较重要,因为默认的配置的值都较大,如果出现hbase集群或者RegionServer以及ZK关掉,则对应用程序是灾难性的,超时和重新等会迅速占满web容器的链接,导致web容器停止服务,关于socket的超时时间,有两种:1:建立连接的超时时间;2:读数据的超时时间。

可以配置如下几个参数:

1. hbase.rpc.timeout:rpc的超时时间,默认60s,不建议修改,避免影响正常的业务,在线上环境刚开始配置的是3秒,运行半天后发现了大量的timeout error,原因是有一个region出现了如下问题阻塞了写操作:“Blocking updates … memstore size 434.3m is >= than blocking 256.0m size”可见不能太低。

2. ipc.socket.timeout:socket建立链接的超时时间,应该小于或者等于rpc的超时时间,默认为20s

3. hbase.client.retries.number:重试次数,默认为14,可配置为3

4. hbase.client.pause:重试的休眠时间,默认为1s,可减少,比如100ms

5. zookeeper.recovery.retry:zk的重试次数,可调整为3次,zk不轻易挂,且如果hbase集群出问题了,每次重试均会对zk进行重试操作,zk的重试总次数是:hbase.client.retries.number * zookeeper.recovery.retry,并且每次重试的休眠时间均会呈2的指数级增长,每次访问hbase均会重试,在一次hbase操作中如果涉及多次zk访问,则如果zk不可用,则会出现很多次的zk重试,非常浪费时间。

6. zookeeper.recovery.retry.intervalmill:zk重试的休眠时间,默认为1s,可减少,比如:200ms

7. hbase.regionserver.lease.period:scan查询时每次与server交互的超时时间,默认为60s,可不调整。

 

RPC的重试间隔策略:

public static long getPauseTime(final long pause, final int tries) {

int ntries = tries;

// RETRY_BACKOFF[] = { 1, 1, 1, 2, 2, 4, 4, 8, 16, 32, 64 }

    if (ntries >= HConstants.RETRY_BACKOFF.length) {

      ntries = HConstants.RETRY_BACKOFF.length - 1;

    }

    long normalPause = pause * HConstants.RETRY_BACKOFF[ntries];

    long jitter =  (long)(normalPause * RANDOM.nextFloat() * 0.01f); // 1% possible jitter

    return normalPause + jitter;

  }

 

 

ZK的重试间隔策略:

// RetryCounter

//休眠时间随着重试次数呈2的指数级增长,第一次重试的休眠时间是配置参数的2

public void sleepUntilNextRetry() throws InterruptedException {

    int attempts = getAttemptTimes();

    long sleepTime = (long) (retryIntervalMillis * Math.pow(2, attempts));

    timeUnit.sleep(sleepTime);

       }

      

// retriesRemaining,默认值为maxReties,每次重试后减1

       public int getAttemptTimes() {

          return maxRetries-retriesRemaining+1;

       }

 

 

 

分享到:
评论

相关推荐

    [原创]HbaseClient

    4. 错误处理:HbaseClient具有良好的错误恢复机制,当服务器端出现问题时,客户端会自动重试,保证数据操作的可靠性。 5. 客户端缓存:为了提高性能,HbaseClient使用了缓存策略,如Cell缓存和RowCache。Cell缓存将...

    阿里巴巴开源的Hbase Client node-hbase-client.zip

    当前状态:完全通过 HBase 0.94 和 0.94.16Java hbase-client支持 HBase 服务器的版本[√] 0.94.x[√] 0.94.0[√] 0.94.160.95.x0.96.x安装$ npm install hbase-client使用 CRUD:通过 zookeeper 创建 HBase ...

    hbase-client-2.1.0-cdh6.3.0.jar

    hbase-client-2.1.0-cdh6.3.0.jar

    hbase-client-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-client-1.4.3.jar; 赠送原API文档:hbase-client-1.4.3-javadoc.jar; 赠送源代码:hbase-client-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-client-1.4.3.pom; 包含翻译后的API文档:...

    hbase-client-1.1.2-API文档-中文版.zip

    赠送jar包:hbase-client-1.1.2.jar; 赠送原API文档:hbase-client-1.1.2-javadoc.jar; 赠送源代码:hbase-client-1.1.2-sources.jar; 赠送Maven依赖信息文件:hbase-client-1.1.2.pom; 包含翻译后的API文档:...

    HBaseClient:HBase客户端数据管理软件

    HBaseClient HBase客户端数据管理软件 概要说明 类似PL/SQL,是一个HBase数据库的客户端数据管理软件。是免费开源的软件。 基于XJava,使用xml配置文件绘制可视化界面。 可视化界面操作 表 表的定义、编辑、删除; ...

    hbase配置内置的zookeeper

    ### HBase 配置内置 ZooKeeper 的详细步骤与解析 #### 一、配置背景与目的 在 HBase 的部署环境中,ZooKeeper 起着非常重要的作用,它主要用于协调集群中的各个节点,并且管理 HBase 的元数据。通常情况下,HBase ...

    HBase_Client_Api_Guide

    `HBaseConfiguration`是客户端使用的核心配置对象,用于管理HBase的配置信息。它有两种主要的构造方式: - `public HBaseConfiguration()`: 默认构造函数,会从`hbase-default.xml`和`hbase-site.xml`中读取配置。 ...

    hbase-client_lib.rar

    《深入理解HBase客户端依赖:hbase-client_lib详解》 HBase,作为一款基于Apache Hadoop的分布式数据库,因其强大的实时读写能力和大数据处理能力,被广泛应用在各种大数据场景中。而要有效地与HBase进行交互,...

    HBaseClient-Download:HBaseClient 编译后的版本库

    HBaseClient-Download 提供的是一个已经编译完成的 HBase 客户端版本库,这对于开发者来说是一个宝贵的资源,因为它可以直接用于与 HBase 数据库进行交互,而无需自行编译源代码。HBase 是一个分布式、面向列的NoSQL...

    hbase的java client实例

    在Mapper和Reducer中,可以直接访问HBase的行键、列族和值。 最后,我们讨论**协处理器**。HBase的协处理器机制允许在RegionServer端执行自定义逻辑,从而提高数据处理效率和安全性。协处理器分为两种类型:`...

    HBase配置

    - `hbase.rpc.timeout`和`hbase.client.operation.timeout`定义操作超时时间,避免因网络延迟导致的问题。 11. **监控与日志** 开启`hbase.regionserver.info.port`,在RegionServer上开启Web UI,便于监控。日志...

    hbase-client-1.1.2-API文档-中英对照版.zip

    赠送jar包:hbase-client-1.1.2.jar; 赠送原API文档:hbase-client-1.1.2-javadoc.jar; 赠送源代码:hbase-client-1.1.2-sources.jar; 包含翻译后的API文档:hbase-client-1.1.2-javadoc-API文档-中文(简体)-...

    最新版linux hbase-2.3.2-client-bin.tar.gz

    理解并熟练掌握这些接口,能帮助我们在大数据处理场景中充分发挥HBase的优势,实现高效、稳定的数据存储和访问。在实际应用中,还需结合具体的业务需求和硬件资源,进行适当的配置调优,以达到最佳性能。

    Hbase配置所需要的配置文件.zip

    以下是对"**Hbase配置所需要的配置文件.zip**"中可能包含的配置文件及其作用的详细解释: 1. **hbase-site.xml**: 这是HBase的主要配置文件,包含了HBase集群的全局配置参数。例如,你可以在这里设置`hbase.rootdir...

    基于集群的HBase安装和配置

    - **Client**:包含访问HBase的API接口,负责缓存和维护Region的位置信息。 - **Zookeeper**:确保任何时候集群中只有一个活跃的Master,存储Region的位置信息,并实时监控RegionServer的状态变化。 - **HBase...

    hbase-client

    HBaseClient_1.6.1_64.exe可能是针对Windows系统的HBase客户端安装程序,便于用户在Windows环境下快速部署和使用。 二、HBase Shell HBase Shell是HBase自带的一个基于JLine的命令行工具,提供了与HBase交互的命令...

    hbase-client-1.2.12-API文档-中文版.zip

    赠送jar包:hbase-client-1.2.12.jar; 赠送原API文档:hbase-client-1.2.12-javadoc.jar; 赠送源代码:hbase-client-1.2.12-sources.jar; 赠送Maven依赖信息文件:hbase-client-1.2.12.pom; 包含翻译后的API文档...

    解决hbase client在windows环境下报NoClassDefFound问题

    解决hbase client在windows环境下报Could not initialize class org.fusesource.jansi.internal.Kernel32的问题,把jar包放入hbase client的lib包下,重新运行hbase.cmd shell即可

Global site tag (gtag.js) - Google Analytics