c语言连接Hbase的thrift2程序

c语言连接Hbase的thrift2程序

首页休闲益智星球行者更新时间:2024-05-11

这个示例代码使用 Thrift 传输对象、二进制协议和 hbase Thrift 2 客户端来连接 HBase Thrift 2 服务,并执行一个简单的 GET 操作,然后关闭连接。

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <errno.h>

#include <sys/socket.h>

#include <arpa/inet.h>

#include <unistd.h>

#include <Protocol/TBinaryProtocol.h>

#include <transport/TSocket.h>

#include <transport/TTransportUtils.h>

#include <Hbase.h>

using namespace apache::hadoop::hbase::thrift2;

int main(int argc, char *argv[]) {

// 连接信息

std::string host = "127.0.0.1";

int port = 9090;

// 创建一个 Thrift 传输对象

boost::shared_ptr<apache::thrift::transport::TSocket> socket(new apache::thrift::transport::TSocket(host, port));

boost::shared_ptr<apache::thrift::transport::TTransport> transport(new apache::thrift::transport::TFramedTransport(socket));

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

// 创建 HBase Thrift 2 客户端

HbaseClient client(protocol);

try {

// 打开连接

transport->open();

// 使用 HBase Thrift 2 客户端执行操作

std::vector<TColumn> columns;

std::map<std::string, std::string> attributes;

TGet get;

get.__set_row("test");

get.__set_columns(columns);

get.__set_attributes(attributes);

TResult result;

client.get(result, "testTable", get);

printf("Result: %s\n", result.row.c_str());

// 关闭连接

transport->close();

} catch (const TException &tx) {

fprintf(stderr, "ERROR: %s\n", tx.what());

exit(1);

}

return 0;

}

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved