使用 Cloudera Hive Jdbc 查詢 Hive 資料
阿新 • • 發佈:2018-11-02
簡述
專案中一些資料需要從Hive中查詢,由於官方的Jdbc驅動包太大,所以選擇了Cloudera的驅動。之後選用其他工具實現相關邏輯,不再直接從Hive中取資料,這裡簡單記錄一下相關配置。
引入工具包示例
將需要的jar包引入,此處使用maven
<!-- ↓↓ local ↓↓ -->
<dependency>
<groupId>local</groupId>
<artifactId>hive_metastore</artifactId>
<version>0.0</version >
<scope>system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/hive_metastore.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>hive_service</artifactId>
<version>0.0</version>
<scope >system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/hive_service.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>HiveJDBC</artifactId>
<version>0.0</version>
<scope>system</scope >
<systemPath>${basedir}/lib/cloudera-hive-jdbc/HiveJDBC41.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>TCLIServiceClient</artifactId>
<version>0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/TCLIServiceClient.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>zookeeper</artifactId>
<version>0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/zookeeper-3.4.6.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>ql</artifactId>
<version>0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/ql.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>libfb303</artifactId>
<version>0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/libfb303-0.9.0.jar</systemPath>
</dependency>
<dependency>
<groupId>local</groupId>
<artifactId>libthrift</artifactId>
<version>0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/cloudera-hive-jdbc/libthrift-0.9.0.jar</systemPath>
</dependency>
<!-- ↑↑ local ↑↑ -->
配置資料來源示例
# hive 資料來源配置
# spring.datasource.hive.type=com.cloudera.hive.jdbc41.HS2DataSource
# spring.datasource.hive.driver-class-name=com.cloudera.hive.jdbc41.HS2Driver
spring.datasource.hive.url=jdbc:hive2://192.168.192.128:10000/amber_kylin_test;AuthMech=3;UID=hadoop;PWD=mm
@Bean(name = HIVE_DATASOURCE)
public DataSource hiveDS(){
logger.info("create hive datasource.");
HS2DataSource ds = new HS2DataSource();
ds.setURL(hiveDsUrl);
return ds;
}
Hadoop 配置示例(core-site.xml)
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
啟動相關 Hive 服務
nohup hive --service metastore &
nohup hive --service hiveserver2 &
參考
1.Download Hive JDBC Driver 2.5.4
2.hiveserver2-failed-to-open-new-session-in-beeline