日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产美女精品 | 欧美专区综合 | 少女国产免费观看 | 国产一区二区三区视频免费在线观看 | 国产农村妇女毛片精品久久麻豆 | 婷婷综合激情 | 国产精品日韩在线 | 大奶子在线观看 | 久热久操 | 日韩精品成人在线 | 人人爽av| 亚洲熟妇av一区二区三区漫画 | 日本不卡二区 | 无码播放一区二区三区 | 操穴影院| 亚洲人成无码www久久久 | 日本中文字幕不卡 | 欧美性猛交xxxx | 最近中文字幕在线观看 | 中文字幕日韩精品在线观看 | 看片免费黄在线观看入口 | 91精选国产 | 日韩在线视频一区二区三区 | 成人免费xxxxxx视频 | 成人日韩精品 | 国产欧美日韩在线视频 | 欧美97| 日韩精品中文字幕在线 | 欧美激情免费在线 | 麻豆三级视频 | 欧美一区二区三区大屁股撅起来 | 国产精品国产精品国产专区不卡 | 国产suv精品一区二区 | 欧美天堂在线视频 | 亚洲欧洲日本一区二区三区 | 国产av国片偷人妻麻豆 | 成人欧美日韩 | 天堂网在线视频 | 亚洲成人麻豆 | 欧美日韩国产在线播放 | 91无限观看 | 日本午夜啪啪 | 国产精品一区久久 | 青春草国产视频 | 黄色欧美网站 | 久久99精品视频 | 东南亚毛片 | 少妇av一区二区三区 | 美女高潮视频在线观看 | www.嫩草.com | 国产精品一区二区在线 | 五月天国产视频 | 亚洲精品www久久久久久广东 | 日本精品视频在线观看 | 精品国产鲁一鲁一区二区三区 | 99久久久无码国产精品性 | 国产男女激情 | 亚洲色图40p | 久久网av | 免费毛片大全 | 国产高清视频一区二区 | 日韩在线高清 | 操韩国美女 | 男人和女人在床的app | 国产成人在线免费视频 | 91蝌蚪少妇 | 国产ts三人妖大战直男 | 深夜福利视频网站 | 欧美变态口味重另类 | 都市激情亚洲色图 | 亚洲综合图色40p | 人妻少妇精品无码专区久久 | wwwxx欧美 | 国产91美女视频 | 日本黄图| 一区二区免费在线观看视频 | 91美女片黄在线观看 | 久久精彩免费视频 | www日日 | 女人久久 | 欧美一区二区三区久久 | 少妇大叫太粗太大爽一区二区 | 欧美三级 欧美一级 | 亚洲av鲁丝一区二区三区 | 天天操免费视频 | 国产ts变态重口人妖hd | 成人国产精品免费观看动漫 | 成年人免费看的视频 | 一本久久a精品一合区久久久 | 欧美久久精品 | 天天综合天天做天天综合 | 欧美高清在线一区 | 国产综合在线观看 | 亚洲两性视频 | 色偷偷影院 | 国精产品一区一区三区有限公司杨 | 青青草av在线播放 | 韩日欧美| 奇米狠狠777 |