我正在努力将数据从SQL数据库迁移到Hadoop,我在其中使用了HBase& Hadoop也是如此。我已成功将我的数据从SQL db导入Hadoop,HBase和Hive。但问题是系统的性能。我在SQL Db中在5到10分钟内得到了数百万条目的结果,但从HBase&获取1000万条数据需要大约1小时。蜂巢。任何人都可以帮助我提高我的Hadoop系统的性能。
答案 0 :(得分:0)
HBase中的数据仅被编入索引'通过rowkey。如果您在Hive中查询除rowkey前缀之外的任何内容,您通常会执行全表扫描。
可以使用HBase过滤器进行一些优化,例如,在使用FamilyFilter时,您可以跳过整个区域,但我怀疑Hive正在这样做。
如何提高性能取决于数据的形成方式以及需要对其执行的分析。在进行频繁的临时分析时,可以通过将HBase中的数据导出到HDFS上的Parquet文件以及对Hive(或Drill或Spark,Imapala等)的分析来运行分析,从而提供更好的服务。