HBase安装配置及测试

一、HBase简介

(一)Hadoop

  1. 核心
    HDFS分布式存储、MapReduce分布式计算、Yarn资源调度和管理
  2. 局限性
    批量处理(MR)、顺序访问数据(HDFS)
    查找数据是必须搜索整个数据集,效率很低

(二)HBase

在这里插入图片描述

  1. HBase是BigTable的开源java版本,建立在hdfs之上,分布式、列存储、支持实时读写、nosql(k-v)的数据库
  2. 结构:主键(rowKey)、timestamp(时间戳)、column family(列簇)和column(列)
  3. HBase仅能通过主键(rowkey)和主键的范围(range)检索数据
  4. 可以存储结构化和半结构化的数据
  5. HBase中所有的数据用字节数组byte[]来进行存储
  6. 可以横向扩展,可以不断的增加服务器来提高存储能力,从而实现海量存储
  7. 数据量很大,可以有十几亿行,几百万列
  8. 面向列存储
  9. 稀疏存储(稀疏矩阵:非零元素很少的矩阵,利用三元组(行,列,值)存储非零元素,0元素不存储)

(三)HBase的应用场景

  1. 对象存储(oss)
    新闻、网页、图片、视频等,例如阿里云oss
  2. 时序数据
    每个数据都带有时间戳叫做时序数据,比如记录传感器的数据
  3. 推荐画像
    用户画像的数据其实就是一个比较大的稀疏矩阵,比如蚂蚁金服的风控系统
  4. Olap
    在线联机分析系统
    注:oltp(在线事务分析系统,建立在关系数据库之上的,支持回滚)
  5. Feeds流
    典型的应用就是微信朋友圈类似的应用,发布新内容,对新内容进行点赞评论
  6. 爬虫数据的存储

(四)HBase的特点

  1. 强一致性读/写
    CAP原则
    在这里插入图片描述

  2. 自动分块
    通过Region分布在集群上

  3. 自动故障转移

  4. Hadoop/HDFS集成

  5. MapReduce

  6. Java API

(五)HBase的发展过程

在这里插入图片描述

(六)RDBMS和HBase的比较

  1. RDBMS
  • RDBMS(关系数据库管理系统,mysql、sqlserver、Oracle)
  • 数据库以表的形式独立存在
  • 支持FAT(dos)、NTFS(windows)、NXT(linux)
  • 主键(primary key)
  • 分库分表
  • 行、列、单元格
  • 支持向上扩展
  • 使用sql(增删改查)
  • 面向行
  • acid特性
    在这里插入图片描述
  • 结构化的数据(二维表格)
  • 支持事务(transaction)
  • 支持join(连接,全连接、自然连接、左连接、右连接)
  • 中心化
  1. HBase
  • 以表的形式存在
  • 支持HDFS
  • 使用行键(rowkey)
  • 分布式存储
  • 支持向外扩展
  • 使用api和mapreduce、spark、flink来访问HBase表数据
  • 面向列
  • 不支持acid,但是遵循cap原则
  • 结构化和非结构化数据
  • 不支持事务
  • 不支持join
  • 分布式

(七)HBase和HDFS的对比

  1. HDFS
  • 分布式
  • 存储系统,不是一个文件系统,无法快速的查询数据
  1. HBase
  • 建立在hdfs上,为大型表提供快速查找和更新
  • HBase在hdfs上建立了storefiles的索引,进行快速查询

(八)HBase和Hive的对比

  1. Hive
  • 数据仓库工具:Hive的本质就是相当于将hdfs的文件在mysql中做了一个一一对应的映射关系,以方便HQL(类sql)进行数据的管理
  • 用于数据分析、清洗等;适用于离线数据,延迟很高
  • 基于HDFS和MapReduce:Hive数据存储在hdfs的DataNode上,HQL转换为MapReduce程序执行
  1. HBase
  • NoSql:面向列的非关系型数据库
  • 用于存储结构化和非结构化数据
  • 基于hdfs:HBase的存储文件Hfile存放在DataNode上,被RegionServer以region(分区)的形式进行管理
  • 延迟较低,适合于olap(实时的在线业务,如天猫双十一实时成交额大屏展示)
  1. 总结
  • Hive和HBase是两种基于Hadoop的不同技术
  • Hive是一种类sql的引擎,并运用mapreduce执行任务
  • Hbase是一种nosql的key/value数据库,可以使用spark或flink高速执行任务
  • 两者可以同时使用,用hive进行统计查询,hbase进行实时查询,数据可以在两者之间进行转换

(九)NoSql非关系型数据库

  1. Sql数据库:增(insert into)删(delete from)改(update set)查(select)mysql、Oracle、sqlserver
  2. NoSql:not only sql(不仅仅是sql),key/value格式的数据库,redis(高速缓存比如秒杀抢购)、memcache、mongodb、hbase

二、HBase集群搭建

(一)HBase下载并安装

  1. 官网下载
    百度搜索hbase
    在这里插入图片描述
    点击download,选择自己需要的版本,本次安装选择版本2.4.10
    在这里插入图片描述
  2. 上传到服务器
    在这里插入图片描述
  3. 解压
tar -xzvf hbase-2.4.10-bin.tar.gz -C ../servers/
  1. 配置环境变量
    在这里插入图片描述
  2. 使环境变量起作用
source /etc/profile
  1. 测试
    在这里插入图片描述
    说明配置成功
  2. 修改配置文件
    在这里插入图片描述
  • hbase-env.sh
    修改jdk的路径
    在这里插入图片描述
    修改不适用hbase自己的zookeeper,使用外部的zookeeper
    在这里插入图片描述
  • hbase-site.xml
    在这里插入图片描述
  • regionservers
    在这里插入图片描述
  1. 分发文件
  • 分发hbase安装包
scp -r hbase-2.4.10/ hadoop02:$PWD
scp -r hbase-2.4.10/ hadoop03:$PWD
  • 分发环境变量配置文件
scp /etc/profile hadoop02:/etc
scp /etc/profile hadoop03:/etc

(二)启动

  1. 启动hadoop
  2. 启动zookeeper
  3. 启动hbase
start-hbase.sh

在这里插入图片描述
4. 查看进程
在这里插入图片描述

(三)HBase的web UI查看

在这里插入图片描述

(四)HBase shell的测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题:出现乱码
解决:添加选项{FORMATTER => ‘toString’}

扫描二维码关注公众号,回复: 14685571 查看本文章

在这里插入图片描述
观察hdfs上文件信息,hbase的数据都储存在hdfs上
在这里插入图片描述

(五)各种角色服务器参考的硬件配置

在这里插入图片描述

推荐:

  • Master服务器要运行NN、RM、HM,推荐内存24GB以上
  • Slave服务器要运行DN、NM、HR,推荐内存24GB以上
  • 根据cpu的核心数来选择在某个节点上运行的进程数,例如,两个4核cpu=8核,每个java进程都可以独立占用一个核

三、HBase原理和数据模型

(一)概述

在hbase中,数据储存在行和列的表中,可以把表看作是多个维度的map(k-v)结构
在这里插入图片描述

(二)术语

  1. 表(table)
  • hbase中数据都是以表的形式来组织的
  • hbase中的表由多行(几十亿)组成
    在这里插入图片描述
  1. 行(rowkey)
  • hbase中的行由一个行键(rowkey)和一个或多个列组成
    ,列的值与rowkey和列关联
  • hbase中存在储存时按行键以字典顺序排列
  • 行键的排列非常重要
  1. 列(column)
    hbase中列由列簇(column famliy)和列名组成,构成列限定符
    在这里插入图片描述

  2. 列簇(column family)

  • 处于性能的考虑,列簇将一组列及其值组织在一起
  • 每个列簇都有一组存储属性,比如是否储存在内存、数据是否被压缩及使用的编码等等
    -在这里插入图片描述
  1. 列限定符
  • 列簇中包含一个个的列限定符
  • 不同的行可能会存储不同的列限定符
    在这里插入图片描述
  1. 单元格
  • 单元格是行、列簇和列限定符的组合
  • 包含一个值和时间戳(表示该值的版本)
  • 单元格的内容以二进制存储即字节数组(byte[])
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48874360/article/details/124800923
今日推荐