2021SC@SDUSC
目录- 一、Hbase概述
- 什么是Hbase
- Hbase模块
- Hbase中相关模块的作用
- 逻辑模型
- 特点
- 1.半结构化数据:
- 2.可扩展性:
- 3.有序映射的映射集合:
- 二、Hbase安装与配置
- centos下安装Hbase
- Zookeeper安装与配置
- Hbase Shell验证环境
- 三、任务划分
Hbase是一种构建在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统,主要用来存储非结构化和半结构化的松散数据。Hbase利用hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理Hbase中的海量数据,利用Zookeeper作为其分布式协同服务。Hbase介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。
与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
Hbase采用java语言实现,在其内部实现了BigTable论文提到的一些压缩算法、内存操作和布隆过滤器等,这些能力使得Hbase在海量数据存储、高性能读写场景中得到了大量应用,如Facebook在2010年11月开始便一直选用Hbase来作为消息平台的存储层技术。
- Master
Hbase Master用于协调多个Region Server,侦测各个RegionServer之间的状态,并平衡RegionServer之间的负载。具有为HRegionServer分配HRegion、负责HRegionServer的负载均衡、发现失效的HRegionServer并重新分配、HDFS上的垃圾文件回收、处理Schema更新请求的作用。Hbase允许多个Master节点共存,但是这需要Zookeeper的帮助。当正在工作的Master节点宕机时,其他的Master则会接管Hbase的集群。 - Region Server
对于一个RegionServer而言,其包括了多个Region。RegionServer的作用只是管理表格,以及实现读写操作。具有维护HMaster分配给它的HRegion,处理对这些HRegion的IO请求、负责切分正在运行过程中变得过大的HRegion的作用。 - Zookeeper
对于Hbase而言,Zookeeper的作用是至关重要的。首先Zookeeper是作为Hbase Master的HA解决方案,并且Zookeeper负责Region Server的注册。
以表的形式存放数据,表由行和列组成,每个列组成输入某个列族,由行和列确定的存储单元成为元素,每个元素保存了同一份数据的多个版本,由时间戳来标志区分。
特点 1.半结构化数据:hbase设计上没有严格形态的数据,数据记录可能包含不一致的列、不确定的大小等
2.可扩展性:(1)在半结构化逻辑模型里数据构成是松耦合的,这一点有利于物理松散存放;
(2)hbase的物理模型设计上适合于物理松散存放,这一点也影响了逻辑模型;
(3)这种物理模型设计迫使hbase放弃了一些关系型数据库具有的特性;
(4)特别是,hbase不能实时关心约束并且不支持多行事物。
(1)逻辑上把数据组织成嵌套的映射的映射集合;
(2)每层映射集合里,数据按照映射集合的键字典排序。
-
准备JDK环境
相关教程 centos安装JDK-tar.gz文件. -
下载Hbase
下载地址 Hbase-2.12-bin.tar.gz文件. -
通过ftp工具将文件上传到centos主机上。
-
进入安装目录
cd /opt/
-
解压安装文件到当前目录
tar -zxvf /var/ftp/pub/hbase-2.1.2-bin.tar.gz
-
添加JAVA_HOME环境变量
修改$Hbase_HOME/conf/hbase-env.sh文件,添加JAVA_HOME配置 -
启动和停止服务
cd hbase-2.1.2/bin/ ./start-hbase.sh //启动服务 ./stop-hbase.sh //停止服务
-
浏览器上访问http://192.168.153.131:16010,查看安装信息。
图片:
-
在Zookeeper官网下载zookeeper官网链接.
-
通过ftp工具传到hadoop安装目录/opt下,使用tar命令将压缩包进行解压,执行命令:
tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz
-
进入zookeeper的配置文件目录,并查看该目录下的文件
cd apache-zookeeper-3.5.5-bin/conf/ ll
-
该目录下有示例配置文件zoo_sample.cfg,将其拷贝为zoo.cfg,然后使用vim编辑配置文件zoo.cfg
cp zoo_sample.cfg zoo.cfg vim zoo.cfg
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=D:\zookeeper-3.5.4-beta\data dataLogDir=D:\zookeeper-3.5.4-beta\log # the port at which the clients will connect admin.serverPort=8082 clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
修改内容:
增加了:admin.serverPort=8082 #不然会出现端口被占用的情况,因为默认是和Apache.Tomcat使用的8080端口
修改了:dataDir=D:\zookeeper-3.5.4-beta\data #保存数据的目录
dataLogDir=D:\zookeeper-3.5.4-beta\log #保存日志的目录
当这些配置好后,启动Zookeeper,启动后要检查Zookeeper是否已经在服务,可以通过netstat- ano命令查看是否有配置的clientPort端口号在监听服务。
Hbase Shell验证环境-
进入shell命令行。在安装目录下的bin目录执行: ./hbase shell
./hbase shell
-
创建表
create 'persn','code','name','info'
-
添加记录
put 'person', '01', 'name', 'lucy' put 'person', '01', 'info:age', '0' put 'person', '02', 'name', 'lily' put 'person', '02', 'info:age', '1'
- 查看行记录
get 'person', '01', 'name' get 'person', '01', 'info:age' get 'person', '01'
- 查看所有数据
scan 'person' scan 'person', {COLUMN=>'name'}
我负责的是Hbase的region部分,包括region的定位、region的分配、region server的上线下线,后续会根据进度进行动态调整。



