如何监控impala的数据_Impala使用笔记(一)

本文详述了一种将数据从MySQL导入HBase,并在Cloudera5.3.0环境下进行Impala与HBase整合的测试方法。测试步骤包括使用sqoop导入数据、创建Hive外部表、同步Impala元数据,以及执行查询操作。虽然受限于硬件资源,未能进行大规模数据的性能测试,但提供了测试思路供参考。
摘要由CSDN通过智能技术生成

Impala与HBase整合测试

说明:

1、测试思路:

使用sqoop将测试数据从关系数据库mysql导入到hbase中;接着进行Impala与HBase的整合测试;最后,如果环境允许,对比关系型数据库进行性能测试。

2、测试环境:

Cloudera5.3.0版本

IP地址主机名说明

172.16.30.2h1监控节点、mysql数据库

172.16.30.3h2NAMENODE、Hive、HBase等服务

172.16.30.4h3Sqoop、Impala服务

数据准备:

1、创建数据库bigdata

2、创建测试表

客户基本信息表:

客户交易明细表:

测试数据:

3、使用sqoop将数据从关系数据库(mysql)加载到HBase

sqoop import --connect jdbc:mysql://h1:3306/bigdata--username root --password mysql -m 1 --table custom_info --hbase-create-table--hbase-table custom_info --column-family customInfo --hbase-row-key custom_id

注意:

1、如果没有操作hdfs的权限,添加环境变量HADOOP_USER_NAME=hdfs到/etc/profile

2、Rowkey不能为null;如果rowkey有重复,加载到HBase中只有一条记录

整合过程:

使用HBase中已创建的表(custom_info、custom_trans)

1、在Hive中创建外部表

WITHSERDEPROPERTIES选项中指定Hive外部表字段到HBase列的映射,其中“:key”对应于HBase中的RowKey,名称为“user_id”,其余的就是列簇info中的列名。最后在TBLPROPERTIES中指定了HBase中要进行映射的表名。

注意:由于在使用sqoop创建hbase表名为大写,创建外部表默认只识别小写表名,导致报错!包括列族的大小写!

2、在Impala中同步元数据

Impala共享Hive的Metastore,这时需要同步元数据,可以通过在Impala Shell中执行同步命令。

3、在Impala中查看HBase中表信息:

4、查询HBase中的数据:

selectb.custom_id,b.custom_name,b.custom_code,b.sex,b.addr,sum(cast(a.trans_amt asDOUBLE)) from custom_trans a left join custom_info b on a.custom_id=b.custom_idgroup by b.custom_id,b.custom_name,b.custom_code,b.sex,b.addr;

注意:hive有隐式转换的功能,可以直接sum(string字段)(如果是数字型的值),impala的话需要手动cast

由于Mysql中数据库字符集的设置,导致这里的查询出现乱码。

OK,通过上面几步就可以使用Impala查询HBase中的表了。

性能测试

由于个人PC资源限制(8GB内存、128GB SSD),无法测试在数据量大的情况下,Impala与关系数据库的性能对比,以及Impala与Spark的性能对比。后续将简单给出测试思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值