文档章节

【Java】HBase_thrift/thrift2_使用指南

李博SEO
 李博SEO
发布于 2017/05/24 17:07
字数 457
阅读 18
收藏 0

Thrift server简介

Thrift server是HBase中的一种服务,主要用于对多语言API的支持。基于Apache Thrift(多语言支持的通信框架)开发,目前有两种版本thriftthrift2

thrift2是当时为了适应新的Java API,提出来的。由于种种原因,thrift2没有完美兼容并替代thrift,所有就留下了两个版本。

Thrift 和 Thrift2 的区别

  • 接口设计上Thrift2要比Thrfit更优雅,或者说和现在的API更贴近。比如两者的get接口:
    // Thrift2 的get接口,传入TGet(对应Java API种的Get类)
    // 用过Java API的同学看起来应该会更亲切
    TResult get(
         /** the table to get from */
        1: required binary table,
        /** the TGet to fetch */
        2: required TGet tget
    ) throws (1: TIOError io)
    // Thrift 的get接口,没有TGet这些包装,比较裸
    list<TCell> get(
        /** name of table */
        1:Text tableName,
        /** row key */
        2:Text row,
        /** column name */ 
        3:Text column, 
        /** Get attributes */
        4:map<Text, Text> attributes
    ) throws (1:IOError io)
  • Thrift2没有DDL方面的接口,所以现在Hue还是用Thrift的接口。如果你只想读写数据,建议用Thrift2。

Thrift server原理

Thrfit其实就是个代理,你的请求发到Thrift server上后,server通过Java API再帮你访问HBase。
Thrift_server
Thrift实现类是org.apache.hadoop.hbase.thrift.ThriftServer,thrift2的实现类是org.apache.hadoop.hbase.thrift2.ThriftServer。它们访问HBase使用的也是普通的HBase client API,所以当你的请求到达Thrift server后,它通过client API去帮你定位数据,然后读取数据。这么来看,Thrift Server比较灵活,你可以部署在客户机上,也可以独立部署一个thrift集群。

阅读原文请点击

本文转载自:http://click.aliyun.com/m/21727/

共有 人打赏支持
李博SEO
粉丝 6
博文 95
码字总数 47489
作品 0
HBase & thrift & C++编程

目录 目录 1 1. 前言 1 2. 启动和停止thrift2 1 2.1. 启动thrift2 1 2.2. 停止thrift2 1 2.3. 启动参数 2 3. hbase.thrift 2 3.1. 编译hbase.thrift 2 4. thrifthelper.h 3 5. 示例代码 4 1.......

一见蓝天
2016/01/27
0
0
在php的yii2框架中整合hbase库

Hbase通过thrift这个跨语言的RPC框架提供多语言的调用。 Hbase有两套thrift接口(thrift1和thrift2),但是它们并不兼容。根据官方文档,thrift1很可能被抛弃,本文以thrift2整合为例。 1、访...

penngo
09/11
0
0
使用happybase访问HBase出现Broken pipe问题---两个“惊天”大bug

来源 使用happybase通过thrift接口向HBase读取、写入数据时,出现Broken pipe的错误。排查步骤: 1、查看hbase的日志: 初步推断是hbase设置了某个超时时间,导致连接断开 2、查看官方文档,...

低调诺
04/24
0
0
遇到的问题--java连接hbase的thrift2报错readtimeout

遇到问题 java连接hbase的thrift2报错readtimeout 原因分析 java连接hbase的thrift2报错readtimeout原因有多种, 一是排除网络和防火墙问题 二是检测thrift2服务是否正常或者假死 三是thrif...

q383965374
04/23
0
0
R语言与Hadoop和Hbase的联合使用

HBase和rhbase的安装与使用,分为3个章节。 1. 环境准备及HBase安装2. rhbase安装3. rhbase程序用例 每一章节,都会分为”文字说明部分”和”代码部分”,保持文字说明与代码的连贯性。 注:...

openthings
2015/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
4
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
120
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
4
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部