大数据学习(4)--分布式数据库HBase

文章目录

  • 目录
    • 1.HBase概述
      • 1.1BigTable
      • 1.2 HBase简介
      • 1.3 HBase和传统的关系型数据库之间的区别
    • 2.HBase访问接口
    • 3.HBase数据模型
      • 3.1 数据模型概述
      • 3.2 数据模型相关概念
      • 3.3 数据坐标
      • 3.4 概念视图
      • 3.5 物理视图
      • 3.6 面向列的存储
    • 4.HBase的实现原理
      • 4.1 HBase功能组件
      • 4.2 表和region
      • 4.3 region的定位
    • 5.HBase运行机制
      • 5.1 HBase系统架构
      • 5.2 region服务器工作原理
      • 5.3 Store工作原理
      • 5.4 HLog工作原理
    • 6.HBase应用方案
      • 6.1 HBase实际应用过程中的性能优化方案
      • 6.2 HBase性能监测
      • 6.3 在HBase上构建SQL引擎
      • 6.4 构建HBase二级索引(列的直接索引)
    • 7.HBase编程实践
      • 7.1 HBase的安装和配置
      • 7.2 HBase常用的Shell命令
      • 7.3 HBase常用的JAVA API及应用
    • 8.总结

目录

1.HBase概述

1.1BigTable

在这里插入图片描述
在这里插入图片描述

1.2 HBase简介

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表

在这里插入图片描述在这里插入图片描述

1.3 HBase和传统的关系型数据库之间的区别

在这里插入图片描述
在这里插入图片描述

2.HBase访问接口

在这里插入图片描述

3.HBase数据模型

3.1 数据模型概述

  • HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符(列名)和时间戳每个值是一个未经解释的字符串,没有数据类型
  • 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列
  • 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一起
  • 列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义列的数量以及类型,所有列均以字符串形式存储,用户需要自行进行数据类型转换
  • HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)

3.2 数据模型相关概念

在这里插入图片描述

3.3 数据坐标

在这里插入图片描述

3.4 概念视图

在这里插入图片描述

3.5 物理视图

从上面的概念师徒我们可以看到,有很多行的记录在某些列簇的列上面时没有数据的,如果直接按照概念视图进行存储,则会造成很大的空间上的浪费,所以物理视图中,将概念视图中按照列簇进行拆分成多个表格,然后对拆分后的表格进行存储。
在这里插入图片描述

3.6 面向列的存储

在这里插入图片描述

行式存储指的是将一条记录以行的方式进行存储;列式存储指的是将一条记录按照列的方式进行存储。

在这里插入图片描述
列式存储相比于行式存储的优势:

  • 由于在实际的数据分析应用中,我们常常感兴趣的是某一列的数据的一个分布情况,所以按照列存储的话,很方便的将数据按照属性(列名)提取出来。如果按照行存储,则要遍历每一行,然后将数据进行拼接,效率低下。
  • 每条记录的相同列的数据的取值,类型相近,利于数据的存储
  • 可以动态的实现列的添加,而不像传统的关系型数据库,在确定表的结构后便无法进行修改。

4.HBase的实现原理

4.1 HBase功能组件

在这里插入图片描述

4.2 表和region

在这里插入图片描述
在这里插入图片描述

4.3 region的定位

在这里插入图片描述

元数据:描述数据的数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.HBase运行机制

5.1 HBase系统架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 region服务器工作原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 Store工作原理

在这里插入图片描述

5.4 HLog工作原理

在这里插入图片描述
在这里插入图片描述

6.HBase应用方案

6.1 HBase实际应用过程中的性能优化方案

默认的HBase行健时按照升序存储的,而实际应用中常常时查看最新的几条记录,所以实际过程中会将HBase的存储修改为降序存储。
在这里插入图片描述
在这里插入图片描述

6.2 HBase性能监测

  • Master-status(自带)
    在这里插入图片描述
  • Ganglia
    在这里插入图片描述
  • OpenTSDB
    在这里插入图片描述
  • Ambari
    在这里插入图片描述

6.3 在HBase上构建SQL引擎

在这里插入图片描述
在这里插入图片描述

6.4 构建HBase二级索引(列的直接索引)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.HBase编程实践

参考网站

7.1 HBase的安装和配置

在这里插入图片描述

7.2 HBase常用的Shell命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 HBase常用的JAVA API及应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

servlet中的数据存储

在servlet基础中,我们: 用以下几种方式实现数据存储和共享: 1)在客户端页面和服务器端程序之间,用request中的getParameter()方法共享数据 2)在请求和请求之间,可以用get/setAttribute方法来共…

Linux(2)-tar,find,grep,xargs

常用命令1. 打包压缩/解包解压缩 tar1.1 打包 tar -czvf xxx.tar.gz xxx1.2 解压 tar -xzvf xxx.tar.gz2.文件/目录搜索2.1 find文件/目录查找2.2 grep文本匹配3. 复合命令3.1 > 重定向3.2 | 管道.shutdown1. 打包压缩/解包解压缩 tar tar和gzip是对黄金搭档:ta…

servlet——三兄弟的另外两个:过滤器/监听器

过滤器 我们写多了servlet会发现,很多代码和功能是重复的,比如:解决中文乱码问题、权限验证、日志的记录等,他们的特点是:代码相同或相似、分散在不同位置、不利于维护。 过滤器就是他们的解决办法。 过滤器是请求到…

kaggle(05)---Event Recommendation Engine Challenge(基础版)

文章目录目录1.比赛相关介绍1.1 比赛介绍1.2 数据集介绍1.3 评价标准介绍1.4 个人理解2. 解决方案2.1 统计用户和event信息2.2 计算用户相似度2.3 用户社交关系信息处理2.4 构建event和event相似度数据2.5 活跃度/event热度数据2.6 构建特征2.7 模型构建和预测3. 遇到的问题4. …

Python(2)-第一个python程序、执行python程序三种方式

第一个Python 程序1. 第一个Python 程序2. 常用两Python个版本3. 程序执行的三种方式3.1 解释器3.2 交互式运行Python程序3.3 IDE(集成开发环境)-pycharm1. 第一个Python 程序 Python 源程序就是一个特殊格式的文本文件,所以可以采用任意的文…

推荐算法---FM,协同过滤

文章目录目录1.FM算法产生背景2.FM算法模型3.FM算法VS其他算法4.推荐算法总结目录 1.FM算法产生背景 在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合;非线性…

借助桶排序思想完成的一道题

问题: 数组排序之后的相邻数的最大差值; 嗯,你可以排序,然后找相邻的最大差值。 但是你觉得这么简单我写他干啥。 最优解:时间复杂度O(N),空间O(1) 那我们开始说这种方法: 1)遍…

Python(3)-Pycharm基本使用技巧

初识Pycharm1.界面2.恢复初始设置3.第一次打开Pycharm4.打开一个项目5.设置解释器的版本。6.新建项目7.编辑器、控制台的字体设置Pycharm–适合于开发管理大型项目,项目是用以解决复杂功能的软件。1.界面 导航区–主要有什么文件 编辑区–编辑具体的文件 控制台窗口…

推荐算法概述(01)

1.什么是推荐系统 用户没有明确的需求,你需要的是一个自动化的工具,它可以分析你的历史兴趣,从庞大的电影库中找到几部符合你兴趣的电影供你选择。这个工具就是个性化推荐系统。 推荐系统的主要任务 推荐系统的任务就是联系用户和信息&…

何为布隆过滤器

问题的提出 我们有一个不安全网页的黑名单,包含了100亿个黑名单网页的URL,每个网页URL最多占用64B.。 现在我们要设计一个网页过滤系统,这个系统要判断该网页是否在黑名单里,但是我们的空间有限,只有30GB. 允许有万分之一的判断…

推荐算法--利用用户行为数据(02)

文章目录目录1.什么是用户行为数据?1.1用户行为分类2.用户行为数据如何使用?2.1 用户活跃度和物品流行度的分布2.2 用户活跃度和物品流行度的关系2.3 协同过滤算法3.实验设计和算法评测4.基于邻域的的推荐算法4.1 基于用户的协同过滤算法4.2 基于物品的协…

《Head First设计模式》第九章(2)组合模式

组合模式 ​ 基于前一篇迭代模式的案例进行需求更新,餐厅的菜单管理系统需要有煎饼屋菜单和披萨菜单。现在希望在披萨菜单中能够加上一份餐后甜点的子菜单。 在迭代模式中,披萨菜单是用数组维护的,我们需要让披萨菜单持有一份子菜单&#xf…

Python(4)--Pycharm安装、使用小技巧

Pycharm安装1.专业版Pycharm 安装2.设置Pycharm桌面快捷图标3.Linux卸载一个软件4.教育版Pycharm的安装5.多文件项目演练(Pycharm针对学生和教师开发了免费使用版)1.专业版Pycharm 安装 1.官网下载安装包 .tar.gz 2.解压缩 tar -zxvf 文件名 3.移动解压…

推荐算法--推荐系统冷启动问题(03)

文章目录目录1.什么是冷启动问题?1.1冷启动问题1.2 冷启动问题的分类1. 用户冷启动2 物品冷启动3 系统冷启动2.如何解决冷启动问题?2.1利用用户注册信息2.2选择合适的物品启动用户的兴趣2.3利用物品的内容信息2.4 发挥专家的作用目录 1.什么是冷启动问题…

《Head First 设计模式》第十章-状态模式 状态模式

状态模式 策略模式和状态模式是双胞胎,在出生时才分开。你已经知道,策略模式是围绕可以互换的算法来创建成功业务的,然而,状态走的是更崇高的路,它通过改变对象内部的状态来帮助对象控制自己的行为。 定义状态模式 …

推荐算法--利用用户标签数据(04)

文章目录流行的推荐系统通过3种方式联系用户兴趣和物品 (1):利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品,这是基于物品的算法。 (2):利用和用户兴趣相似的其他用户…

Python(5)-注释

Python注释1.单行注释2. 多行注释(块注释)3.注释的使用和代码规范pyhton 的注释 使用自己熟悉的语言(中文),解释代码。Python解释器在执行文件时不会执行井号右边边的内容。1.单行注释 # 井号后面跟着注释内容 灰灰的虚…

网络原理知识点总结

第一章: 计算机网络系统由资源子网和通信子网组成。 计算机网络系统主要由网络通信系统、操作系统和应用系统构成 互联网基础结构发展的三个阶段: 第一阶段:从单个网络 ARPANET 向互联网发展的过程。 第二阶段:建成了三级结构…

推荐算法--时效性(05)

时效性 推荐系统应该考虑时间效应,因为用户的兴趣是有时间变化的。用户一年前喜欢的东西现在不一定感兴趣,相比于推荐过去喜欢的物品,推荐用户近期喜欢的物品更有参考价值。而在新闻更是如此,推荐过去跟用户兴趣一致的新闻已经失去…

推荐算法--推荐系统架构(06)

外围架构一般来说,每个网站都有一个 UI 系统,UI 系统负责给用户展示网页并和用户交互。网站会通过日志系统将用户在 UI 上的各种各样的行为记录到用户行为日志中。 从上面的结构可以看到,除了推荐系统本身,主要还依赖两个条件--界…