大数据之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.hqwc.cn/news/230731.html

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

相关文章

hql面试题之上海某资深数仓开发工程师面试题-求不连续月份的月平均值

1.题目 A,B两组产品的月平均值,月平均值是当月的前三个月值的一个平均值,注意月份是不连续的,如果当月的前面的月份不存在,则为0。如A组2023-04的月平均值为2023年1月的数据加2023-02月的数据的平均值,因为没有其他月…

Matrix电磁阀详解

文章目录 一. 气动电磁阀流量控制技术1. PWM技术2. PFM技术3. PNM技术4. PCM技术5. 组合技术(Combined Techniques)6. 双张力开关控制技术(ON -OFF control Technique with double level of tension) 二. Matrix电磁阀特性1. Matr…

史上最全接单平台集锦,程序员不容错过!

非典型程序员不是每天都累成狗,天天”996"甚至”007“。可能,面临着上班摸鱼没事干,下班躺尸打游戏的无聊境况。那么,如果你也是这样的程序员,有没有什么安排可以打发时间? 闲着还不如挣钱~心情好的时…

【css】调整图片样式-铅笔画-以及其它

[css]调整图片样式-铅笔画-以及其它 在这个网址下有很多实例&#xff0c;尝试了其中几个&#xff0c;成功实现的对半分。使用Micsoft&#xff0c;估计是不支持一些特性导致的。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UT…

卡码网语言基础课 | 16. 出现频率最高的字母

目录 一、 哈希表 二、 编写解题 2.1 统计出现次数 2.2 解答 通过本次练习&#xff0c;将学习到C中哈希表的基础知识 题目&#xff1a; 给定一个只包含小写字母的字符串&#xff0c;统计字符串中每个字母出现的频率&#xff0c;并找出出现频率最高的字母&#xff0c;如果…

C51--LCD1602显示屏

LCD602显示&#xff1a; 1、概述 LCD602是一种工业字符型液晶&#xff0c;能够同时显示16x02&#xff0c;即32字符&#xff08;16列&#xff0c;2行&#xff09; 2、引脚&#xff1a; VSS&#xff1a;电源地VDD&#xff1a;电源正极——5V电源VO&#xff1a; 液晶显示偏压 …

裁员降薪如果影响到你,可能还是你的问题

1.摘要 今年以来,看到的裁员风波一茬接一茬,普遍的论调都是IT行业不行了, 总之就是一片哀嚎、惨不忍睹。最近身边的一些朋友也接连传出部门被优化、被裁员的消息, 说实话我自己也被这种寒意给触碰到, 每天也加强了自己的学习频率,甚至把回家路上的碎片时间也利用起来, 目的不在…

沈阳师范大学期末考试复习pta循环数组函数指针经典编程题汇总+代码分析

前言&#xff1a;临近期末&#xff0c;接下来给大家分享一些经典的编程题&#xff0c;方便大家复习。不一定难&#xff0c;但都是入门的好题&#xff0c;尽可能的吃透彻。因为据说期末考试的题很多来自pta上面的原题。 对于一些语言我是用c来写的&#xff0c;不妨碍理解&#…

网络入门---网络编程预备知识

目录标题 ifconfigip地址和mac地址的区别端口号pid和端口号UDP和TCP的初步了解网络字节序socket套接字 ifconfig 通过指令ifconfig便可以查看到两个网络接口&#xff1a; 我们当前使用的是一个linux服务器并是一个终端设备&#xff0c;所以他只需要一个接口用来入网即可&…

笔记63:注意力评分函数

本地笔记地址&#xff1a;D:\work_file\&#xff08;4&#xff09;DeepLearning_Learning\03_个人笔记\3.循环神经网络\第10章&#xff1a;动手学深度学习~注意力机制 a a a a a a a a a a a a a a a a a a a

P9242 [蓝桥杯 2023 省 B] 接龙数列(dp+最长接龙序列+分类)

1. 计算0~9为结尾的最长子串长度 2. 对于每个数字&#xff0c;比较其开头可连接子串长度1 与 原来以其末位为末尾的子串长度 3. 更新以其末位为末尾的子串长度 #include<iostream> #include<string.h>using namespace std;// 相当于记录…

可重复读为什么能避免一部分幻读,但是没能完全避免幻读

事物的隔离级别已经介绍过了&#xff0c;接下来我们谈谈细节部分。 MySQL innoDB引擎的默认隔离级别——可重复读 虽然可重复读不能完全避免幻读&#xff0c;但其实已经避免了很大一部分了。具体怎么做的呢&#xff0c;主要有以下两个操作&#xff1a; 针对快照读&#xff0c;…