hadoop - 从HBASE获取列值的优化方法?

标签 hadoop indexing hbase bigdata

我有一种情况,我只知道hbase中的columnfamily和columnname,我想检索该特定列的所有唯一值,并以最重要的时间填充到我的Web应用程序GUI中。

一种方法是尝试扫描应用colfamily和columnname的方法,这会花费时间并使最终用户等待很长时间。

还有其他有效和高效的方法吗?

如果您能帮助的话会很棒。谢谢

最佳答案

没有任何神奇的方法可以使用户界面快速扫描此数据。它需要从磁盘中提取列族中的所有数据,以获取所需的信息。从hbase以任何形式的交互方式获取的唯一东西几乎都是特定的行键获取或很小的范围扫描。

以下是一些高级方法:

  • 您是否关心延迟/更新?使用MapReduce作业或扫描每20分钟重新计算一次唯一列表,并将结果存储在某个地方的文本文件中。
  • 使用协处理器确定每个区域的唯一列表,然后在客户端中将唯一列表聚合到一个唯一列表中。这可能仍然太慢,但是如果有大量重复项并且网络已经饱和,它将加快扫描速度。
  • 重新考虑如何在hbase中存储数据。与RDBMS不同,我不能随意将索引添加到列中。在模式设计中,您必须考虑如何访问数据,然后在此基础上进行模式设计。您是否要快速获取唯一列表?也许您应该用原始值作为键构建第二个表,然后再使用指针返回原始行键。
  • 您是否可以在单独的系统中跟踪唯一值,从而可以快速获取该信息?
  • 关于hadoop - 从HBASE获取列值的优化方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21283440/

    相关文章:

    hadoop - 如何将文件复制到HDFS?

    MySQL 忽略索引,即使使用使用索引或强制索引

    maven - 带有HBase(版本0.94.18)的Hadoop(版本2.4)的POM条目

    hadoop - 如何在 HBase 集群设置中添加辅助 NameNode?

    hadoop - Hortonworks Ambari 能否管理多个集群

    hadoop - 使用Serde在Hive-0.14中进行简单的JSON文件分析

    java - 索引越界异常错误

    hadoop - 从hbase表中获取行键时如何应用LIMIT?

    java - 如何开始学习大数据?作为开发人员,我需要专注于哪些模块

    python - IndexError : index 261861 is out of bounds for axis 0 with size 169567