操作ハイブの二つのモード

ハイブクライアントオペレーティング

ハイブクライアントオペレーティング

  • JDBC操作ハイブにより、
  • ハイブスリフトを操作することにより、
JDBC操作ハイブにより、
  • まず、リモートサービスハイブを開始

    ハイブ--service hiveserver
  • 必要なjarパッケージ

パブリック クラスTestQuery { 

    プライベート 静的な最終文字列dirver = org.apache.hadoop.hive.jdbc.HiveDriver プライベート 静的な最終文字列のURL = " はjdbc:ハイブ://192.168.131.111:10000 /デフォルト" 

    @Test 
    公共 ボイドtestQuery()例外{スロー

        にClass.forName(dirver)を、
        文字列のSQL = " EMPから選択* " ; 
        接続でCONN = したDriverManager.getConnection(URL); 
        声明ST = conn.createStatement()。
        ResultSetのRS = st.executeQuery(SQL)。

        一方、(rs.next()){
             // 不能写列名 
            文字列ENAME = rs.getString(2 )。
            INT SAL = rs.getInt(6 )。
            システム。アウト .println(ENAME + " \ tの" + SAL)。
        } 
        JDBCUtil.release(CONN、ST、RS)。
    } 
}
ハイブスリフトを操作することにより、
package com.zd.thrift;

import java.util.List;
import org.apache.hadoop.hive.service.HiveClient;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.junit.Test;

public class TestThrift {
    @Test
    public void testThrift() throws Exception{

        //创建socket连接
        TSocket socket = new TSocket("192.168.131.111",10000);
        TProtocol prot = new TBinaryProtocol(socket);

        //创建HiveClient
        HiveClient client = new HiveClient(prot);

        //打开socket通信
        socket.open();

        //执行HQL语句
        //client.execute("desc emp");
        client.execute("select * from emp where deptno=10");

        //取出返回的结果
        List<String> list = client.fetchAll();

        //结果集以行为单位   被封装进List
        for (String string : list) {
            System.out.println(string);
        }
        socket.close();
    }
}

 

おすすめ

転載: www.cnblogs.com/itboys/p/11210800.html