我试图在我的PostgreSQL数据仓库和新创建的Hive数据仓库上使用相同的数据和相同的表结构来比较相同的功能。我试图了解Hive的好处,但是......尽管数据加载到PostgreSQL运行速度慢3倍 - PostgreSQL上的索引创建/重建速度提高了20倍,索引不需要每次重建都像蜂巢。 我的问题是:我在Hive配置中缺少什么?
我的设置是: CREATE TABLE mytable ( aa int, bb字符串 ) 由'\ t'终止的行格式删除字段 LOCATION'/ data / spaces / hadoop / hadoopfs';
LOAD DATA LOCAL INPATH'/ data / Informix94 / spaces / postgres / myfile_big'OVERWRITE INTO TABLE mytable;
CREATE INDEX mytable_indx ON TABLE mytable(aa)AS'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'with DEFERRED REBUILD LOCATION'/ data / spaces / hadoop / hadoopfs';
set hive.optimize.autoindex = true; set hive.optimize.index.filter = true;
alter index mytable_indx on mytable rebuild;
My Box是带有3 G ram的VM,其上运行PostgreSQL并占用~1 G ram。他担任元数据存储。我使用的是最新的稳定版CentOS,Hadoop,Hive并没有更改Hive默认设置,除了matadata存储位置和统计信息禁用。
结果: index rebuild在260.000.000行上花费4798秒,在5.000.000行上花费80秒。
答案 0 :(得分:0)
只有当您的数据不再适合单台计算机时,Hive才能正常运行。因此,您看到的结果是预期的结果。因此,一旦您收集了Terabytes或Petabytes数据,您就会对蜂巢更加满意。在用例中,你描述PostgreSQL会更好地匹配。