Hive JDBC Bağlantısı
Hive ü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:
Ardınan bağlantı ayarları yapılarak erişimi test edebilirsiniz:
Pig üzerinden Hadoop ile MongoDB Entegrasyonu Hive ile HBase Entegrasyonu