我在Spark节点和HBase节点之间遇到高延迟。 我目前的资源要求我在不同的服务器上运行HBase和Spark。
使用Snappy算法压缩HFile,将每个区域的数据大小从50GB减少到10GB。
尽管如此,在线上传输的数据总是被解压缩,因此读取需要花费大量时间 - 大约每秒20 MB ,每个50GB 约45分钟区域。
我可以做些什么来加快数据阅读速度? (或者,HBase目前的吞吐量是否很高?)
我正在考虑将HBase HFiles本地克隆到Spark机器,而不是连续地从HBase请求数据。有可能吗?
解决此类问题的最佳做法是什么?
由于
答案 0 :(得分:1)
你正在思考正确的方向。您可以将HFile复制到运行spark的HDFS群集(或机器)。这将导致节省减压并减少通过线路的数据传输。您需要从Snappy压缩中读取HFiles并编写解析器以进行读取。
或者,如果您不需要Hbase中的所有数据,则可以应用Column和ColumnFamily过滤器。