c# 访问hbase_C#教程之通过Thrift实现C#与Hbase交流

近期着手的一个项目需要将我方数据存储到Hadoop的大数据环境,由于本人是.net平台的开发者,没有怎么接触过大数据(因为他实在是太高大尚了)。但还好baidu, google后,还是很找到了解决办法,就是C#写数据到hbase,然后大数据开发者在从hbase读取数据进行多维度处理,如将一部分历史数据转移到hive,或者是将一部分数据推送到机器学习库进行学习。

一、获取hbase的thrift定义,并生成c#类

1.1 到hbase源码地址获取thrift的定义

注意Hbase的版本一定要与运行的Hbase对应。

请选择thrift,而不是thrift2,原因thrift接口看上更为好用

1.2 获取thrift,生成c#代码

thrift生成代码可以参考的我《半小时入Thrift》

二、启动hbase的thrift服务

输入如下命令:

hbase-daemon.shstart thrift

hbase-daemons.sh start thrift (集群版本)

默认的thrift端口是9090,可以在hbase-site.xml配置文件中修改默认端口。

三、用C#编写测试代码

var transport = new TSocket("10.34.51.62", 9090);

TProtocol protocol= newTBinaryProtocol(transport);var client = newHbase.Client(protocol);

transport.Open();var tabls =client.getTableNames();foreach(var t intabls)

{

Console.WriteLine(Encoding.Default.GetString(t));

}//写

Mutation mutation = newMutation();

mutation.Column= Encoding.UTF8.GetBytes("personal_data:abc");

mutation.Value= Encoding.UTF8.GetBytes("Hello");

client.mutateRow(Encoding.UTF8.GetBytes("emp"), Encoding.UTF8.GetBytes("008"), new List { mutation }, null);

Console.WriteLine("add success");var row = client.getRow(Encoding.UTF8.GetBytes("emp"), Encoding.UTF8.GetBytes("008"), null);foreach (var r inrow)

{

Console.WriteLine(Encoding.UTF8.GetString(r.Row));foreach(var c inr.Columns)

{

Console.WriteLine("--" + Encoding.UTF8.GetString(c.Key) + ":" +Encoding.UTF8.GetString(c.Value.Value));

}

}

client.deleteAllRow(Encoding.UTF8.GetBytes("emp"), Encoding.UTF8.GetBytes("008"), null);

Console.WriteLine("delete success");

Console.ReadKey();

transport.Close();

上述代码实现了hbase写入,读取,删除等功用。

四、测试结果

成功写入。

五、总结

1. 注意选择thrift和版本,通过查看maven的依赖获得

2. 使用thirft版本,而不是thrift2

3. hbase的rowKey+列Key相同时,会对数据进行修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中使用Thrift连接HBase,您需要按照以下步骤进行设置: 1. 安装所需的依赖项: 您需要安装`thrift`和`happybase`这两个Python库。可以使用以下命令进行安装: ```bash pip install thrift happybase ``` 2. 生成HBaseThrift代码: 使用Thrift工具生成HBaseThrift代码。您可以使用以下命令: ```bash thrift -r --gen py hbase.thrift ``` 这将生成Python的Thrift代码文件。 3. 创建HBase连接: 在Python脚本中,您需要首先创建一个HBase连接。示例代码如下: ```python import happybase connection = happybase.Connection(host='localhost', port=9090) ``` 4. 执行HBase操作: 在创建了HBase连接之后,您可以使用`connection`对象执行各种HBase操作,例如创建表、插入数据、获取数据等。以下是一些示例代码: - 创建表: ```python connection.create_table( 'mytable', { 'cf': dict(max_versions=10), } ) ``` - 插入数据: ```python table = connection.table('mytable') table.put( b'row1', { b'cf:col1': b'value1', b'cf:col2': b'value2', } ) ``` - 获取数据: ```python table = connection.table('mytable') row = table.row(b'row1') print(row) ``` - 删除数据: ```python table = connection.table('mytable') table.delete(b'row1') ``` 这只是一些示例代码,您可以根据需要使用其他HappyBase方法来执行更多操作。 5. 关闭连接: 当您完成HBase操作后,记得关闭连接以释放资源: ```python connection.close() ``` 请注意,为了成功执行这些操作,您需要确保HBase正在运行并且在指定的主机和端口上进行监听。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值