Hbase 列族

2024-04-09

Hbase 文档表示,避免创建超过 2-3 个列族,因为 Hbase 不能很好地处理超过 2-3 个列族。其原因在于压缩和刷新,以及 IO。但是,如果我的所有列总是填充(对于每一行),那么我认为这个推理并不那么重要,因此,考虑到我对列的访问是完全随机的(我想访问列的任意组合) - 我可以有一个列族 - 单列配置(有效地尝试使其成为纯柱状)。

有许多博客/维基对此进行了解释,但它们似乎都相互矛盾并增加了更多的混乱。我只是似乎无法消化Hbase更喜欢一个列族的事实,那么调用列存储有什么意义呢?


目前(尽管这种情况预计会改变),一个区域的所有列族都被刷新在一起。这就是人们说“HBase 不能很好地处理超过 2 或 3 个列族”的主要原因。考虑两个 CF,每个都有一列。 A列:A存储整个网页文本。 B:B 列存储页面中的字数。因此,每次我们刷新 A:A 时(这种情况会更频繁地发生,因为 A:A 的数据要大得多),我们还需要为 B:B 列执行整个单独的文件 I/O 处理路由,即使没有需要——如果 B:B 只持有数字,我可以几个月不冲掉它。

如果将 A 和 B 存储在同一列族(A:A 和 A:B)中,您可能会看到更好的刷新 I/O 性能,并且因为大多数 HBase 读取纯粹来自 memstore,您可能会发现读取速度是相等的。

另外,也许更重要的是,如果列的基数差异很大,那么您的区域服务器将需要为密度较低的列族维护无用的大部分为空的文件。这永远不会改变。

所有这些都可以在HBase书籍 http://hbase.apache.org/book.html#number.of.cfs.

因此,就像在所有此类表演情况下一样,measure在决定什么是“正确”路径之前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hbase 列族 的相关文章

  • Hbase-hadoop集成中datanode、regionserver的作用

    根据我的理解 行被插入到 HBase 表中 并作为区域存储在不同的区域服务器中 因此 区域服务器存储数据 类似地 就 Hadoop 而言 数据存储在 hadoop 集群中的数据节点中 假设我在 Hadoop 1 1 1 之上配置了 HBas
  • 在 Hbase shell 上运行多个查询,无需再次调用 hbase shell

    再次调用 shell 需要时间 我想通过调用 hbase shell 一次来执行多个命令 下面的代码仅运行单个查询 cmd echo put test row1 cf a value1 hbase shell 我想在单个 hbase she
  • 从 HBase shell 导出数据

    我正在尝试将数据从 HBase Shell 导出到我可以解析的文本文件 然后添加到 msysql 数据库 我目前正在使用以下命令 echo scan registration COLUMNS gt registration status h
  • Hbase快速统计行数

    现在我实现了行计数ResultScanner像这样 for Result rs scanner next rs null rs scanner next number 如果数据达到百万次计算量很大 我想实时计算我不想使用Mapreduce
  • Hbase 客户端因 /hbase 错误导致连接丢失

    我快要疯了 安装了Hadoop Hbase 一切都在运行 opt jdk1 6 0 24 bin jps 23261 ThriftServer 22582 QuorumPeerMain 21969 NameNode 23500 Jps 23
  • Spark 使用数据局部性吗?

    我正在尝试了解 Apache Spark 的内部结构 我想知道 Spark 是否使用某些机制来确保从 InputFormat 读取或写入 OutputFormat 或 Spark 本机支持的其他格式而不是从 MapReduce 派生的格式
  • HBase更新操作

    我是HBase新手 我发现HBase客户端API不支持更新操作 那是对的吗 如果是这样 更新特定行键的值的建议最佳实践是什么 您可以使用 PUT 来创建或更新任何单元格的值 你don t需要使用删除 除非您希望新版本不包含某些旧单元格 说我
  • SparkSQL+Hive+Hbase+Hbase集成不起作用

    当我尝试连接配置单元表 正在使用 时出现错误 通过 Hbase 集成创建 在 Spark 中 我遵循的步骤 Hive表创建代码 CREATE TABLE test sample id string name string STORED BY
  • 将 Jar 文件添加到 WEB-INF/lib [重复]

    这个问题在这里已经有答案了 我是 Eclipse Java 和 Linux 的新手 我搜索这个问题 但没有找到答案 我想编写一个操作 HBase 表的程序 所以我有一些与 HBase 相关的 Jar 文件 在普通的 Java 应用程序中 我
  • HBase:复制是如何工作的?

    我目前正在将 HBase 作为数据存储进行评估 但有一个问题没有得到解答 HBase 在许多节点上存储同一对象的许多副本 也称为复制 由于HBase具有所谓的强一致性 相比之下最终一致 它保证每个副本在读取时返回相同的值 据我了解 HBas
  • 如何在 Hive 中访问 HBase 表,反之亦然?

    作为一名开发人员 我通过使用以下命令从现有 MySQL 表导入数据 为我们的项目创建了 HBase 表 sqoop job 问题是我们的数据分析师团队熟悉MySQL语法 意味着他们可以查询HIVE轻松上桌 对于他们 我需要在 HIVE 中公
  • HBase 扫描时出现 java.lang.NoClassDefFoundError

    我正在尝试运行 MapReduce 作业来扫描 HBase 表 目前我使用的是Cloudera 4 4附带的HBase 0 94 6版本 在我的程序中的某个时刻 我使用 Scan 并使用以下命令正确导入它 import org apache
  • Spark 2 的 hbase-spark

    我想要进行全面扫描hbase from Spark 2 using Scala 我没有固定的目录定义 因此库为SHC https github com hortonworks spark shc不是一个选择 我的逻辑选择是使用 hbase
  • 将 protobuf3 与一些依赖于 Java 中的 protobuf2 的库一起使用

    我使用protobuf3来表示我们的数据 虽然我们需要hbase来存储数据 但似乎hbase依赖于protobuf2 当我编写以下行来创建 hbase 表时 admin createTable desc 然后我得到一个例外 NoClassD
  • Titan-1.0.0+Hbase-0.98.20使用java远程模式连接错误

    我正在学习Titan数据库 我已经在本地模式下成功运行了它 现在 我尝试在 Titan 文档中介绍的 远程服务器模式 下使用 Titan 数据库 我的 Titan 版本是 Titan 1 0 0 hadoop1 我的 LAN 中有集群 包括
  • 如何在 HBase 中续订过期的 Kerberos 票证?

    我有一个小型 spring 服务 它提供基本功能 例如从 hbase 表中放入 删除 获取 一切似乎都正常 但有一个问题 启动 Tomcat 服务器 10 小时后 我的 kerberos 票证过期 因此我应该更新它 我尝试对 hbase 使
  • Hbase 列族

    Hbase 文档表示 避免创建超过 2 3 个列族 因为 Hbase 不能很好地处理超过 2 3 个列族 其原因在于压缩和刷新 以及 IO 但是 如果我的所有列总是填充 对于每一行 那么我认为这个推理并不那么重要 因此 考虑到我对列的访问是
  • HBase 作为 Web 应用程序后端

    任何人都可以建议将 HBase 作为基于 Web 的应用程序的主要数据源是否是一个好主意 我主要关心的是 HBase 对查询的响应时间 是否有可能实现亚秒级响应 编辑 有关应用程序本身的更多详细信息 数据量 约500GB文本数据 预计很快将
  • 从 Storm Bolt 将行插入 HBase

    我希望能够从分布式 非本地 Storm 拓扑将新条目写入 HBase 有一些 GitHub 项目提供以下任一功能 HBase 映射器 https github com ptgoetz storm hbase or 预制风暴螺栓 https
  • 获取行 HBase 的特定列族中的列

    我正在编写一个应用程序 通过 JSP 显示 HBase 中特定表中的数据 我想获取一行的特定列族中的所有列 有什么办法可以做到这一点吗 public String getColumnsInColumnFamily Result r Stri

随机推荐