Hbase读取优化

Hbase读取优化,hbase,hdfs,hbasestorage,Hbase,Hdfs,Hbasestorage,我在我的hbase cluseter中使用5个RegionServe。我只是将url的md5散列存储为rowkey,并且只存储一个包含数据字段的列族,其中包含与该键对应的数据(每行包含大小约为30KB的数据)。我的请求是读密集型的(很少写入和非常大的读取)。我已经为我的集群做了大约300000个项目的基准测试,使用5个预拆分(在5个区域服务器上统一存储数据),我获得了大约200个的QP。在基准测试中,我运行了150个线程来查询从单独的客户端读取的数据 这个qps对我来说太少了。可以做些什么优化来

我在我的hbase cluseter中使用5个RegionServe。我只是将url的md5散列存储为rowkey,并且只存储一个包含数据字段的列族,其中包含与该键对应的数据(每行包含大小约为30KB的数据)。我的请求是读密集型的(很少写入和非常大的读取)。我已经为我的集群做了大约300000个项目的基准测试,使用5个预拆分(在5个区域服务器上统一存储数据),我获得了大约200个的QP。在基准测试中,我运行了150个线程来查询从单独的客户端读取的数据

这个qps对我来说太少了。可以做些什么优化来提高读取qps(如果优化后写入qps会减少,对我来说没关系)。到目前为止,我正在使用hbase的默认配置。
每个区域服务器(包括主服务器)都有8 GB RAM和4个内核。我的集群在AWS的同一区域

请提供更多关于您所执行的基准测试的信息。@RubénMoraleda在问题中做了更改。性能相当差,应该更多。该系列是否已压缩?客户端是否在同一网络中?请注意,30KB行上的200qps为6MB/s(接近50mbit/s)。我会尝试在一个区域服务器上运行基准测试,或者甚至同时运行多个客户端(每个客户端有1/3的线程),看看会发生什么。我还尝试减少和增加线程数量,以查看结果。我认为你能做的不多,只能通过在每种情况下只读取所需的最小列来减少读取和传输的数据量。@RubénMoraleda是的,我将尝试使用线程数和使用多个客户端。另外,我的集群位于AWS的同一网络(区域)中,但我没有得到该部分“通过在每种情况下只读取所需的最小列集来减少读取和传输的数据量”,因为我的表只有一列数据,如何减少读取和传输的数据量?您是否可以建议我在配置中进行任何更改(如blockchache配置等)为了改善结果?PS:对hbase clusterI的系统配置进行了有疑问的更改,这意味着如果您可以将该行拆分为多个列,并且只检索您需要的行,而不是整行,但是如果您需要所有内容,则没有意义。关于配置,您可以提供一些有关块缓存的信息,但我可以除了一点微调之外,你真的认为服务器端可以做的事情不多。检查一下发生了什么事+并发客户端的线程更少,RS更少/更多,看看影响是什么,最后,尝试增加所有RegionServer的RAM和JAVA堆(8GB太低)。