CHD的impala实现hive和hbase数据查询
cdh版本安装spark-sql比较复杂,cdh主推impala,可以方便进行查询
启动命令:impala-shell
可以直接进行hive操作。
impala查询hbase,需要进行映射
CREATE EXTERNAL TABLE tiger.test_info(--指定库名和表名
user_id string, --字段
user_type tinyint,--字段
gender string,--字段
birthday 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:user_type, info:gender, info:birthday")--映射关系,主键以及其他字段
TBLPROPERTIES("hbase.table.name" = "test_info");--指定hbase表名
然后在impala执行,INVALIDATE METADATA;同步元数据,即可进行查询。
impala jdbc:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ImpalaJDBC {
private static final String SQL_STATEMENT = "SELECT * FROM tiger.test_info ";
private static final String IMPALAD_HOST = "172.**.**.**";
private static final String IMPALAD_JDBC_PORT = "21050";
private static final String CONNECTION_URL = "jdbc:hive2://" + IMPALAD_HOST + ':' + IMPALAD_JDBC_PORT + "/;auth=noSasl";
private static final String JDBC_DRIVER_NAME = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) {
System.out.println("Cloudera Impala JDBC Example");
System.out.println("Using Connection URL: " + CONNECTION_URL);
System.out.println("Running Query: " + SQL_STATEMENT);
Connection con = null;
try {
Class.forName(JDBC_DRIVER_NAME);
con = DriverManager.getConnection(CONNECTION_URL,"liupeijin","");--用户名
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL_STATEMENT);
System.out.println("Begin Query Results");
while (rs.next()) {
System.out.println(rs.getString(1));
}
System.out.println("End Query Results");
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (Exception e) {
}
}
}
上一篇: impala-count()报错换用NDV()函数
下一篇: 趣味数学--贷款计算(图形化界面版)
推荐阅读
-
mysql查询每小时数据和上小时数据的差值实现思路详解
-
impala实现HBase数据查询
-
六七, Hive 数据查询实操, 以及Hive的分区和分桶
-
Python利用sqlite实现对数据库的增删改和查询等基本操作
-
使用 Mybatis 实现数据库的增删改查、Map和模糊查询
-
hbase组合hive和sqoop实现导数据到mysql
-
mysql查询每小时数据和上小时数据的差值实现思路详解
-
使用 Mybatis 实现数据库的增删改查、Map和模糊查询
-
怎么实现每个学生在登入后 怎么通过数据库查询name字段来对应各自的$_COOKIE['name']然后循环输出各自姓名和年龄
-
怎么实现每个学生在登入后 怎么通过数据库查询name字段来对应各自的$_COOKIE['name']然后循环输出各自姓名和年龄