DevVeri.com

Boğulacaksan büyük veride boğul!

Hive JDBC Bağlantısı

hive_logo_mediumHive üzerindeki verilere erişmenin birkaç yöntemi var. Bu yöntemlerden birisi de JDBC sürücüsünü kullanmak. Hive JDBC sürücüsü ile verileri programatik olarak sorgulamak ve bir SQL arayüzü (örneğin SQuirreL) kullanmak mümkün hale geliyor.

Hive tarafından yönetilen verilerin dışarı açılmasını HiveServer2 uygulaması sağlıyor. Önceden HiveServer (ya da ThriftServer) olarak adlandırılan bu uygulama aynı anda sadece tek bir bağlantıya izin verdiği ve herhangi bir güvenlik desteği bulunmadığı için geliştirilerek HiveServer2 adını almış. JDBC sürücüsü de bu uygulama üzeriden thrift kullanarak verilere erişiyor.

JDBC Kullanarak Erişim

JDBC kullanarak erişim oldukça kolay, maven ayarları şöyle:

<dependency>
  <groupId>org.apache.hive</groupId>
  <artifactId>hive-jdbc</artifactId>
  <version>0.10.0-cdh4.5.0</version>
</dependency>

Örnek kod ise şu şekilde:

package com.devveri.hive.jdbc.test;

import org.junit.Test;
import java.sql.*;

public class HiveJdbcTest {

    private static final String JDBC_DRIVER = "org.apache.hive.jdbc.HiveDriver";
    private static final String JDBC_URL = "jdbc:hive2://myhost:10000/test";
    private static final String JDBC_USER = "";
    private static final String JDBC_PASS = "";

    @Test
    public void test() throws ClassNotFoundException, SQLException {
        Class.forName(JDBC_DRIVER);

        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            con = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
            stmt = con.createStatement();
            rs = stmt.executeQuery("select * from test.nyse limit 10");
            while (rs.next()) {
                System.out.println(String.format("%s\t%s\t%f",
                        rs.getString("exchange"),
                        rs.getString("date"),
                        rs.getDouble("stock_price_open")));
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (con != null) {
                con.close();
            }
        }
    }

}

SQuirreL Üzerinden Erişim

SQuirreL, Java ile geliştirilmiş bir SQL arayüzü. Bağlanmak istediğiniz veritabanının JDBC sürücüsünü tanıtarak arayüz üzerinden sunucuya erişmenizi sağlıyor. Hive JDBC driver kullanarak erişim yapmak için aşağıdaki jar dosyalarına ihtiyaç var:

Screen Shot 2014-02-23 at 01.52.20

 Ardınan bağlantı ayarları yapılarak erişimi test edebilirsiniz:

Screen Shot 2014-02-21 at 15.44.28

, ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir