日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c# 访问hbase_大数据技术 windows下C#通过Thrift操作HBase

發布時間:2025/3/20 C# 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 访问hbase_大数据技术 windows下C#通过Thrift操作HBase 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇教程探討了大數據技術 windows下C#通過Thrift操作HBase,希望閱讀本篇文章以后大家有所收獲,幫助大家對大數據技術的理解更加深入。

<

1。到apache官網下載Thrift源碼,?http://thrift.apache.org/download,我這里下載的是thrift-0.10.0

2。到apach官網下載thrift.exe,?http://thrift.apache.org/download,?這里下載的是thrift-0.10.0.exe

3。將下載下來的thrift-0.10.0.exe放到thrift-0.10.0/tutorial/目錄下去

4。在windows命令行運行如下這兩條命令:

thrift-0.10.0.exe?--gen?csharp?tutorial.thrift

thrift-0.10.0.exe?--gen?csharp?shared.thrift

運行完以后就會在當前目錄下生成一個名為gen-csharp的目錄,到時候需要把這下面的源碼文件添加到項目中去

5。用vs打開thrift-0.10.0/lib/csharp/src/Thrift.sln解決方案,并編譯得到Thrift.dll

6。用vs新建自己的項目,將之前生成的源碼添加進來,并引入Thrift.dll庫。

下面就是Client端的代碼

using?System;

using?Thrift;

using?Thrift.Protocol;

using?Thrift.Server;

using?Thrift.Transport;

namespace?CSharpTutorial

{

public?class?CSharpClient

{

public?static?void?Main()

{

try

{

TTransport?transport?=?new?TSocket("localhost",?9090);

TProtocol?protocol?=?new?TBinaryProtocol(transport);

Calculator.Client?client?=?new?Calculator.Client(protocol);

transport.Open();

try

{

client.ping();

Console.WriteLine("ping()");

int?sum?=?client.add(1,?1);

Console.WriteLine("1+1={0}",?sum);

Work?work?=?new?Work();

work.Op?=?Operation.DIVIDE;

work.Num1?=?1;

work.Num2?=?0;

try

{

int?quotient?=?client.calculate(1,?work);

Console.WriteLine("Whoa?we?can?divide?by?0");

}

catch?(InvalidOperation?io)

{

Console.WriteLine("Invalid?operation:?"?+?io.Why);

}

work.Op?=?Operation.SUBTRACT;

work.Num1?=?15;

work.Num2?=?10;

try

{

int?diff?=?client.calculate(1,?work);

Console.WriteLine("15-10={0}",?diff);

}

catch?(InvalidOperation?io)

{

Console.WriteLine("Invalid?operation:?"?+?io.Why);

}

SharedStruct?log?=?client.getStruct(1);

Console.WriteLine("Check?log:?{0}",?log.Value);

}

finally

{

transport.Close();

}

}

catch?(TApplicationException?x)

{

Console.WriteLine(x.StackTrace);

}

}

}

}

下面是Server端代碼

using?System;

using?System.Collections.Generic;

using?Thrift.Server;

using?Thrift.Transport;

namespace?CSharpTutorial

{

public?class?CalculatorHandler?:?Calculator.Iface

{

Dictionary?log;

public?CalculatorHandler()

{

log?=?new?Dictionary();

}

public?void?ping()

{

Console.WriteLine("ping()");

}

public?int?add(int?n1,?int?n2)

{

Console.WriteLine("add({0},{1})",?n1,?n2);

return?n1?+?n2;

}

public?int?calculate(int?logid,?Work?work)

{

Console.WriteLine("calculate({0},?[{1},{2},{3}])",?logid,?work.Op,?work.Num1,?work.Num2);

int?val?=?0;

switch?(work.Op)

{

case?Operation.ADD:

val?=?work.Num1?+?work.Num2;

break;

case?Operation.SUBTRACT:

val?=?work.Num1?-?work.Num2;

break;

case?Operation.MULTIPLY:

val?=?work.Num1?*?work.Num2;

break;

case?Operation.DIVIDE:

if?(work.Num2?==?0)

{

InvalidOperation?io?=?new?InvalidOperation();

io.WhatOp?=?(int)work.Op;

io.Why?=?"Cannot?divide?by?0";

throw?io;

}

val?=?work.Num1?/?work.Num2;

break;

default:

{

InvalidOperation?io?=?new?InvalidOperation();

io.WhatOp?=?(int)work.Op;

io.Why?=?"Unknown?operation";

throw?io;

}

}

SharedStruct?entry?=?new?SharedStruct();

entry.Key?=?logid;

entry.Value?=?val.ToString();

log[logid]?=?entry;

return?val;

}

public?SharedStruct?getStruct(int?key)

{

Console.WriteLine("getStruct({0})",?key);

return?log[key];

}

public?void?zip()

{

Console.WriteLine("zip()");

}

}

public?class?CSharpServer

{

public?static?void?Main()

{

try

{

CalculatorHandler?handler?=?new?CalculatorHandler();

Calculator.Processor?processor?=?new?Calculator.Processor(handler);

TServerTransport?serverTransport?=?new?TServerSocket(9090);

TServer?server?=?new?TSimpleServer(processor,?serverTransport);

//?Use?this?for?a?multithreaded?server

//?server?=?new?TThreadPoolServer(processor,?serverTransport);

Console.WriteLine("Starting?the?server...");

server.Serve();

}

catch?(Exception?x)

{

Console.WriteLine(x.StackTrace);

}

Console.WriteLine("done.");

}

}

}

本文由職坐標整理發布,學習更多的大數據技術相關知識,請關注職坐標大技術云計算大技術技術頻道!

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的c# 访问hbase_大数据技术 windows下C#通过Thrift操作HBase的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。