前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用THttpClient连接hbase异常

使用THttpClient连接hbase异常

原创
作者头像
stevenxi
发布2022-08-25 10:02:32
3300
发布2022-08-25 10:02:32
举报

# 背景

- 客户在java代码中通过hbasethrift连接hbase异常

# 连接代码

- 一般使用TSocket,这里客户使用的是THttpClient,请求url使用的是http://

- 通过do_as设置了用户

代码语言:javascript
复制
    public HbaseClient(String host, int port, String doAsUser, int timeout, boolean useTransport) {
        this.host = host;
        this.port = port;
        this.doAsUser = doAsUser;
        this.timeout = timeout;
        this.useTransport = useTransport;
        String url = "http://" + this.host + ":" + this.port;
        // TSocket
        if (BooleanUtils.isTrue(this.useTransport)) {
            transport = new TSocket(this.host, this.port,timeout,timeout);
        }

        try {
            httpClient = new THttpClient(url);
        } catch (TTransportException e) {
            //log.error("HbaseClient ThttpClient failed!" + e.getMessage(), e);
            throw new RuntimeException(e);
        }
        httpClient.setCustomHeader(DO_AS, this.doAsUser);
        httpClient.setConnectTimeout(timeout);
        httpClient.setReadTimeout(timeout);
        httpClient.open();
        TProtocol protocol = new TBinaryProtocol(httpClient);
        client = new Hbase.Client(protocol);
        //log.info("HbaseClient create success!");
    }

# 解决方式

- 在hbase-site.xml新增如下配置

hbase.regionserver.thrift.http  true

hbase.thrift.support.proxyuser  true

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 背景
  • # 连接代码
  • # 解决方式
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档