Impala支持的语言和访问方式

描述

Impala 支持哪些语言?尤其是对于C C++的支持
对JDBC ODBC的支持如何?
是否有适用C C++调用的接口?
如果有条件,实际check下

解决

Impala底层由C++编写的,LLVM同一编译运行。
从形式上来说,Java前段,C++处理后端。(通常会说impala是C++实现的所以性能更好,但它的SQL解析部分的确是JAVA实现的)
支持两种语言实现的UDF(用户自定义函数):java和C++;UDAF(用户自定义聚合函数)只能支持C++实现。


Impala支持标准的JDBC接口,允许商业智能工具和用Java或者其他语言写成的客户端软件接入。
端口:21050
驱动

  • HiveJDBC驱动
  • 驱动类名:org.apache.hive.jdbc.HiveDriver
  • connection string:
    无Kerberos验证:jdbc:hive2://host:port/;auth=noSasl
    有Kerberos验证:jdbc:hive2://host:port/;principal=principal_name
    LDAP验证:jdbc:hive2://host:port/db_name;user=ldap_userid;password=ldap_password
  • 添加jar包到CLASSPATH
/*所需JAR包*/
commons-logging-X.X.X.jar
  hadoop-common.jar
  hive-common-X.XX.X-cdhX.X.X.jar
  hive-jdbc-X.XX.X-cdhX.X.X.jar
  hive-metastore-X.XX.X-cdhX.X.X.jar
  hive-service-X.XX.X-cdhX.X.X.jar
  httpclient-X.X.X.jar
  httpcore-X.X.X.jar
  libfb303-X.X.X.jar
  libthrift-X.X.X.jar
  log4j-X.X.XX.jar
  slf4j-api-X.X.X.jar
  slf4j-logXjXX-X.X.X.jar

存放路径(可自定义):/opt/jars/.
在CLASSPATH配置中添加:export CLASSPATH=/opt/jar/*.jar:$CLASSPATH

  • ClouderaJDBC驱动
  • 驱动类名:com.cloudera.impala.jdbc41.Driver
  • connection string:jdbc:impala://Host:Port[/Schema];Property1=Value;Property2=Value;

以上内容来自cloudera官网文档:Configuring Impala to Work with JDBC,点击链接查看更多细节。

第三方产品可以通过ODBC与impala结合使用。

端口

  • 21050:Cloudera ODBC Connector 2.5 和 2.0 版本使用HiveServer2协议,对应impala端口21050
  • 21000:Cloudera ODBC Connector 1.x 版本使用HiveServer1协议,对应impala端口21000

驱动:官网上为不同的产品提供了各种驱动,在选择驱动时推荐用户选择 2.x 版本

以上内容来自cloudera官网文档:Configuring Impala to Work with ODBC,点击链接查看更多细节。


impala可以通过ODBC调用C/C++程序

impala ODBC安装步骤

  1. 安装unixODBC
    yum install unixODBC yum install unixODBC-devel
  2. 安装impala ODBC驱动
  • 下载对应版本的驱动并安装
  • 修改驱动的环境变量
    /etc/profile添加export LD_LIBRARY_PATH=/usr/local/lib:/opt/cloudera/impalaodbc/lib/64
    source /etc/profile使其生效
    拷贝:cloudera.impalaodbc.ini/etc/目录:
    修改:/etc/cloudera.impalaodbc.ini 中的如下条目:
# Generic ODBCInstLib  
#   iODBC  
# ODBCInstLib=libiodbcinst.so   
#   SimbaDM / unixODBC  
ODBCInstLib=libodbcinst.so  
  1. 修改/etc/odbc.ini 文件
    指定驱动、HOST ip、端口等参数
  2. 验证是否安装成功
    isql -v impalaodbc
    安装成功会显示如下内容:
+---------------------------------------+  
| Connected!                            |  
|                                       |  
| sql-statement                         |  
| help [tablename]                      |  
| quit                                  |  
|                                       |  
+---------------------------------------+  

这样配置后,C/C++程序就可以通过unixODBC访问Impala中的数据了。

你可能感兴趣的:(Impala支持的语言和访问方式)