首先选择节点,Impala Daemon(守护进程)的作用是接收来自HUE、shell、jdbc等的连接,分配计算任务并汇总结果返回。连接Impala的节点就选Impala Daemon节点。
impala的主流连接方式有两种,一种是impala的专用jdbc,需要下载ImpalaJDBC41.jar(官网下载要填各种信息,有点麻烦),另一种是只需hive的pom依赖,改动端口和添加认证方式即可:
hive的pom依赖:
- <!--</dependency>-->
- <dependency>
- <groupId>org.apache.hive</groupId>
- <artifactId>hive-jdbc</artifactId>
- <version>1.1.0</version>
- </dependency>
认证方式:
;auth=noSasl
核心代码:
- Class.forName("org.apache.hive.jdbc.HiveDriver");
- connect = DriverManager.getConnection("jdbc:hive2://ip:21050/数据库名;auth=noSasl");
- //使用impala先刷新元数据
- state = connect.prepareStatement("refresh wz.test");
需要注意的是,来自hive的更新并不会被impala侦听到,当hive操作引起元数据变化时,需要进行相应的元数据刷新操作。
刷新分两种,表结构的刷新和数据增删改的刷新(分别是INVALIDATE METADATA和REFRESH操作),其对资源的占用也相差较大,具体请自行参考网上的其他文章。
其余部分与常规jdbc相同