C#通过thrift连接hbase操作步骤

1 篇文章 0 订阅
1 篇文章 0 订阅

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-src\hbase-0.96.0\hbase-thrift\src\main\resources\org\apache\hadoop\hbase\thrift

找到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.1\lib\csharp\src\Thrift.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) +"\t");

                            Console.WriteLine(Encoding.UTF8.GetString(k.Value.Value));

                        }

                    }

                    Console.ReadLine();

                }

                catch (Exception e)

                {

                    Console.WriteLine(e.StackTrace);

                }

        }

    }

}

最后编译IThrift,生成IThrift.exe

注:本人环境vs2010+framework3.5

 

4、启动hadoop、hbase、thrift服务端

启动hadoop集群:

zzk1@zzk1-vm2:~/hadoop-1.2.1$bin/start-all.sh

启动hbase服务:

zzk1@zzk1-vm2:~/hbase-0.96.0-hadoop1/bin$ ./start-hbase.sh

启动服务端hbase里的thrift服务:

zzk1@zzk1-vm2:~/hbase-0.96.0-hadoop1/bin$ hbase-daemon.sh start thrift

 

5、验证c#通过thrift连接hbase是否成功:

用hbase shell命令进入hbase,查看表test数据(scan 'test')

点击vs2010生成的客户端ithrift.exe,可以看到连接到hbase,同时显示了表test的数据,和服务端hbase shell查出来的一致:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值