Hbase介绍 HBase定义 HBase是以HDFS为数据存储的一种分布式、可扩展的NoSQL数据库。 HBase数据模型 Hbase的设计理念依据是Google的BigTable论文,论文中的介绍:BigTable是一个稀疏的、分布式的、持久的多维排序Map。 Base数据模型主要由table、row、column、timestamp、cell几个元素构成。 table表 一个表可能包含多行数据,表其实是一个分布式的表,真正的数据是存储在Region中的,Region可以理解为分片,每个表会包含多个分片,分别由不同的RegionServer管理,每个分片会有多个副本,以实现分片的高可用。 row行 一行数据包含唯一的rowkey,多个column及对应的值,一张表中所有row都按照rowkey的字典顺序由小到大排列;因为数据在Region上的分布也与rowkey相关,所以在存储数据时,设计合理的rowkey使得数据尽可能在Region上分布均匀,在查询数据时就不会出现一个RegionServer负载过高,而其它RegionServer负载较低的情况。 column列 列与关系型数据的列不同,HBase中的column由columnfamily(列簇)和qualifier(列)组成。两者之间使用:相连,一个列簇下可以有多个列。 cell单元格 单元格由五元组(rowkey、column、timestamp、type、value)组成,其中type标识操作的类型(PutDelete)这样的操作类型,在HBase底层以KV形式存储,key为(rowkey、column、timestamp、type),值为value。 timestamp时间戳 每个单元格在写入HBase时都默认分配一个时间戳,作为单元格的版本,在写入时也可以自带时间戳,HBase支持多版本特性,同一个rowkey、column下可以有多个value存在,这些value使用timestamp作为版本号,版本号越大,数据越新。Hbase安装 前置条件 安装环境:操作系统为CentOS,已配置免密登录,已配置Java环境变量,已安装Hadoop。 参考:Hadoop集群搭建、操作HDFS文件系统、Zookeeper集群安装搭建。 安装介质:hbase2。0。5bin。tar。gz,地址:https:hbase。apache。org 安装服务器:node51(192。168。2。51),node52(192。168。2。52),node53(192。168。2。53)。 上传安装介质并解压(node51)tarzxvfhbase2。0。5bin。tar。gzCoptmodulecdoptmodulemvhbase2。0。5hbase 环境变量:sudovimetcprofile。dmyenv。sh配置环境变量HBASEHOMEexportHBASEHOMEoptmodulehbaseexportPATHPATH:HBASEHOMEbin执行使环境变量生效sourceetcprofileechoHBASEHOME 配置(hbaseenv。sh):备份一下:cdHBASEHOMEconfcphbaseenv。shhbaseenv。sh。bakcphbasesite。xmlhbasesite。xml。bakvimhbaseenv。sh:exportHBASEMANAGESZKfalse 配置(vimhbasesite。xml):lt;?xmlversion1。0?lt;?xmlstylesheettypetextxslhrefconfiguration。xsl?configuration!部署分布式服务propertynamehbase。cluster。distributednamevaluetruevalueproperty!存储HDFS的节点propertynamehbase。rootdirnamevaluehdfs:node53:8020hbasevalueproperty!ZooKeeper管理节点propertynamehbase。zookeeper。quorumnamevaluenode53,node54,node55valueproperty!使用master节点2181端口propertynamehbase。zookeeper。property。clientPortnamevalue2181valueproperty!ZooKeeper超时时间propertynamezookeeper。session。timeoutnamevalue120000valuepropertyconfiguration 配置(vimregionservers):node53node54node55 分发到其它服务器节点:xsync。shhbase Hbase启停单点启动:binhbasedaemon。shstartmasterbinhbasedaemon。shstartregionservers注:启动前先保证hadoop和zookeeper。集群启停:binstarthbase。shbinstophbase。sh注:启动后的进程HRegionServer,其中node55多了一个HMaster进程。 Web访问:http:node53:16010 进入命令行binhbaseshellhelp 管理脚本(hbased。sh)!binbashif〔lt1〕thenecho没有参数:传入参数为:start、stopficase1instart)sshnode55optmodulehbasebinstarthbase。sh;;stop)sshnode55optmodulehbasebinstophbase。sh;;esac