You need to enable JavaScript to run this app.
导航

Impala 连接方式

最近更新时间2023.11.27 14:22:06

首次发布时间2022.10.24 14:21:05

本文为您介绍几种连接 Impala 的方式。

1 使用前提

  1. 已创建包含 Impala 组件服务的 E-MapReduce(EMR)集群,详情请参见 创建集群

  2. 目前 Impala 组件是白名单开放,您可通过 创建工单 的方式,申请使用。

2 使用 impala-shell 连接 Impala

使用 impala-shell 连接 Impala,详情可参看:impala-shell 工具

3 使用 JDBC 连接 Impala

可以使用 Hive 的 JDBC Driver 连接 Impala。

  1. 添加 Hive JDBC Driver 依赖
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.3.9</version>
</dependency>
  1. 获取 Impala 的链接
package com.example;

import java.sql.*;

public class App 
{
    public static void main( String[] args ) throws Exception {
        String driverName = "org.apache.hive.jdbc.HiveDriver";
        Class.forName(driverName);

        // 1. 如果 impala 开启了 LDAP 认证,还需要提供用户名密码 
        // 2. Connection conn = DriverManager.getConnection("jdbc:hive2://<Impala 所部署的节点>:21050/;auth=noSasl");

        Connection conn = DriverManager.getConnection("jdbc:hive2://180.xxx.xx.xx:21050/default;auth=noSasl");

        Statement stmt = conn.createStatement();
        stmt.executeUpdate("drop table if exists my_table");
        stmt.close();

        stmt = conn.createStatement();
        stmt.executeUpdate("CREATE TABLE my_table ( id INT) STORED AS PARQUET");
        stmt.close();

        stmt = conn.createStatement();
        stmt.executeUpdate("insert into my_table values(1)");
        stmt.close();

        stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("select * from my_table");

        while (rs.next()) {
            System.out.println("id=" + rs.getLong("id"));
        }

        rs.close();
        stmt.close();
        conn.close();
    }
}

4 本地使用工具连接 Impala

下文描述了在本地如何使用数据库工具连接云上的 Impala。

4.1 开启公网访问

  1. 登录 EMR 控制台

  2. 在左侧导航栏中,选择并进入 集群列表 > 集群名称 > 服务列表 > Impala 界面。

  3. 展开部署拓扑中,单击 Statestored 所在的 ECS 实例,进入 ECS 实例详情页界面。

  4. 在 ECS 的实例详情页进行 公网 IP 的绑定。详见:绑定公网IP

  5. 为集群 master-1 节点绑定公网 IP 后,并记录该公网 IP 地址。

  6. 在 master-1 的 ECS 实例详情页,上方点击 【安全组】页签,进入修改安全组的访问规则页面。

  7. 点击左侧 操作 栏中的【配置规则】,进入安全组列表页面。

  8. 点击 访问规则 > 入方向规则 > 添加规则,添加本地机器的 IP 地址(可以通过 该连接 查看),和 21050 的端口范围。

  9. 点击 确认 按钮,完成安全组添加。

4.2 使用数据库工具连接 Impala

下文以 DBeaver 为例介绍如何连接 Impala。
编辑连接配置

其中:

  • JDBC URL:jdbc:hive2://xxx.xx.xx.xx(公网IP):21050

  • 主机:为 master-1 的公网 IP。

  • 端口:21050。

  • 驱动属性添加 auth=noSasl

连接后,我们可以看到相应的 Impala 数据库信息。