【问题标题】:Reducing the latency between Spark and HBase nodes减少 Spark 和 HBase 节点之间的延迟
【发布时间】:2016-05-06 05:19:12
【问题描述】:

我在 Spark 节点和 HBase 节点之间遇到了高延迟。 我目前拥有的资源需要我在不同的服务器上运行 HBase 和 Spark。

HFiles 使用 Snappy 算法压缩,将每个区域的数据大小从 50GB 减少到 10GB。

尽管如此,通过网络传输的数据始终是解压缩的,因此读取需要很长时间 - 大约 20 MB/秒,即每 50GB 大约需要 45 分钟地区。

我可以做些什么来加快数据读取速度? (或者,HBase 的当前吞吐量是否被认为很高?)

我正在考虑将 HBase HFiles 本地克隆到 Spark 机器,而不是不断地从 HBase 请求数据。有可能吗?

解决此类问题的最佳做法是什么?

谢谢

【问题讨论】:

  • 是从磁盘读取文件需要时间还是通过网络传输数据需要时间?请务必提及硬件/网络配置、集群配置以及您从 Spark 读取 Hbase 数据的方式。
  • 通过网络传输数据需要时间。未从磁盘读取数据。 4 台 16 核 32GB RAM 服务器,10GBps 网络连接,每台服务器托管 16 个 Spark 工作器。集群是 Spark Standalone。使用标准 TableInputFormat 从 HBase 读取。

标签: apache-spark hbase latency


【解决方案1】:

你的想法是正确的。您可以将 HFiles 复制到运行 spark 的 HDFS 集群(或机器)。这将导致节省解压缩并减少通过线路传输的数据。您需要从 Snappy 压缩中读取 HFiles 并编写一个解析器来读取。

如果您不需要来自 Hbase 的所有数据,您也可以应用 Column 和 ColumnFamily 过滤器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2020-06-19
    • 1970-01-01
    • 2018-04-10
    • 2018-04-01
    • 1970-01-01
    相关资源
    最近更新 更多