- 
          
          hive thrift java 예제BigData/Hive 2013. 12. 14. 00:03HIVE THRIFT를 이용한 JAVA EXAMPLE (eclipse maven plugin) Hive Server 켜기 두가지 방법 HIVE_PORT는 원하는 포트로 적용 (콘솔) $ HIVE_PORT=3460 hive --service server hadoop 실행시 같이 실행 $ vi $HADOOP_HOME/sbin/start-all.sh (hadoop 2.2.0 기준입니다.) 스크립트 제일 아래 추가 # start hive server if [ -f "${HIVE_HOME}"/bin/hive ]; then HIVE_PORT=3406 "${HIVE_HOME}"/bin/hive --service hiveserver & fi 이클립스 maven plugin이 설치되었다는 전제로 진행합니다. ( 참고 : http://sidcode.wordpress.com/2013/11/19/ubuntu-hadoop-eclipse-plugin-maven-%EC%84%A4%EC%B9%98/) maven 프로젝트 생성 생략 아래 pom.xml이 뭔지 모르시겠다면 이사이트를 (http://hadoopi.wordpress.com/2013/05/25/setup-maven-project-for-hadoop-in-5mn/)참조 하시어 프로젝트를 하나 실행 해보시기를 바랍니다.' POM.XML 설정 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sidcode</groupId> <artifactId>ex.hive</artifactId> <version>0.0.1</version> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>0.12.0</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>0.12.0</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-service</artifactId> <version>0.12.0</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-metastore</artifactId> <version>0.12.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.2.1</version> </dependency> </dependencies> </project> HIVE.JAVA 생성 package ex.hive; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; /* * hive thrift example 0.0.1 by sidcode (2013-12-13) */ public class HIVE { private static String dn = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { try { Class.forName(dn); // JDBC DRIVER LOAD } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); System.exit(1); } System.out.println("============ START ============"); // (jdbc:hive://HostName 또는 IP:port/default", "id", "pass") Connection conn = DriverManager.getConnection("jdbc:hive://localhost:3406/default", "hive", "hive"); Statement stmt = conn.createStatement(); try { // 테이블 POKE 생성, 이미 생성되었을시 하단에 문구 출력 시킴 stmt.executeQuery("CREATE TABLE POKES(foo INT, bar STRING)"); // 테이블생성 } catch (SQLException e) { // TODO: handle exception System.out.println("Already table pokes!! :D"); } ResultSet rs = stmt.executeQuery(getQuery()); if (!rs.next()) { // 최초 실행 유무 체크 하여 데이터 로드 // "/usr/local/hadoop/hive" 본인의 hive가 설치된경로 stmt.executeQuery("LOAD DATA LOCAL INPATH '/usr/local/hadoop/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE POKES"); // 데이터 로드 System.out.println("LOAD DATE......"); } rs = stmt.executeQuery(getQuery()); while (rs.next()) { System.out.println(rs.getString(1) + " : " + rs.getString(2)); } System.out.println("============END============"); conn.close(); } // query private static String getQuery() { String sql = "SELECT * FROM POKES"; return sql; } } 최종 완료 테스트 이클립스에서 저장 후 실행(Run) 한후 아래와같이 되면 수고하셨습니다. :D 'BigData > Hive' 카테고리의 다른 글hive with mysql 설치 (0) 2013.12.10