Linux+Hadoop+Hbase+Zookeeper+Thrift版本选择&配置(五)

基于前面的所有配置,利用C#连接Hbase

     Hadoop中的HBase有多种数据访问方式,ubuntu( 国际音标 [uːˈbuːntuː])或者CentOS系统下可以用hbase shell查看操作hbase数据库,但windows平台下需要用thrift对它进行访问。
1. 定位到上一篇中 Thrift-0.9.1.exe 和 hbase.thrift 共同存放的目录下,
运行指令:“bin/thrift -gen csharphbase.thrift”会在当前目录生成gen-csharp文件夹
2. 将 gen-csharp 文件夹中的代码拷贝待用。
     因为这一步很重要,这里再详细说明一下步骤:
 
=========================↓↓ 生成gen-csharp步骤 ↓↓==========================
1. 在habse-1.1.2-src.tar.gz的解压路径下,注意habse-1.1.2-bin.tar.gz解压后是没有的。“/usr/hadoop/hbase-1.1.2-src/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/hbase.thrift”此路径备用或者将文件拷贝备用(如下图):
 
 
2. 到thrift的安装路径下,这里是:“/usr/hadoop/thrift-0.9.1”,
运行指令:“bin/thrift -gen csharp /usr/hadoop/hbase-1.1.2/src/main/resources/org/apache/hadoop/hbase/thrift/hbase.thrift”
指令执行完毕后,会在当前目录生成gen-csharp文件夹,将文件夹中的代码拷贝待用。
=========================↑↑ 生成gen-csharp步骤 ↑↑==========================
 
3. 将“/usr/hadoop/thrift-0.9.1/lib/csharp”下的代码拷贝待用
4.  建立TestConsoleApplication控制台程序
 
 
TestConsoleApplication 下 Program 的代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using Thrift.Protocol;
using Thrift.Transport;
 
namespace TestConsoleApplication
{
    class Program
    {
        static void Main( string[] args)
        {
            try
            {
                TTransport transport = new TSocket( "192.168.2.201" , 9090); //连接的IP、Thrift 服务的端口
                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( "t1"), 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); } } } }
建立类库 Thrift,然后将 csharp 下的项目加入Thrift ;
建立类库 IThrift,然后将 gen-csharp 里的文件都放到此类库中(代码整体解构如下图);
 
 
——说明:
Thrift(类库)下放的是“/usr/hadoop/thrift-0.9.1/lib/csharp”下的代码
IThrift(类库) 下放的是 gen-csharp 文件夹下的代码
Program(类库) 里的代码已贴在上方
 
IThrift 引用 Thrift,TestConsoleApplication 引用其它两个项目(如下图):
 
 
 
5. 将所有相关服务(如下图)启用,然后编译项目运行
 
 
编译运行如下:
 
 
表明成功
posted @ 2015-10-30 15:02  离线中  阅读(643)  评论(0编辑  收藏  举报