Impala、Hive性能简单对比测试
Impala、Hive性能简单对比测试
一、测试环境
操作系统:CentOS6.4
大数据平台:CDH5、Hive、Impala、MapReduce
集群规模:3台服务器,每台64G内存(原谅小气的公司给了如此糟糕的开发环境)
Impala共三几个后台Impalad进程,两个正常,一个失效,如图:
一、HBase加载数据
首先,在HBase中创建一个表,表中列簇为f,有两列dn、fn;
其次,利用Java API在HBase中产生约1000万条测试数据,代码如下:
@SuppressWarnings("static-access")
@Test
public void testPutBasic() {
for (int m = 0; m < 20; m++) {
new Thread() {
@Override
public void run() {
int j = 0;
for (int i = 0; i < 1000000; i++) {
Random random = new Random();
Hashtable<String, String> pColumns = new Hashtable<String, String>();
pColumns.put("dn", "dn" + random.nextInt(100));
pColumns.put("fn", "fn" + random.nextInt(100));
try {
HBaseUtil.postBasic("impala_hbase_test_table",
this.getName() + "a" + j++, "f", pColumns,
null);
} catch (Exception e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
}
}.start();
}
try {
Thread.currentThread().sleep(1000000000l);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} 3、查看HBase数据量,共10643213条,如图:
二、Impala、Hive加载HBase数据
1、Hive使用DataBase hive_hbase,如图:
2、Hive加载HBase数据,执行语句如下:
CREATE EXTERNAL TABLE impala_hbase(
rk string,
dn string,
fn string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, f:dn, f:fn")
TBLPROPERTIES("hbase.table.name" = "impala_hbase_test_table");
执行截图图如下:
验证表是否存在,如图所示:
之前
之后
3、Impala同步Hive元数据,并使用相同DataBase,验证表是否存在,如图:
Impala同步Hive元数据
Impala使用DataBase hive_hbase
元数据同步前
元数据同步后
三、性能对比测试
1、count
执行语句:select count(1) from impala_hbase;
Impala耗时:28.58s
Hive耗时:255.412s
Impala执行截图如下:
Hive执行截图如下:
2、group by
执行语句:select dn,count(1) from impala_hbase group by dn;
Impala耗时:60.13s
Hive耗时:257.453s
Impala执行截图如下:
Hive执行截图如下:
四、注意事项
Impala有个内存阈值的设置,如果该值设置太小,Impala执行大数据量查询时,会受限于内存阈值而无法正确执行,如下:
这个内存阈值在CDH5中Impala安装时默认为256M,将其修改为2G,如图:
很不幸,重启Impala后再次执行group by语句,依然不行,如图所示:
结果执行group by语句成功!
结论:
在以上测试环境中,Impala性能大大优于Hive!
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Impala之加载HBase数据
Impala如何加载HBase数据?本文将为大家进行详细介绍Impala加载HBase数据的步骤。 第一步:HBase创建表(或选择已有表) HBase shell命令行执行命令: create 'impala_hbase_test_table', {NAME => 'f', VERSION => 3, COMPRESSION => 'SNAPPY'} 如图所示: 第二步:HBase表存入数据 利用Java API往HBase写入数据,示例代码如下: int j = 0; for (int i = 0; i < 10000; i++) { Random random = new Random(); Hashtable<String, String> pColumns = new Hashtable<String, String>(); pColumns.put("dn", "dn" + random.nextInt(100)); pColumns.put("fn", "fn" + random.nex...
-
下一篇
CDH5之Exhausted available authentication methods
1.机器环境: 前几天,要在阿里环境装两套CDH的产品环境,其中一套CDH5在安装过程就抛错" Exhausted available authentication methods " 其中的抛错的机器是运维从stage环境机器上,copy的镜像做的新的机器。 2.在哪步出错: 在安装CDH5过程中,输完hadoop用户和密码的下一步(集群安装),web开始刷新数据源抛错: Exhausted available authentication methods #由于当时没有截图,事后在某贴上找的图片 3.解决方案: a.检查hadoop用户是否配置sudo无密码权限成功??? 点击(此处)折叠或打开 [root@alish1-xxx-01 ~]# adduser hadoop [root@alish1-xxx-01 ~]# passwd hadoop Changing password for user hadoop. New password: BAD PASSWORD: it is too short BAD PASSWORD: is too simple Retype new p...
相关文章
文章评论
共有0条评论来说两句吧...

微信收款码
支付宝收款码