006-impala 数据处理&impala 和 HBase整合&JDBC方式访问Impala
2015-10-12 16:19
525 查看
一、数据文件处理
加载数据:
1、insert语句:插入数据时每条数据产生一个数据文件,不建议用此方式加载批量数据
2、load data方式:再进行批量插入时使用这种方式比较合适
3、来自中间表:此种方式使用于从一个小文件较多的大表中读取文件并写入新的表生产少量的数据文件。也可以通过此种方式进行格式转换。
空值处理:
impala将“\n”表示为NULL,在结合sqoop使用是注意做相应的空字段过滤,
也可以使用以下方式进行处理:
alter table name set tblproperties (“serialization.null.format”=“null”)
二、Impala可以通过Hive外部表方式和HBase进行整合
步骤如下:
步骤1:创建hbase 表,向表中添加数据
create 'test_info', 'info'
put 'test_info','1','info:name','zhangsan’
put 'test_info','2','info:name','lisi'
步骤2:创建hive表
CREATE EXTERNAL TABLE test_info(key string,name string )
ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,info:name")
TBLPROPERTIES
("hbase.table.name" = "test_info");
步骤3:刷新Impala表
invalidate metadata
参考文章: http://shiyanjun.cn/archives/526.html
三、Impala JDBC 访问
配置:
impala.driver=org.apache.hive.jdbc.HiveDriver
impala.url=jdbc:hive2://119.90.51.196:21050/;auth=noSasl
impala.username=
impala.password=
提示:
尽量使用PreparedStatement执行SQL语句,原因如下:
1.性能上PreparedStatement要好于Statement
2.Statement存在查询不出数据的情况
加载数据:
1、insert语句:插入数据时每条数据产生一个数据文件,不建议用此方式加载批量数据
2、load data方式:再进行批量插入时使用这种方式比较合适
3、来自中间表:此种方式使用于从一个小文件较多的大表中读取文件并写入新的表生产少量的数据文件。也可以通过此种方式进行格式转换。
空值处理:
impala将“\n”表示为NULL,在结合sqoop使用是注意做相应的空字段过滤,
也可以使用以下方式进行处理:
alter table name set tblproperties (“serialization.null.format”=“null”)
二、Impala可以通过Hive外部表方式和HBase进行整合
步骤如下:
步骤1:创建hbase 表,向表中添加数据
create 'test_info', 'info'
put 'test_info','1','info:name','zhangsan’
put 'test_info','2','info:name','lisi'
步骤2:创建hive表
CREATE EXTERNAL TABLE test_info(key string,name string )
ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,info:name")
TBLPROPERTIES
("hbase.table.name" = "test_info");
步骤3:刷新Impala表
invalidate metadata
参考文章: http://shiyanjun.cn/archives/526.html
三、Impala JDBC 访问
配置:
impala.driver=org.apache.hive.jdbc.HiveDriver
impala.url=jdbc:hive2://119.90.51.196:21050/;auth=noSasl
impala.username=
impala.password=
提示:
尽量使用PreparedStatement执行SQL语句,原因如下:
1.性能上PreparedStatement要好于Statement
2.Statement存在查询不出数据的情况
package impala; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * * @author shenfl * */ public class TestJDBC { public static void main(String[] args) throws Exception { Class.forName("org.apache.hive.jdbc.HiveDriver"); Connection conn = DriverManager.getConnection("jdbc:hive2://119.90.51.195:21050/;auth=noSasl","" ,"" ); PreparedStatement pstm = conn.prepareStatement("select count(*) from impala.bigdata limit 1"); ResultSet rs = pstm .executeQuery(); while(rs .next()){ System. out.println(rs .getString(1)); } rs.close(); pstm.close(); conn.close(); } }
相关文章推荐
- windows主机mysql忘记密码如何重置
- 校验和算法
- wxpython的binder问题
- 迭代器
- 第六周 项目3 括号的匹配
- 第七周项目二~~链队算法库
- Linux基础(三)TCP链接数量
- 51nod 1046 A^B Mod C (快速幂)
- 二叉树
- CollectionUtils 判断空 和 join分隔符
- Python基础
- UITableView 多选删除功能 IOS
- 第九章、信息与通信技术系统
- UIPickerView
- UVA-1613 K-Graph Oddity (着色问题)
- Calendar使用
- 关于数据库中的BigInt的映射问题
- C++ Builder 利用Rtti访问对象中的字段值
- spring boot 起步-原型实例
- 如何将decimal转换为dbnull