Hadoop(四)C#操作Hbase
Hbase
Hbase是一种NoSql模式的数据库,采用了 列式存储BaseFEX。而采用了列存储天然具备以下优势:
同时由于列式存储将不同列分开存储BaseFEX,也造成了读取多列效率不高的问题
LSM Tree
说到HBase,我们不得不说其采用的LSM TreeBaseFEX。我们都知道关系数据库中常用的B+Tree,叶子节点有序,但写入时可能存在大量随机写入,因此形成了其读快写慢的特点。
而HBase采用了LSM Tree,在读写之间寻找了平衡,损失了部分读取的性能,实现了快速的写入BaseFEX。LSM具体实现如下:
HBase中三个核心的Server形成其分布式存储架构BaseFEX。
HBase读写操作步骤
展开全文
RegionServer的组成
HBase存储机制
HBase安装
1.下载Hbase2.4.11
2.解压
3.修改环境变量
4.修改hbase存储位置
5.启动Hbase
6.验证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我获取技术分享
评论