Hive 使用Jdbc連接進(jìn)行連接

之前在學(xué)習(xí)hive時,一直是通過命令行進(jìn)行相關(guān)操作,但是,稍稍有些不方便,因此就想著學(xué)習(xí)通過Java直接訪問Hive數(shù)據(jù)庫,特此寫了這篇文章,記錄一下,方便今后查閱和復(fù)習(xí)。

一、 配置文件

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>

  <property>
    <name>hive.cli.print.header</name>
    <value>true</value>
    <description>password to use against metastore database</description>
  </property>
  <property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
    <description>password to use against metastore database</description>
  </property>
   <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
        <description>TCP 的監(jiān)聽端口,默認(rèn)為10000。 Port number of HiveServer2 Thrift interface.
        Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description>
  </property>

  <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>0.0.0.0</value>
        <description>host設(shè)置成0.0.0.0,來接收未知來源的ip  
          Bind host on which to run the HiveServer2 Thrift interface.
          Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST
        </description>
  </property>

二、 啟動服務(wù)

./bin/hive --service metastore &
./bin/hive --service hiveserver2 &

三、 添加maven依賴

Note:我是用的是cloudera :cdh5.14.0版本,大家在參考時,請根據(jù)自己實際使用情況進(jìn)行相關(guān)更改<version>xxx</version>

<dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.0-cdh5.14.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.0-cdh5.14.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>2.6.0-cdh5.14.0</version>
        </dependency>
        <!-- hive -->
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-cli</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-common</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-metastore</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-service</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
    </dependencies>

四、 Java連接Hive創(chuàng)建數(shù)據(jù)庫

package hive;

import java.sql.*;

public class HiveCreateDb {
//    下面是使用hiveserver進(jìn)行連接
//    private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
//    https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-JDBC


//    本例是使用hiveserver2進(jìn)行連接,若果想能過hiveserver進(jìn)行連接,請自行查閱官方文檔進(jìn)行實現(xiàn)
//    https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-JDBC
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // Register driver and create driver instance

        Class.forName(driverName);
        // get connection

        Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hive", "hive");
        Statement stmt = con.createStatement();

        boolean execute = stmt.execute("create database if not exists db_hive");

        System.out.println("Database userdb created successfully.");

        con.close();
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容