--=======================
使用impala-shell 登陸
--=======================
impala-shell --auth_creds_ok_in_clear -l -i ip_address -u user_namehtml
--=======================
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時候, 必須列出目標表所有的字段, 並且字段的順序必須按照建表語句的順序, 不然會報錯.java
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](500151) Error setting/closing session: {0}. 須要注意的是端口 和 jdbc 參數 AuthMech 和 SSL.node
--=======================
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 中.shell
也能夠這些查詢工具或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 ; -- 顯示指定表後臺的數據文件session
SHOW ROLES ; -- 顯示impala中的角色
SHOW CURRENT ROLES ; -- 顯示當前用戶的角色socket
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 * 節點數ide
--=======================
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=clouderaoop
AuthMech 參數
Set the value to one of the following numbers:
SSL 參數