1. 程式人生 > >使用 Cloudera Hive Jdbc 查詢 Hive 資料

使用 Cloudera Hive Jdbc 查詢 Hive 資料

簡述

專案中一些資料需要從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