gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 15:56:35 26 4
gpt4 key购买 nike

  • 我正试图将超过 100 亿条记录转储到 hbase 中,这将平均每天增长1000万,然后尝试一个完整的表扫描记录。我知道对 hdfs 进行全面扫描会比hbase快。
  • Hbase 用于对不同的数据进行排序在高清文件系统上。该应用程序正在使用 spark 构建。
  • 数据被批量加载到 hbase 中。由于各种 2G 限制,区域大小从 3G 的初始测试减少到 1.2G(仍然需要更详细的调查)。
  • 扫描缓存为 1000 且缓存 block 关闭
  • hbase 总大小在 6TB 范围内,在 5 个区域服务器(节点)上产生数千个区域。 (建议低百)。
  • Spark 作业基本上运行每一行,然后根据范围内的列计算某些内容。
  • 使用内部使用 TableInputFormat 的 spark-on-hbase,作业在大约 7.5 小时内运行。
  • 为了绕过区域服务器,创建了一个快照并改为使用 TableSnapshotInputFormat。该工作在大约 5.5 小时内完成。

问题

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

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

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

最佳答案

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

关于hadoop - hbase 跳过区域服务器直接从 hfile 读取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42945093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com