Hi,欢迎来到中国优发娱乐手机版高端品牌 - 华清远见嵌入式学院<北京总部官网>,专注嵌入式工程师培养13年!
  • 全国咨询热线:400-611-6270
  • 新浪微博
  • 微信
  • 北京
    校区
  • 上海
    校区
  • 深圳
    校区
  • 成都
    校区
  • 南京
    校区
  • 武汉
    校区
  • 西安
    校区
  • 广州
    校区
  • 沈阳
    校区
  • 济南
    校区
  • 重庆
    校区
  • 长沙
    校区
  • 研发
    中心
  • 当前位置: > 嵌入式学院 > 嵌入式学习 > 讲师博文 > Hbase初体验
    Hbase初体验
    时间:2017-09-20作者:华清远见
    1. Hbase简介 Habse全称为Hadoop Database,是一个高可靠、高性能、面向列、可伸缩的分布式非结构化数据库。用来存储大规模的半结构化和非结构化的松散数据。生产上通常是利用廉价的pc server搭建大规模的hbase集群。Hbase的底层是依赖hdfs作为文件存储系统,zookeeper为其提供协同服务,可以使用mapreduce、hive等对hbase的表数据进行分析处理。 1.1 habse的表结构模型 在hbase中,数据是以表的形式存在的,表内由行和列族组成,列族里可以是一列也可以是若干列。 表格 1.1 hbase表格式 Row Key column-family1 column-family2 column-family3 column1 column2 column1 column2 column3 column1 Row key1 t1:abc t2:gdxdf t4:dfads t3:hello t2:world Row key2 t3:abc t1:gdxdf t4:dfads t3:hello t2:dfdsfa t3:dfdf Row key3 t2:dfadfasd t1:dfdasddsf t2:dfxxdfasd t1:taobao.com row key1,row key2,row key3是三条记录的唯一的row key值,column-family1,column-family2,column-family3是三个列族,每个列族下又包括几列。比如 column-family1这个列族下包括两列,名字是column1和column2,t1:abc,t2:gdxdf是由row key1和column-family1-column1唯一确定的一个单元cell。这个cell中有两个数据,abc和gdxdf。两个值的时间戳不一样,分别是t1,t2, hbase会返回最新时间的值给请求者。 Row key:行键,是表用来检索数据记录的主键,表数据的查询是按照row key的值来排序的。它可以是任意的字符串,最大长度为64KB,通常设计rowkey的长度在10-100bytes。内容可以由使用的用户自定义。它在hbase里被保存为字节数组。Row key设计必须满足业务的需求,能够确保查询能更加方便快捷。 访问hbase table的行,有三种方式: 1.通过单个的row key访问 2.通过row key的rang 3.全表扫描 Column family:habse表里的每一个列都是归属于某个列族,列族是表chema的一部分(而列不是),列名都是以列族为前缀。例如courses:arts,courses:english 都是属于courses这个列族。也就是说列族由若干列组成,列族支持动态扩展,所以跟关系型数据库不同的是无需预先定义列的数量以及类型,所有的column都是以二进制格式存储,用户需要自行进行类型转换。对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。 单元Cell:hbase中通过row和columns确定为一个存储单元称为cell。由{row key,column(=<family>+<label>),version}确定唯一的单元。Cell中的数据是没有类型的,全部都是字节码形式存储的。 时间戳:每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整数。时间戳可以由hbase在数据写入时自动赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。 1.2 单机模式搭建与测试 该模式下,Hbase使用的是本地文件系统,而非Hdfs,所有的服务和zookeeper(hbase里面带有内置的zookeeper)都运行在JVM中。Zookeeper监听一个端口,这样客户端就可以连接Hbase了。 (1)解压hbase包到当前用户家目录  Shell Code 清单 0 1 $ cd ~ $ tar zxvf hbase-1.0.0-cdh5.5.2.tar.gz  (2)修改配置文  Shell Code 清单 0 2 vim conf/hbase-site.xml <configuration> <property> <!—region server的共享目录,单机模式是在本地。--> <name>hbase.rootdir</name> <value>file:////home/hadoop/hbase-1.0.0-cdh5.5.2/data</value> </property> </configuration> 在hbase-env.sh里将JAVA_HOME指向到你Java的安装目录。  Shell Code 清单 0 3 $ vim conf/hbase-env.sh export JAVA_HOME=/usr/local/share/jdk1.7.0_25 export HBASE_MANAGES_ZK=true (3)启动Hbase 进入hbase的bin目录里开启hbase服务 Shell Code 清单 0 4 $ cd bin $ ./start-hbase.sh 图 0 1 (4)用shell连接hbase  Shell Code 清单 0 5 $ ./hbase shell 图 0 2 (5)测试 创建表aaa,列族为people。  Shell Code 清单 0 6 create 'aaa','people'  图 0 3 插入数据 put  ‘表名’,’rowkey’,’列族名:列名’,’值’。  Shell Code 清单 0 7 put 'aaa','row1','people:cn','12333' put 'aaa','row2','people:us','133' put 'aaa','row3','people:uk','2133' 图 0 4 全局浏览表aaa。 Shell Code 清单 0 8 scan 'aaa' 图 0 5 通过rowkey get一行数据。 Shell Code 清单 0 9 get 'aaa','row2' 图 0 6 禁止操作表aaa,禁止之后,就不能再操作该表否则会报错。 Shell Code 清单 0 10 disable 'aaa' 图 0 7 删除表,先使用disable禁止表之后再使用drop删除表。  Shell Code 清单 0 11 drop 'aaa' 图 0 8 关闭shell Shell Code 清单 0 12 exit 停止hbase服务 Shell Code 清单 0 13 ./stop-hbase.sh

    发表评论
    全国咨询电话:400-611-6270,双休日及节假日请致电值班手机:15010390966 在线咨询: 曹老师QQ(3337544669), 徐老师QQ(1462495461), 刘老师 QQ(3108687497) 企业培训洽谈专线:010-82600901,院校合作洽谈专线:010-82600350,在线咨询:QQ(248856300) Copyright 2004-2017 华清远见教育集团 版权所有 ,沪ICP备10038863号,京公海网安备110108001117号

    优发娱乐手机版

    百度360搜索搜狗搜索

    优发娱乐手机版

    百度360搜索搜狗搜索