描述
Impala 支持哪些語言裳瘪?尤其是對于C C++的支持
對JDBC ODBC的支持如何土浸?
是否有適用C C++調(diào)用的接口?
如果有條件彭羹,實際check下
解決
Impala底層由C++編寫的黄伊,LLVM同一編譯運行。
從形式上來說派殷,Java前段还最,C++處理后端。(通常會說impala是C++實現(xiàn)的所以性能更好毡惜,但它的SQL解析部分的確是JAVA實現(xiàn)的)
支持兩種語言實現(xiàn)的UDF(用戶自定義函數(shù)):java和C++拓轻;UDAF(用戶自定義聚合函數(shù))只能支持C++實現(xiàn)。
Impala支持標準的JDBC接口经伙,允許商業(yè)智能工具和用Java或者其他語言寫成的客戶端軟件接入扶叉。
端口:21050
驅(qū)動:
- HiveJDBC驅(qū)動
- 驅(qū)動類名:
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驅(qū)動
- 驅(qū)動類名:
com.cloudera.impala.jdbc41.Driver
- connection string:
jdbc:impala://Host:Port[/Schema];Property1=Value;Property2=Value;
以上內(nèi)容來自cloudera官網(wǎng)文檔:Configuring Impala to Work with JDBC,點擊鏈接查看更多細節(jié)帕膜。
第三方產(chǎn)品可以通過ODBC與impala結(jié)合使用枣氧。
端口:
- 21050:Cloudera ODBC Connector 2.5 和 2.0 版本使用HiveServer2協(xié)議,對應(yīng)impala端口21050
- 21000:Cloudera ODBC Connector 1.x 版本使用HiveServer1協(xié)議,對應(yīng)impala端口21000
驅(qū)動:官網(wǎng)上為不同的產(chǎn)品提供了各種驅(qū)動,在選擇驅(qū)動時推薦用戶選擇 2.x 版本
以上內(nèi)容來自cloudera官網(wǎng)文檔:Configuring Impala to Work with ODBC惜浅,點擊鏈接查看更多細節(jié)。
impala可以通過ODBC調(diào)用C/C++程序
impala ODBC安裝步驟
- 安裝unixODBC
yum install unixODBC yum install unixODBC-devel
- 安裝impala ODBC驅(qū)動
- 下載對應(yīng)版本的驅(qū)動并安裝
- 修改驅(qū)動的環(huán)境變量
/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
- 修改/etc/odbc.ini 文件
指定驅(qū)動尝蠕、HOST ip、端口等參數(shù) - 驗證是否安裝成功
isql -v impalaodbc
安裝成功會顯示如下內(nèi)容:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
這樣配置后,C/C++程序就可以通過unixODBC訪問Impala中的數(shù)據(jù)了。