0

我正在运行一个安装了 HBase 的 AWS EMR 集群,我按照这些说明使用 s3 作为 Hbase 数据存储来设置集群。集群已启动并正在运行,我可以毫无问题地 ssh 并使用它hbase shell

我们试图存储的数据是基因组数据,而且非常广泛。对于每个行键,最多可以有 250,000 个列键。我们尝试了不同数量的列族,从将所有键分组到一个列族中,到使用 42 个不同的列族,列键分布在它们之间。

为了与 Hbase 交互,我们happybase在 python 中使用,它用于thrift与主节点进行通信。检索单个行键时,返回结果大约需要 2.7 秒。我期待这种类型的操作需要毫秒的数据检索时间。取回时。我们的配置非常简单,没有进行额外的优化。我们正在尝试确定 Hbase 是否是满足我们数据库需求的正确应用程序,但鉴于数据检索时间缓慢,我们正在远离它。

在此处输入图像描述

在此处输入图像描述

我知道其他大型行业参与者使用 HBase 来满足他们的需求,并且想知道是否有人知道我们可以尝试哪些事情来优化性能?虽然这些时间并不可怕,但应用程序最终将需要放置数千个行键并检索所有列的数千个行键。鉴于我们迄今为止看到的扩展,这将无法满足我们的需求。

我对 HBase 等分布式 NoSQL 技术的经验很少,因此我将不胜感激任何建议或帮助。

集群设置:

1 Master node, 3 Core nodes
m4.large instances

我们尝试过的事情:

  1. 调整列族数
  2. 使用 HDFS 而不是 s3 作为数据存储
4

0 回答 0