一、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’}


观察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[])

HBase安装配置及测试相关推荐

  1. hbase安装配置(整合到hadoop)

    如果想详细了解hbase的安装:http://abloz.com/hbase/book.html 和官网http://hbase.apache.org/ 1.  快速单击安装 在单机安装Hbase的方 ...

  2. hbase安装配置 整合到hadoop

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 如果想详 ...

  3. Linux环境HBase安装配置及使用

    Linux环境HBase安装配置及使用 1. 认识HBase (1) HBase介绍 HBase = Hadoop database,Hadoop数据库 开源数据库 官网:hbase.apache.o ...

  4. 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 安装配置及测试

    Ubuntu14.04 Opencv3.3.0 安装配置及测试 网上有许多的Opencv的安装方法,不过找到一个适合自己的安装路数才最为重要,笔者整理了一下自己的安装配置测试过程,仅供学习参考. ## ...

  5. HBase安装配置以及Java操作hbase

    2019独角兽企业重金招聘Python工程师标准>>> Apache HBase Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储. 当您需要对大数据 ...

  6. NodeJS、NPM安装配置与测试步骤(windows版本)

    1.windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到首页的"INS ...

  7. django安装配置及测试

    django安装之前我们假设你已经安装了python,和mysql(不是必须的):(如果没有google一下挺简单不介绍了) 下面直接介绍django的安装配置: 到下面连接可以下载www.djang ...

  8. 大数据技术之 HBase安装配置

    大数据技术之 HBase安装 1.hbase依赖于hadoop以及zookeeper,所以 1.1 首先myhadoop.sh start 1.2 然后zk.sh start 接下来安装hbase 1 ...

  9. hadoop组件之hbase安装配置

    准备工作 1.软件包 2.导入到虚拟机的opt目录下,并解压和改文件夹名字 tar -zxvf hbase-1.2.0-cdh5.14.2.tar.gz mv hbase-1.2.0-cdh5.14. ...

  10. Spark 安装配置简单测试

    简介 Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce ...

最新文章

  1. 看菲菲详解如何快速获取linux命令帮助
  2. Scrapy shell调试网页的信息
  3. Hadoop 单机版和伪分布式版安装
  4. TACACS 协议简介与开发总结
  5. AndroidLinker与SO加壳技术之上篇
  6. Mysql HA实现MYSQL的高可用(上)
  7. 十二、ubuntu20.10(Linux)下Pycharm配置pyqt5开发环境
  8. 【CCS2018】SDN跨应用中毒攻击
  9. 云图说|ModelArts Pro:让AI开发更简单
  10. 服务器x不会下载mysql_MySQL_解决MySQL数据库死掉以及拒绝服务的方法,从Mysql 5.x的某个版本之后,MySQ - phpStudy...
  11. ASP.Net中调用CSS
  12. php 基础 自动类型转换
  13. 如何完全卸载MySQL
  14. 11 个超火的前端必备在线工具,终于有时间上班摸鱼了
  15. Eclipse设置护眼浅绿色背景
  16. 热血传奇之周星弛[转载]【出处:未知】
  17. windows输入法只有中文导致无法使用一系列快捷键问题
  18. BPF之巅--洞悉Linux系统和应用性能 Brendan Gregg
  19. 三级分销软件开发技术分销系统模式
  20. 全球及中国大豆蛋白行业市场需求趋势及未来战略规划建议报告2022-2028年

热门文章

  1. 整理几款实用javascript富文本编辑器
  2. MSN无法登陆错误汇总
  3. PSP3000购机心得
  4. 通过IP地址获取地理位置信息
  5. Halcon的一维码和二维码解码步骤和技巧
  6. 安装虚拟光驱Daemon Tool 安装失败
  7. matlab生成pdf报告,MATLAB发布代码---生成文档pdf
  8. 怎么用计算机拨号手机,教你如何用电脑连接手机自动打电话
  9. 第三章 软件项目范围管理
  10. VMware:虚拟机(xp)与主机(win10)连接步骤(超详细)