首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何优雅地使用 java 连接 HBase 客户端

放弃不难,但坚持很酷~ HBase 版本:1.2.0-cdh5.7.0 一、客户端的长短连接 java 远程连接 HBase 客户端,大体分为两种方式。一种是长连接,一种是短连接。...二、使用单例模式来初始化 HBase 客户端HBase 为例,如果使用长连接,那就得需要确保 connection 唯一(不唯一的话,有可能造成资源浪费或者连接数过多报错),所有的操作都使用这一个...比如我们要执行 HBase 客户端操作的话,可以执行:HBaseUtil.getInstance().listTables("xxx") 。 三、总结 1、为什么这样实现就是单例的?...因为 HBaseUtil.java 的实例化是靠静态内部类的静态常量 instance 实例化的。instance 是常量,因此只能赋值一次;它还是静态的,因此随着内部类一起加载。...3、不只是 HBase 可以这样初始化客户端,Elasticsearch 等等的长连接也都可以,这样,你学会了吗?

3.2K30

Hbase入门(五)——客户端Java,Shell,Thrift,Rest,MR,WebUI)

Hbase客户端有原生java客户端Hbase Shell,Thrift,Rest,Mapreduce,WebUI等等。 下面是这几种客户端的常见用法。 ?...一、原生Java客户端 原生java客户端hbase最主要,最高效的客户端。 涵盖了增删改查等API,还实现了创建,删除,修改表等DDL操作。...配置java连接hbase Java连接HBase需要两个类: HBaseConfiguration ConnectionFactory 首先,配置一个hbase连接: 比如zookeeper的地址端口...三、使用Thrift客户端访问HBase 由于Hbase是用Java写的,因此它原生地提供了Java接口,对非Java程序人员,怎么办呢?...幸好它提供了thrift接口服务器,因此也可以采用其他语言来编写Hbase客户端,这里是常用的Hbase python接口的介绍。其他语言也类似。

3.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大数据最佳实践 | HBase客户端

    1减少RPC调用的方法 1.1.问题提出 HBase中rowkey是索引,任何对全表的扫描或是统计都需要用到scan接口,一般都是通过next()方法获取数据。...2客户端其它最佳实践方法 2.1.问题提出 平常情况下,很多的应用主要是通过使用客户端来访问HBase集群,进而完成业务。因此整个系统的性能有很大一部分依赖于客户端的性能。...客户端的开发主要是使用HBase提供的API,往往又由于不同的程序员对API的掌握程度不一,导致了客户端的性能差别很大。...2.2.解决思路 客户端是使用HBase提供的API来完成读写数据,因此我们针对API的使用整理了一些最佳实践。...默认的客户端写缓存是2M,我们可以通过修改hbase.client.write.buffer配置来设置大小,以满足应用的需要。

    2.7K70

    HBase客户端API-Batch操作

    上一篇博客说了使用 HBase客户端 API 来操作操作 HBase 表中记录,今天我们看看怎样通过 API 来批量操作表中的数据。...安装上一篇博客中的方法在 HBase 中如果更新(添加/修改/删除)记录,是按行一条一条更新的,这种方法在处理大量更新操作时,性能比较差,还好在 HBase 中提供了以 Batch 方式来批量更新数据表的方法...完整例子代码如下 package my.hbasestudy; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration...; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes...; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List

    2.7K50

    HBase client 客户端重试机制

    代码解析 RpcRetryingCall.java 中 callWithRetries函数是Rpc请求重试机制的实现, 可以参考以下源码(hbase版本为1.2.1) /** * Retries if...hbase.rpc.timeout 该参数表示一次RPC请求的超时时间。如果某次RPC时间超过该值,客户端就会主动关闭socket。...那假如caller对象发送RPC请求之后刚好发生网络抖动,进而抛出网络异常,HBase客户端就会进行重试,重试多次之后如果总操作时间超时引起SocketTimeoutException,对应的就是hbase.client.operation.timeout...hbase.client.scanner.timeout.period 该参数是表示HBase客户端发起一次scan操作的rpc调用至得到响应之间总的超时时间。...为了构建一个更稳定、低延迟的HBase系统,除过需要对服务器端参数做各种调整外,客户端参数也需要做相应的调整: hbase.client.pause:默认为100,可以减少为50 hbase.client.retries.number

    2.5K20

    Hbase客户端API基础小结笔记(未完)

    客户端API:基础   HBase的主要客户端接口是由org.apache.hadoop.hbase.client包中的HTable类提供的,通过这个类,用户可以完成向HBase存储和检索数据,以及删除无效数据之类的操作...; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException...数据和坐标都是以Java的byte[]形式存储的,即以字节数组的形式存储的。使用这种底层存储类型的目的是 ,允许存储任意类型的数据,并且可以有效地只存储所需的字节,这保证了最少的内部数据结构开销。...HBase的API配备了一个客户端的写缓冲区(write buffer),缓冲区负责收集put操作,然后调用RPC操作一次性将put送往服务器。...如果用户只存储大单元格,客户端缓冲区的作用就不大了,因为传输时间占用了大部分的请求时间。  参考:《HBase权威指南》

    92820

    HBase客户端Write Buffer 介绍及设置

    Ref HBase客户端API提供了Write Buffer的方式,即批量提交一批Put对象到HBase服务端。本文将结合HBase相关源码,分析如何在实际项目中合理设置和使用它。 1....hbase/client/Mutation.java,具体见Mutation的代码所示),而KeyValue类中自带的字段占用约50~60 bytes(参考源码:org/apache/hadoop/hbase.../KeyValue.java),那么客户端Put一行数据时,假设column qualifier个数为N,row key长度为L1 bytes,value总长度为L2 bytes,则该Put对象占用大小可按以下公式预估...: Put Size = ((50~60) + L1) * N + L2) bytes 下面我们通过对HBase的源码分析来进一步验证以上理论估算值: HBase客户端执行put操作后,会调用put.heapSize...首先,Write Buffer存在于客户端的本地内存中,那么当客户端运行出现问题时,会导致在Write Buffer中未提交的数据丢失;由于HBase服务端还未收到这些数据,因此也无法通过WAL日志等方式进行数据恢复

    2.6K30

    Hadoop数据分析平台实战——090HBase shell客户端Java Api介绍离线数据分析平台实战——090HBase shell客户端Java Api介绍

    离线数据分析平台实战——090HBase shell客户端Java Api介绍 HBase 命令介绍 HBase命令主要分为两大类, 第一类是指操作hbase表的相关的shell命令; 第二类是提供...当我们进入hbase的shell命令客户端的时候,我们可以通过help命令查看帮助信息,也可以通过help命令查看具体命令的使用方法。 status命令 作用:查看hbase集群状态信息。...命令格式: truncate '[namespace_name:]table_name' Java客户端 Java客户端其实就是shell客户端的一种实现,操作命令基本上就是shell客户端命令的一个映射...Java客户端使用的配置信息是被映射到一个HBaseConfiguration的实例对象中的,当使用该类的create方法创建实例对象的时候,会从classpath路径下获取hbase-site.xml...也可以通过java代码指定命令信息,只需要给定zk的相关环境变量信息即可。

    88850
    领券