我正在将一个数据从sql数据库迁移到hadoop,在hadoop中我也使用了hbase和hadoop。我已经成功地将数据从sqldb导入hadoop、hbase和hive。但问题是系统的性能。在sqldb中,我在5-10分钟内得到了数百万条条目的结果,但是从hbase&hive获取1000万条数据需要大约1小时。有人能帮我提高hadoop系统的性能吗。
5t7ly7z51#
hbase中的数据仅由rowkey“索引”。如果您在配置单元中查询除rowkey前缀以外的任何内容,通常会执行完整表扫描。hbase过滤器可以进行一些优化,例如,在使用familyfilter时,可以跳过整个区域,但我怀疑hive是否能做到这一点。如何提高性能取决于您的数据是如何形成的,以及您需要对其执行什么样的分析。在执行频繁的即席分析时,最好将hbase中的数据导出到hdfs上的Parquet文件中,并使用hive(或drill或spark、imapala等)运行分析。
1条答案
按热度按时间5t7ly7z51#
hbase中的数据仅由rowkey“索引”。如果您在配置单元中查询除rowkey前缀以外的任何内容,通常会执行完整表扫描。
hbase过滤器可以进行一些优化,例如,在使用familyfilter时,可以跳过整个区域,但我怀疑hive是否能做到这一点。
如何提高性能取决于您的数据是如何形成的,以及您需要对其执行什么样的分析。在执行频繁的即席分析时,最好将hbase中的数据导出到hdfs上的Parquet文件中,并使用hive(或drill或spark、imapala等)运行分析。