C# 通过Thrift访问Hbase

1、确保Hbase中已经开启Thrift服务
2、Thrift官网( http://thrift.apache.org/download ) 下载Thrift源码和Thrift.exe文件

《C# 通过Thrift访问Hbase》 下载tar.gz和exe文件

3、目前最新的thrift是0.10.0版本,解压thrift-0.10.0.tar.gz文件,然后在目录“…\thrift-0.10.0\lib\csharp\src”里找到C#的源码,如果安装了VS2010以上的版本,可以直接打开Thrift.sln文件,然后生成DLL类库【后期C#访问Hbase的项目中需要引用】,如果你安装了低于VS2010的版本,请新建类库项目,然后将目录“…\thrift-0.10.0\lib\csharp\src”中除了sln和csproj以为的所有文件和文件夹复制到我们新建的类库项目中,然后生成。如下图为最终生成的类库。

《C# 通过Thrift访问Hbase》 Thrift类库文件

4、下载和集群中hbase版本号一致的hbase源码,然后解压,找到里面的
Hbase.thrift文件(apache hbase的Hbase.thrift文件位置 :
hbase\src\main\resources\org\apache\hadoop\hbase\thrift,cdh hadoop中Hbase.thrift文件位置:
hbase-1.2.0-cdh5.9.1\hbase-thrift\src\main\resources\org\apache\hadoop\hbase\thrift),切记一定是thrif文件中的Hbase.thrift文件,而不是thrift2文件夹中的,两个文件不一样,thrift2文件里面的是精简版本,所以我们一般使用thrift文件夹里面的Hbase.thrif文件。

5、将Hbase.thrift 文件和已经下载的thrift-0.10.0.exe文件放在D盘thrift文件夹下面。然后打开windows命令窗口(win键+R键,然后输入cmd然后回车),输入如下命令进入存放Hbase.thrit目录

《C# 通过Thrift访问Hbase》 cmd命令

接着输入thrift-0.10.0.exe -gen csharp hbase.thrift生成C#访问Hbase的类,如下图

《C# 通过Thrift访问Hbase》

然后新建一个类库项目,把这些cs文件复制到项目中,生成DLL类库。
6、新建一个项目,然后引用上面生成的2个DLL文件,然后编写如下代码就可以用C#访问hbase了。

TTransport tp = new TSocket("hbase ip 地址", 9090);
            TProtocol protocol = new TBinaryProtocol(tp);
            var client = new  Hbase.Client(protocol);
            tp.Open();
            List<TRowResult> result = client.getRow(Encoding.UTF8.GetBytes("表名"), Encoding.UTF8.GetBytes("rowkey"), null);
string strData="";
            foreach (var key in result)
            {
                strData += Encoding.UTF8.GetString(key.Row)+"\n";
                foreach (var k in key.Columns)
                {
                    strData += Encoding.UTF8.GetString(k.Key) + "\n";
                    strData= Encoding.UTF8.GetString(k.Value.Value) + "\n";
                }
            }
            tp.Close();
    原文作者:我是Mr小赵先生
    原文地址: https://www.jianshu.com/p/2e15af1c42ff
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞