c++连接hbase指南

编程入门 行业动态 更新时间:2024-10-06 10:29:40

c++连接hbase<a href=https://www.elefans.com/category/jswz/34/1769915.html style=指南"/>

c++连接hbase指南

环境配置

1、  安装thrift

按照官网

2、  取出Hbase文件中的Hbase.thrift文件,是用thrift--gen <language> <Thrift filename>产生所需的cpp文件,将gen_cpp文件复制到工程目录下。其中Hbase.cpp是CPP版的thrift文件中的函数,Hbase_types.cpp是CPP版的thrift文件中的结构。

3、  Hbase启动thrift服务./bin/hbase-daemon.sh start thrift                默认监听地址9090

以上步骤做好之后就可使用C++连接hbase并对其中数据库进行操作了

 

操作步骤

1、  创建连接

boost::shared_ptr<TTransport>socket(new TSocket("host",port(int)));

boost::shared_ptr<TTransport>transport(new TBufferedTransport(socket));

boost::shared_ptr<TProtocol>protocol(new TBinaryProtocol(transport));

HbaseClient client(protocol);

transport->open();    失败返回0并抛出TException错误

 

2、  连接成功后,可以通过client调用Hbase.thrift中定义的函数对hbase进行操作

3、  断开连接

transport->close()     失败抛出TException错误

 

HbaseClient类中定义的结构及函数

这些结构和函数都是在Hbase.thrift中定义,C++定义是由thrift读取Hbase.thrift生成的并存放在生成的cpp文件中,若要是用需在工程中包含这些文件

一、          异常

前三个异常类都包含一个string成员message,不同的函数出错会抛出不同的错误

1、  IOError               操作过程中的一般性错误

2、  IllegalArgument        函数传入参数错误

3、  AlreadyExists     如建表表已存在

4、   TException                   thrift服务的异常类,前三个都是Hbase.thrift中定义,生成cpp文件的定义中前三个都是都是这个异常类的子类

 

二、          数据类(等于多少表示默认值)

1、  TCell

1: Stringvalue;   一般是对应列数据

2: I64timestame;

2、  ColumnDescriptor:包含数据库中表的某个列族的信息

  1:string  name,

  2:i32 maxVersions = 3,

  3:string compression = "NONE",

  4:bool inMemory = 0,

  5:string bloomFilterType = "NONE",

  6:i32 bloomFilterVectorSize = 0,

  7:i32 bloomFilterNbHashes = 0,

  8:bool blockCacheEnabled = 0,

  9:i32 timeToLive = -1

3、   TRegionInfo:包含表中某个区域的信息

 1:stringstartKey,

2:string endKey,

 3:i64 id,

 4:stringname,

 5:stringversion

4、   Mutation:         用来更新或删除一个column-value

 1:boolisDelete = 0,

 2:stringcolumn,

更多推荐

c++连接hbase指南

本文发布于:2024-02-25 17:41:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699792.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指南   hbase

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!