我遇到spark节点和hbase节点之间的高延迟。当前的资源要求我在不同的服务器上运行hbase和spark。
使用snappy算法对hfiles进行压缩,将每个区域的数据大小从50gb减少到10gb。
然而,传输到有线电视上的数据总是被解压的,所以读取数据需要很多时间——大约每秒20MB,对于每个50gb的区域来说大约需要45分钟。
我能做些什么来加快数据读取速度(或者,hbase当前的吞吐量是否被认为是高的?)
我在考虑将hbase hfiles本地克隆到spark机器,而不是不断地从hbase请求数据。有可能吗?
解决此类问题的最佳做法是什么?
谢谢
1条答案
按热度按时间eqqqjvef1#
你的想法是对的。您可以将hfiles复制到运行spark的hdfs集群(或机器)。这将节省解压并减少通过有线传输的数据。您需要从snappy压缩中读取hfiles并编写一个解析器来读取。
或者,如果不需要hbase中的所有数据,可以应用列和列族筛选器。