我爱编程

HBase学习

2017-07-12  本文已影响68人  小志码字

                                                           HBase学习(一)

前言:

     毕业这几年 一直从事java 工作,接触的数据存储 SQL产品类似于Oracle,Mysql,Oracle是付费级的产品 既而接触的就少了  大部分工作时间都是和MySql和打交道,存储数据和良好的设计表 优化慢sql 不能说很足的经验,基本的问题都是ok的吧,接触的NoSql产品 Redis,为了给数据库做保护,业务数据大部分都缓存在了redis中,但是随着公司sdk的业务越来越庞大,传统的关系型数据库已经满足不了sdk存储数据需求,此时就需要找替代的存储方案,由于公司sdk级别的数据,每天达到了几个G,此时CTO 开始着手搭建公司级别的大数据平台 。技术选型也就选择了开源社区比较成熟的大数据技术,Hadoop Hbase,Hive,从0到1是一个缓慢的过程。我们也就慢慢开始搭建自己公司级别的数据平台,这个过程虽然很辛苦,我负责的是研究Hbase,但是研究新技术这个过程是个开心的事情。前面说了点啰嗦,开始咱们的正题吧。

简单的先介绍一下HBase:

HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。类似于redis中的散列存储数据。

Hbase中有几个术语 大家理解了 基本操作就不是什么问题了。

行键Row Key:主键是用来检索记录的主键,访问hbasetable中的行。

列族Column Family:Table在水平方向有一个或者多个ColumnFamily组成,一个ColumnFamily中可以由任意多个Column组成,即ColumnFamily支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。

列column:由Hbase中的列族ColumnFamily +列的名称(cell)组成列。

单元格cell:HBase中通过row和columns确定的为一个存贮单元称为cell。

版本version:每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。

Hbase的表结构组成:

1)每行都有row key。

2)每条记录分隔成列族集合。

3)每个列族由若干列组成

Hbase在linux下安装请见网址:http://www.yiibai.com/hbase/hbase_installation.html

下面我通过shell 命令 来简单的演示一下HBase的基本操作吧

进入hbase的安装目录:

执行 ./bin/hbase shell 命令 进入操作界面  

list 命令:列出hbase下存储的表

创建数据库表:create ‘table_name’,'column family'  

添加数据:put‘table name’,’row’,'Column family:column name',’value’

获取某个行键的数据:

get ‘table_name’,'row_key'

获取表下所有的数据:

scan 'table_name'

删除表下某列的数据:

delete ‘table_name’, ‘row_key’, ‘column_name’;

删除表下的某行数据:

deleteall  ‘table_name’,‘row_key’

更新数据:

put‘table name’,’row’,'Column family:column name',’new_value’

      说到这 基本的操作命令已经讲完了  是不是很简单  其实HBase基本的操作还是很简单的,大家装一下体验一下 一下子就明白了,后续我还会给大家介绍用java-Client 操作Hbase  以及spirng-hadoop asynchbase 等开源的框架二次封装成独立的共有的jar包来操作基本的hbase。 这些都是很好的开源东西 大家有时间可以去学习一下。

    写的有点粗糙,望大家见谅,后面我还会继续出hbase个人学习记录,也是激励自己 同样也给大家分享 有什么不对的地方 希望大家提出来。 

  我是小志码字,一个简单码代码的小人物。

上一篇 下一篇

猜你喜欢

热点阅读