hbase 跳过区域服务器直接从 hfile 读取行

hbase skip region server to read rows directly from hfile

问题

  1. 从 hbase 读取到 spark 时,区域似乎决定了 spark-partition 和 2G 限制。 因此问题 缓存 这是否意味着区域大小需要较小?

  2. 绕过区域服务器的TableSnapshotInputFormat 直接从快照中读取,还按区域创建它 所以还是会落入上面的region size问题。这是 可以直接从 hfiles 中读取键值,在这种情况下 拆分大小由 hdfs 块大小决定。有没有 可以读取一行的扫描仪或其他实用程序的实现 直接来自 hfile(具体来自快照引用的 hfile)?

  3. 是否有任何其他指示说明可能有助于提高性能的配置?例如 hdfs 块大小等?主要用例大部分是完整 table 扫描。

事实证明,这实际上非常快。性能分析表明,问题在于 ip 地址的对象表示之一,即 InetAddress 花费了大量时间来解析 ip 地址。我们决定使用原始字节来提取我们需要的任何东西。这本身使工作在大约 2.5 小时内完成。 将问题建模为 Map Reduce 问题和具有上述相同更改的 MR2 上的 运行 表明它可以在大约 1 小时 20 分钟内完成。 迭代性质和更小的内存占用帮助 MR2 实现更多的并行性,因此速度更快。