栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

2021SC@SDUSC HBase(一) 项目综述

大数据系统 更新时间:发布时间: 百科书网 趣学号

2021SC@SDUSC

目录
  • 一、Hbase概述
    • 什么是Hbase
        • Hbase模块
        • Hbase中相关模块的作用
    • 逻辑模型
    • 特点
        • 1.半结构化数据:
        • 2.可扩展性:
        • 3.有序映射的映射集合:
  • 二、Hbase安装与配置
    • centos下安装Hbase
    • Zookeeper安装与配置
    • Hbase Shell验证环境
  • 三、任务划分

一、Hbase概述 什么是Hbase

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来作为消息平台的存储层技术。

Hbase模块

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不能实时关心约束并且不支持多行事物。

3.有序映射的映射集合:

(1)逻辑上把数据组织成嵌套的映射的映射集合;
(2)每层映射集合里,数据按照映射集合的键字典排序。

二、Hbase安装与配置 centos下安装Hbase
  1. 准备JDK环境
    相关教程 centos安装JDK-tar.gz文件.

  2. 下载Hbase
    下载地址 Hbase-2.12-bin.tar.gz文件.

  3. 通过ftp工具将文件上传到centos主机上。

  4. 进入安装目录

    cd  /opt/
    
  5. 解压安装文件到当前目录

    tar -zxvf /var/ftp/pub/hbase-2.1.2-bin.tar.gz
    
  6. 添加JAVA_HOME环境变量
    修改$Hbase_HOME/conf/hbase-env.sh文件,添加JAVA_HOME配置

  7. 启动和停止服务

    cd hbase-2.1.2/bin/
    ./start-hbase.sh    //启动服务
    ./stop-hbase.sh    //停止服务
    
  8. 浏览器上访问http://192.168.153.131:16010,查看安装信息。
    图片:

Zookeeper安装与配置
  1. 在Zookeeper官网下载zookeeper官网链接.

  2. 通过ftp工具传到hadoop安装目录/opt下,使用tar命令将压缩包进行解压,执行命令:

     tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz
    
  3. 进入zookeeper的配置文件目录,并查看该目录下的文件

      cd apache-zookeeper-3.5.5-bin/conf/
      ll
    
  4. 该目录下有示例配置文件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验证环境
  1. 进入shell命令行。在安装目录下的bin目录执行: ./hbase shell

     ./hbase shell
    
  2. 创建表

    create 'persn','code','name','info'
    

  3. 添加记录

    put 'person', '01', 'name', 'lucy'
    put 'person', '01', 'info:age', '0'
    put 'person', '02', 'name', 'lily'
    put 'person', '02', 'info:age', '1'
    

  1. 查看行记录
    get 'person', '01', 'name'
    get 'person', '01', 'info:age'
    get 'person', '01'
    
  2. 查看所有数据
     scan 'person'
     scan 'person', {COLUMN=>'name'}
    
三、任务划分

我负责的是Hbase的region部分,包括region的定位、region的分配、region server的上线下线,后续会根据进度进行动态调整。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/279825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号