6.4 Impala和HBase进行整合,JDBC

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
整合完成,数据就能同步
要点:
1、SQL优化,使用之前调用执行计划
• 2、选择合适的文件格式进行存储
• 3、避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间
表)
• 4、使用合适的分区技术,根据分区粒度测算
• 5、使用compute stats进行表信息搜集
• 6、网络io的优化:
– a.避免把整个数据发送到客户端
– b.尽可能的做条件过滤
– c.使用limit字句
– d.输出文件时,避免使用美化输出
• 7、使用profile输出底层信息计划,在做相应环境优化

package com.sxt.impala;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class impalaClient {
public static void main(String[] args) throws Exception {
Class.forName(" org.apache.hive.jdbc.HiveDriver");
Connection conn = DriverManager.getConnection( "jdbc:hive2://node2:21050/;auth=noSasl", "", "");
PreparedStatement pstm = conn.prepareStatement("select id, name from t_person limit 6");
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1) + " " + rs.getString("name"));
}
rs.close();
pstm.close();
conn.close();
}
}

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/80768674
6.4