ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • hive thrift java 예제
    BigData/Hive 2013. 12. 14. 00:03

    HIVE 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
Designed by Tistory.