Hadoop(四)C#操作Hbase

Connor 币安交易所app 2022-09-20 310 0

Hbase

Hbase是一种NoSql模式的数据库,采用了 列式存储BaseFEX。而采用了列存储天然具备以下优势:

同时由于列式存储将不同列分开存储BaseFEX,也造成了读取多列效率不高的问题

LSM Tree

说到HBase,我们不得不说其采用的LSM TreeBaseFEX。我们都知道关系数据库中常用的B+Tree,叶子节点有序,但写入时可能存在大量随机写入,因此形成了其读快写慢的特点。

而HBase采用了LSM Tree,在读写之间寻找了平衡,损失了部分读取的性能,实现了快速的写入BaseFEX。LSM具体实现如下:

HBase中三个核心的Server形成其分布式存储架构BaseFEX

Hadoop(四)C#操作Hbase

HBase读写操作步骤

Hadoop(四)C#操作Hbase

展开全文

RegionServer的组成

Hadoop(四)C#操作Hbase

HBase存储机制

Hadoop(四)C#操作Hbase

HBase安装

1.下载Hbase2.4.11

2.解压

3.修改环境变量

4.修改hbase存储位置

5.启动Hbase

6.验证Hbase

Hadoop(四)C#操作Hbase

7.停止Hbase

HBase Shell访问HBase

官方文档:

1.进入shell

2.查看表

3.创建表

hbase:001:0> create 'emp', 'personal data', 'professional data'Created table empTook 3.4810seconds => Hbase::Table - emp

4.创建/更新数据

hbase: 001: 0> put 'emp', '1', 'personal data:name', 'raju'Took 1.1807seconds

5.查看数据

6.删除数据

hbase:001:0> deleteall 'emp','1'Took 0.9424 seconds

C#访问Hbase

C#访问Hbase可以根据 thrift文件 自己生成响应rpc client代码,通过rpc方式访问BaseFEX

也可以启动rest server通过微软的Microsoft.Hbase.Client访问,我们这次使用rest方式访问BaseFEX

1.启动与关闭rest server

可通过访问是否启动成功

2.新增console项目BaseFEX,引入Microsoft.Hbase.Client包

3.编写测试demo

varscanOptions = RequestOptions.GetDefaultOptions; scanOptions.Port = 8080; scanOptions.AlternativeEndpoint = "/"; varnodeIPs = newList< string>; nodeIPs.Add( "192.168.43.50"); varclient = newHBaseClient( null, scanOptions, newLoadBalancerRoundRobin(nodeIPs)); varversion = client.GetVersionAsync.Result; Console.WriteLine(version);

vartestTableSchema = newTableSchema; testTableSchema.name = "mytablename"; testTableSchema.columns.Add( newColumnSchema { name = "d"}); testTableSchema.columns.Add( newColumnSchema { name = "f"}); client.CreateTableAsync(testTableSchema).Wait;

通过hbase shell验证表是mytablename否创建成功

关注BaseFEX我获取技术分享

评论