--=======================
使用impala-shell 登錄
--=======================
impala-shell --auth_creds_ok_in_clear -l -i ip_address -u user_name
--=======================
JDBC driver
--=======================
Impala 官方jdbc driver有一些bug很致命的bug, 比如Insert 中文字符, 只能將前面一小段插入到數據庫中, 應該是沒有考慮中文字符長度不同於ascii碼, 性能也比Hive Jdbc driver差, 至少, impala 2.5.43.1063版本測試是這樣的. 所以, 推薦使用 hive2 jdbc driver去連接impala, 比如使用cdh5.10的 hive-jdbc-1.1.0-cdh5.10.0, 當然 jdbc url 應該還是 impala jdbc url的寫法, 使用 需要說明的是, Kettle 的 Output組件使用Hive driver時候, 必須列出目標表全部的字段, 而且字段的順序必須按照建表語句的順序, 否則會報錯.
impala jdbc url 的寫法:
需要密碼的jdbc url寫法(test為默認數據庫)
jdbc:impala://ip_address:21050/test;AuthMech=3;SSL=0
免密碼的jdbc url寫法(test為默認數據庫)
jdbc:impala://ip_address:21050/test;AuthMech=0;SSL=0
在配置過程中碰到了好幾個錯誤, [Simba]ImpalaJDBCDriver Error setting/closing session: {0}. 需要注意的是端口 和 jdbc 參數 AuthMech 和 SSL.
--=======================
impala JDBC 查詢GUI工具
--=======================
dbeaver: 可以通過hive/impala driver 連接 impala, 當然推薦 hive driver.
DBVisualizer 9: 暫時還不能使用impala jdbc連接, 但可以通過hive jdbc連接.
Kettle 7.1, 可以通過hive/impala driver 連接 impala, 當然推薦 hive driver. 確保將所有相關的jar 復制到目錄 pdi-ce-7.1.0.0-12\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh510\lib 中.
也可以這些查詢工具或Kettle上為jdbc connectionjdbc設置下面經常使用的參數:
set request_pool=etl; -- 設置使用 etl 資源池
set mem_limit=-1; -- 取消內存限制
set mem_limit=10G; -- 設置工具級別的內存10G(單節點上的內存量)
--=======================
impala 常用命令
--=======================
show databases; --查看所有schema;
show tables; --查看默認schema下的表
show tables in schema_name; --查看指定schema下的表
show tables in schema_name like 'dim'; --在指定schema 下查看dim表;
use schema_name; --進入指定的schema_name
desc table_name; --查看指定表的表字段;
create database some_schema; --創建一個schema
show create table some_schema.some_table; --顯示建表語句
SHOW TABLE STATS table_name ; -- 顯示一個表的統計信息
COMPUTE STATS table_name; --對表收集統計信息
SHOW PARTITIONS [database_name.]table_name ; -- 顯示partition
SHOW RANGE PARTITIONS [database_name.]table_name ; -- 顯示range partition
show files in table_name ; -- 顯示指定表后台的數據文件
SHOW ROLES ; -- 顯示impala中的角色
SHOW CURRENT ROLES ; -- 顯示當前用戶的角色
impala session 級別設置:
set request_pool=etl; -- 設置使用 etl 資源池
set mem_limit=-1; -- 取消內存限制
set mem_limit=10G; -- 設置內存10G(單節點上的內存量), impala 經常會over estimate SQL語句需要的資源, 所以強烈建議在執行SQL之前, 使用 set mem_limit 限制SQL的內存消耗, 一個查詢可以使用的最大內存為MEM_LIMIT * 節點數
--=======================
impala 默認的連接端口:
--=======================
port:21000, for impala-shell and ODBC driver 1.2.
port:21050, for JDBC and for ODBC driver 2.
其他服務端口見 https://www.cloudera.com/documentation/enterprise/5-7-x/topics/impala_ports.html
--=======================
jdbc連接常見錯誤
--=======================
更多內容參考 jdbc 安裝包中的說明文檔: Cloudera-JDBC-Driver-for-Impala-Install-Guide.pdf
java 程序的連接字符串示例 jdbc:impala://node1.example.com:21050/default2;AuthMech=3;UID=cloudera;PWD=cloudera
AuthMech 參數
Set the value to one of the following numbers:
- 0 for No Authentication
- 1 for Kerberos
- 2 for User Name
- 3 for User Name and Password
SSL 參數
- 0, not connect to SSL-enabled sockets.
- 1, through an SSL-enabled socket.