1、 下载thrift-0.9.1.exe和源码包thrift-0.9.1.tar.gz
  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);
}
}
}
}
上一页12下一页
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。