大数据之HBase

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.mzph.cn/news/182064.shtml

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

相关文章

【傻瓜级JS-DLL-WINCC-PLC交互】8.DLL读写WINCC连接的PLC数据

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

Vue实现可拖拽边界布局

Vue实现可拖拽边界布局 在前端开发中,有时需要实现一种可拖拽边界的布局,通过拖动分隔线来调整不同区域大小。例如,下图是一个典型的可拖拽边界布局,它由左右两个区域组成,左边是一个树形菜单,右边是一个上…

ANN人工神经网络:从基础认知到现实理解

什么是神经网络? 神经网络的再认知 前面我们了解过,人工神经网络(Artificial Neural Network,ANN)是人类为了模仿人大脑的神经网络结构创建出来的一种计算机系统结构。但如果仔细深入到神经网络当中,会慢…

排序算法基本原理及实现1

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 📑插入排序 &#x1f4…

JAVAEE---多线程线程安全

根本原因:随机调度,抢占式执行 多个线程同时修改同一个变量 修改操作不是原子的 内存可见性 指令重排序 上面这段代码可以正常打印出hello,按照我们前面所学,第一次加锁之后,第二次加锁应该有所冲突啊。这里是因为…

c++ day2

自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #ifndef RECT_H …

量子力学应用:探索科技前沿的奇幻之旅

量子力学应用:探索科技前沿的奇幻之旅 引言 量子力学,这门探讨微观世界规律的学科,自其诞生以来就充满了神秘与奇幻。随着科学技术的不断进步,量子力学已经从纯理论研究走向了实际应用领域,为我们打开了一个全新的科技世界。在本文中,我们将深入探讨量子力学的应用方面,…

JS 绘制半径不一致的环形图进度条

HTML部分: <canvas id"mycanvas" width"100" height"100"></canvas>JS部分&#xff1a; const option {element: "mycanvas", // 元素count: 26, // 高亮数据totalCount: 129, // 总数据progressColor: #3266FB, // 进…

一文详解Python中常用数据类型

文章目录 Python 中常用的数据类型包括&#xff1a;Python 中布尔类型(bool)Python 中的数字类型概述Pyhon中的字符串概述Python 中的List概述Python 中的元组类型(tuple)Python中的字典&#xff08;Dictionary&#xff09;Python中的集合&#xff08;Set&#xff09;Python中的…

你了解vue的diff算法吗?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue中的diff算法 目录 一、是什么 二、比较方式 三、原理分析 小结 一、是什么 diff 算法是一…

【蓝桥杯选拔赛真题69】Scratch洗牌发牌 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析

目录 scratch洗牌发牌 一、题目要求 编程实现 二、案例分析 1、角色分析

(C++)字符串相乘

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 题目链接如下&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名…

【c语言:常用字符串函数与内存函数的使用与实现】

文章目录 1. strlen函数1.1使用1.2模拟实现 2.strcmp函数2.1使用2.2模拟实现 3.strncmp函数3.1使用3.2模拟实现 4.strcpy函数4.1 使用4.2模拟实现 5.strcncpy5.1使用5.2模拟实现 6.strcat函数6.1使用6.2模拟实现 7.strncat函数7.1使用7.2模拟实现 8.strstr函数8.1使用8.2模拟实…

1 NLP分类之:FastText

0 数据 https://download.csdn.net/download/qq_28611929/88580520?spm1001.2014.3001.5503 数据集合&#xff1a;0 NLP: 数据获取与EDA-CSDN博客 词嵌入向量文件&#xff1a; embedding_SougouNews.npz 词典文件&#xff1a;vocab.pkl 1 模型 基于fastText做词向量嵌入…

vue3+vite+ts项目打包时出错

项目中引入了element-plus国家化的配置&#xff0c;然后进行项目打包&#xff0c;报下面的错误 解决方法&#xff1a; 在main.ts中添加 // ts-ignore

【存储】blotdb的原理及实现(2)

【存储】etcd的存储是如何实现的(3)-blotdb 在etcd系列中&#xff0c;我们对作为etcd底层kv存储的boltdb进行了比较全面的介绍。但是还有两个点没有涉及。 第一点是boltdb如何和磁盘文件交互。 持久化存储和我们一般业务应用程序的最大区别就是其强依赖磁盘文件。一方面文件数…

Linux系统之一次性计划任务at命令的基本使用

Linux系统之一次性计划任务at命令的基本使用 一、at命令介绍二、at命令的使用帮助2.1 at命令的help帮助信息2.2 at命令的语法解释 三、at命令的日常使用3.1 立即执行一次性任务3.2 指定时间执行一次性任务3.3 查询计划任务3.4 其他指定时间用法3.5 删除已经设置的计划任务3.6 显…

深度学习毕设项目 基于生成对抗网络的照片上色动态算法设计与实现 - 深度学习 opencv python

文章目录 1 前言1 课题背景2 GAN(生成对抗网络)2.1 简介2.2 基本原理 3 DeOldify 框架4 First Order Motion Model 1 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&am…

echarts案例网站

一、ppchart 网站&#xff1a;https://ppchart.com/#/ 二、echarts官网示例 网站&#xff1a;https://echarts.apache.org/examples/zh/index.html

1992-2021年区县经过矫正的夜间灯光数据(GNLD、VIIRS)

1992-2021年区县经过矫正的夜间灯光数据&#xff08;GNLD、VIIRS&#xff09; 1、时间&#xff1a;1992-2021年3月&#xff0c;其中1992-2013年为年度数据&#xff0c;2013-2021年3月为月度数据 2、来源&#xff1a;DMSP、VIIRS 3、范围&#xff1a;区县数据 4、指标解释&a…