Hadoop、HBase 和 Hive 中的性能问题
Performance Issue in Hadoop,HBase & Hive
我正在研究将数据从 SQL 数据库迁移到 Hadoop,其中我也使用了 HBase 和 Hadoop。我已成功将我的数据从 SQL 数据库导入到 Hadoop、HBase 和 Hive。但问题是系统的性能。我在 SQL Db 中在 5-10 分钟内获得了数百万个条目的结果,但是从 HBase 和 Hive 中获取 1000 万个数据大约需要 1 小时。任何人都可以帮助我提高我的 Hadoop 系统的性能。
HBase 中的数据仅 'indexed' 按行键。如果您在 Hive 中查询 rowkey 前缀以外的任何内容,您通常会执行完整的 table 扫描。
可以使用 HBase 过滤器进行一些优化,例如,当使用 FamilyFilter 时,您可以跳过整个区域,但我怀疑 Hive 是否会这样做。
如何提高性能取决于您的数据是如何形成的以及您需要对其执行哪些分析。在执行频繁的临时分析时,通过将数据从 HBase 导出到 HDFS 上的 Parquet 文件和 运行 对那些使用 Hive(或 Drill 或 Spark、Imapala 等)的分析可能会更好。
我正在研究将数据从 SQL 数据库迁移到 Hadoop,其中我也使用了 HBase 和 Hadoop。我已成功将我的数据从 SQL 数据库导入到 Hadoop、HBase 和 Hive。但问题是系统的性能。我在 SQL Db 中在 5-10 分钟内获得了数百万个条目的结果,但是从 HBase 和 Hive 中获取 1000 万个数据大约需要 1 小时。任何人都可以帮助我提高我的 Hadoop 系统的性能。
HBase 中的数据仅 'indexed' 按行键。如果您在 Hive 中查询 rowkey 前缀以外的任何内容,您通常会执行完整的 table 扫描。
可以使用 HBase 过滤器进行一些优化,例如,当使用 FamilyFilter 时,您可以跳过整个区域,但我怀疑 Hive 是否会这样做。
如何提高性能取决于您的数据是如何形成的以及您需要对其执行哪些分析。在执行频繁的临时分析时,通过将数据从 HBase 导出到 HDFS 上的 Parquet 文件和 运行 对那些使用 Hive(或 Drill 或 Spark、Imapala 等)的分析可能会更好。