我正在运行一个简单的连接查询
select count(*) from t1 join t2 on t1.sno=t2.sno
表 t1 和 t2 都有 2000 万条记录,列 sno 是字符串数据类型。
表数据以 rcfile 格式从 Amazon s3 导入 HDFS。15 个 Amazon 大型实例的查询耗时 109 秒,但在 16 GB RAM 和 16 个 cpu 内核的 sql server 上耗时 42 秒。
我错过了什么吗?不明白为什么我在亚马逊上的表现会变慢?
我正在运行一个简单的连接查询
select count(*) from t1 join t2 on t1.sno=t2.sno
表 t1 和 t2 都有 2000 万条记录,列 sno 是字符串数据类型。
表数据以 rcfile 格式从 Amazon s3 导入 HDFS。15 个 Amazon 大型实例的查询耗时 109 秒,但在 16 GB RAM 和 16 个 cpu 内核的 sql server 上耗时 42 秒。
我错过了什么吗?不明白为什么我在亚马逊上的表现会变慢?
一些有助于调整 Hadoop 性能的问题:
sql-server 可以处理 40 毫米的记录,但是等到你有 20 亿条记录后再看看它是如何工作的。它可能会破裂。我将 hive 更多地视为 Map Reduce 的巧妙包装器,而不是真实数据库的替代品。
同样根据经验,我认为拥有 15 个 c1.mediums 的性能可能与大型机器一样好,如果不是更好的话。老实说,大型机器没有适当的 CPU/内存平衡。