C#通过thrift连接hbase操作步骤
作者:网络转载 发布时间:[ 2013/12/17 10:50:26 ] 推荐标签:
1、 下载thrift-0.9.1.exe和源码包thrift-0.9.1.tar.gz
2、利用thrift-0.9.1.exe工具生成thrift连接hbase的客户端接口代码:
2、利用thrift-0.9.1.exe工具生成thrift连接hbase的客户端接口代码:
从hbase源码包目录
hbase-0.96.0-srchbase-0.96.0hbase-thriftsrcmain
esourcesorgapachehadoophbase hrift
找到HBase.Thrift文件,拷贝至thrift-0.9.1.exe同一目录下:
在cmd命令行里切换到thrift-0.9.1目录下,执行下面的脚本,自动生成thrift的客户端c#接口代码,代码在gen-csharp目录文件里:
thrift-0.9.1.exe -gen csharp HBase.Thrift
3、在vs2010里创建解决方案
HBaseThriftAPI,新建2个工程,一个是Thrift(在解决方案上单击右键,选择添加-现有项目thrift-0.9.1libcsharpsrcThrift.sln),是从thrift-0.9.1的源码包里添加而来,然后编译生成动态库,
另外新建一个工程IThrift,把自动生成的接口代码添加进来,同时在应用中把Thrift的编译结果引用过来,
同时在ithrift里新建一个连接hbase里面thrift的测试客户端程序(TestClient.cs),代码如下(注意里面连接的IP、端口、表名、行键4个参数需要根据实际的替换一下):
|
using System;
using System.Collections.Generic;
using System.Threading;
using Thrift.Collections;
using Thrift.Protocol;
using Thrift.Transport;
using System.Text;
namespace Test
{
publicclassTestClient
{
publicstaticvoid Main(string[] args)
{
try
{
TTransport transport = new TSocket("192.168.0.101", 9090);//连接的IP、端口
TProtocol tProtocol = new TBinaryProtocol(transport);
var client = new Hbase.Client(tProtocol);
transport.Open();
List<TRowResult> reslut = client.getRow(Encoding.UTF8.GetBytes("test"),Encoding.UTF8.GetBytes("a"),null);//前面是表名、后面是行键名
foreach (var key in reslut)
{
Console.WriteLine(Encoding.UTF8.GetString(key.Row));
foreach (var k in key.Columns)
{
Console.Write(Encoding.UTF8.GetString(k.Key) +" ");
Console.WriteLine(Encoding.UTF8.GetString(k.Value.Value));
}
}
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
}
}
}
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com