欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CHD的impala实现hive和hbase数据查询

程序员文章站 2022-03-05 14:33:00
...

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