配置Impala支持JDBC
Impala支持JDBC集成。通过使用 JDBC 驱动,你编写的 Java 程序、BI应用、或类似的使用 JDBC 访问不同数据库产品的工具,可以访问 Impala。建立到 Impala 的 JDBC 连接包括以下步骤:
- 指定可用的通讯端口,见配置 JDBC 端口
- 在每台运行 JDBC 应用的机器上安装 JDBC 驱动。见在客户端系统启用 Impala 的 JDBC 支持
- 为 JDBC 应用连接运行 impalad 守护进程的服务器配置连接字符串、以及相应的安全设置。见建立JDBC连接
配置 JDBC 端口
默认的 JDBC 2.0 端口是 21050;Impala 服务器默认通过相同的 21050 端口接收 JDBC 连接。请确认该端口可以与网络中的其他主机通讯,例如,没有被防火墙阻断。假如你的 JDBC 客户端软件使用其他端口连接,当启动 Impalad 时使用 --hs2_port 选项指定其他的端口。参见启动 Impala 了解详细信息。
在客户端启用 Impala JDBC 支持
Impala提供 JDBC 客户端驱动,是一个 JAR 包,存在于一个zip压缩文件里(The Impala JDBC integration is made possible by a client-side JDBC driver, which is contained in JAR files within a zip file)。下载该zip文件到每台需要连接到Impala的客户端机器上。
在运行 JDBC 应用的系统上启用 Impala JDBC支持:
- 下载 到将要连接 Imapla 服务器的客户端机器 Note: For Maven users, see for an example of the dependencies you could add to a pom file instead of downloading the individual JARs.
- 解压zip文件到指定目录。例如:
- Linux上可以解压到/opt/jars/.
- Windows上可以解压到 C:\Program Files 下的子目录
- 为了成功加载 Impala JDBC 驱动,客户端程序必须能正确定位这个 JAR 文件。这通常意味着设置 CLASSPATH 包含该 JAR 文件。查阅文档了解如何为你的 JDBC 客户端安装新的 JDBC 驱动,通常设置CLASSPATH 变量如下:
- Linux上,假如解压 JAR 文件到/opt/jars/,执行以下命令在已有classpath前面添加JAR文件:
export CLASSPATH=/opt/jars/*.jar:$CLASSPATH
- Windows上,使用 System Properties 控制面板修改系统的 Environment Variables 。修改变量包含你解压文件的路径。 注意: 假如在客户端机器上的 CLASSPATH 包含许多旧版本的 Hive JAR 文件,请确保最新的 JAR 文件在是列出的第一个。或者把最新的 JAR 文件放在最前面,或者删掉其他引用的 Hive JAR 文件。
- Linux上,假如解压 JAR 文件到/opt/jars/,执行以下命令在已有classpath前面添加JAR文件:
建立 JDBC 连接
Impala JDBC 驱动类是 org.apache.hive.jdbc.HiveDriver。当你已经配置 Impala 支持 JDBC,你可以在两者之间建立连接。使用连接字符串"jdbc:hive2://host:port/;auth=noSasl",为集群建立不需要 Kerberos 认证的连接。例如:
jdbc:hive2://myhost.example.com:21050/;auth=noSasl
使用连接字符串"jdbc:hive2://host:port/;principal=principal_name",建立需要 Kerberos 认证的连接。最重要是使用与启动 Impala 相同的用户建立连接(The principal must be the same user principal you used when starting Impala)。例如:
jdbc:hive2://myhost.example.com:21050/;principal=impala/myhost.example.com@H2.EXAMPLE.COM