hiveserver2 java thrift api 接口使用事例

本文介绍了如何使用Java通过Thrift API连接到HiveServer2进行SQL查询。从定义基本查询接口开始,然后展示工具类和实现类的详细代码,包括建立连接、执行查询、获取日志、检查操作状态、获取结果集和取消查询的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先定义接口

/**
 * sql查询的基类
 * @author taoxinwan
 *
 */
public abstract class QueryBase {
    
    protected static final Logger log = Logger.getLogger(QueryBase.class);  
    //ip
    protected static String host;
    //端口
    protected static int port;
    //类型
    protected static int type;
    
    protected static String username;
    protected static String passsword;
    
    /**
     * 初始化上下文信息
     * @param context
     */
    protected void init(Context context){
        host = context.getHost();
        port = context.getPort();
        type = context.getType();
        username = context.getUsername();
        passsword = context.getPasssword();
    }   
    
    public abstract TOperationHandle submitQuery(String command) throws Exception;
    public abstract String getQueryLog(TOperationHandle tOperationHandle) throws Exception;
    public abstract TOperationState getQueryHandleStatus(TOperationHandle tOperationHandle) throws Exception;
    public abstract Map<String, Object> getResultByOperation(TOperationHandle tOperationHandle) throws Exception;
    public abstract void cancelQuery(TOperationHandle tOperationHandle) throws Exception;
    

}



工具类

/**
     * 获取shrift client
     *
     * @param transport
     * @param type
     *            1=hive,2=impala
     * @return
     * @throws TTransportException
     */
    public static TCLIService.Client getClientInstance(TTransport transport, int type) throws TTransportException {

        TCLIService.Client client = null;
        if (1 == type) {// hive
            client = new TCLIServic
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值