Hbase架构以及应用介绍

Hadoop生态——HBase HBase 1.为什么用HBase存储? HBase(Hadoop Database)是一个高可靠性,高性能,可伸缩,面向列的分布式数据库(也许叫做存储系统会更加贴切)。 HBase与Hadoop的关系非常紧密,Hadoop的HDFS提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定性及failover机制的保障。同时其他周边产品诸如Hive可以与HBase相结合使在HBase进行数据统计处理变得简单,Sqoop为HBa 阅读详情

Hbase全称为Hadoop Database,即Hbase是Hadoop的数据库,是一个分布式的存储系统。Hbase利用Hadoop的HDFS作为其文件存储系统,利用Hadoop的MapReduce来处理Hbase中的海量数据。利用zookeeper作为其协调工具。 
本篇文章将重点介绍Hbase三个方面的内容:Hbase体系结构(架构)的介绍、Hbase shell的操作、Hbase的Java api的客户端操作。 
(一)Hbase的架构介绍 
这里写图片描述 
Hbase的体系结构是一个主从式的结构,主节点Hmaster在整个集群当中只有一个在运行,从节点HRegionServer有很 多个在运行,主节点Hmaster与从节点HRegionServer实际上指的是不同的物理机器,即有一个机器上面跑的进程是Hmaster,很多机器上面跑的进程是HRegionServer,Hmaster没有单点问题,Hbase集群当中可以启动多个Hmaster,但是通过zookeeper的事件处理机制保证整个集群当中只有一个Hmaster在运行。 
既然Hbase是数据库,那么数据库从根本上来说就是存储表table的,但是我们在这里必须注意一下,Hbase并非是传统的关系型数据库(例如:Mysql、Oracle),而是非关系型数据库,因为Hbase是一个面向列的分布式存储系统。下面我们有必要介绍一下Hbase中表table的数据模型,先给大家呈现一个hbase数据库的表users: 
这里写图片描述 
特别注意:表中的空白单元并不表示有这个单元存在,在传统的数据库中,空白单元表示该单元存在其值为空(null,这是因为传统数据库总是结构化的)。但在Hbase中,画成二维表只是在逻辑上便于理解,其本质完全是非结构化的。 
我在下面举例子的过程中用的也是这张users表。 
上面这个表就是一个典型的hbase table,与传统的关系型数据库具有很大的差别,下面我们详细介绍有关table的相关概念: 
RowKey(行健):table的主键,table中的记录默认按照RowKey升序排序。 
列族(Column Family):即表中的address、info。table在水平方向上有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column(例如address中的province、city、country、town)组成,即列族支持动态扩展,无需预先定义Column的数量以及类型,所有Column均已二进制格式进行存储,用户需要自行进行类型转换。 
TimeStamp(时间戳):每次用户对数据进行操作对应的时间,可以看做是数据的Version number。例如在上面的表中,xiaoming所对应的company有两个数据信息(alibaba、baidu),而这两个单元格信息实际上是对应操作时间的,如下图所示: 
这里写图片描述 
既然Hbase可以将表中的数据进行分布式存储,那么它到底是以怎样的形式进行分布式存储的呢?我们自然而然想到了HDFS这个分布式文件管理系统是将海量数据切分成若干个block块进行存储的,同理Hbase也采取了类似的存储机制, 将一个table切分成若干个region进行存储,下面我们就介绍Region的相关概念: 
当Table随着记录数不断增加而变大后,Table在行的方向上会被切分成多个Region,一个Region由[startkey,endkey) 表示,每个Region会被Master分散到不同的HRegionServer上面进行存储,类似于我的block块会被分散到不同的DataNode节点上面进行存储。下面是Hbase表中的数据与HRegionServer的分布关系,如图所示: 
这里写图片描述 
接下来介绍在Hbase的体系结构中,Hmaster、HRegionServer、Zookeeper集群这三个角色的作用: 
这里写图片描述 
Hmaster节点的作用: 
①不负责存储表数据,负责管理RegionServer的负载均衡(即防止某些RegionServer存储数据量大,有些 
RegionServer存储数据量小),调整RegionServer上面Region的分布 
②管理RegionServer的状态,例如在HRegionServer宕机后,负责失效HRegionServer上Regions的迁移 
③在Region Split后,负责新Region的分配 
HRegionServer节点的作用: 
HRegionServer主要负责响应用户的I/O请求,即负责响应用户向表中的读写操作,是Hbase体系结构中最核心的模块。HRegionServer内部存储了很多的HRegion,就像DataNode节点中存储了很多的Block块一样,从上图Hbase完整的体系结构中我们可以看到,HRegion实际上是由很多个HStore组成的,所谓HStore就是表中的一个Column Family,可以看出每个Column Family其实就是一个集中的存储单元,这恰恰也帮助我们理解了为什么Hbase是NoSql系列的数据库,为什么是面向列的数据库,在Hbase的表设计中,我们最好将具备共同I/O特性的Column放在同一个列族中,这样读写才最高效,为了让大家更好的理解HRegionServer、HRegion、HStore、ColumnFamily四者之间的关系,我结合之前提到的users表画了一个四者关系的示意图: 
这里写图片描述 
简单来说:就是HRegionServer服务器中存储了很多的HRegion,每个HRegion是由很过个HStore组成的,每个ColumnFamily就是一个HSore。 
在此还要简单介绍一下HLog与MemStore这两个角色的作用: 
Hlog:Hlog中存储了用户对表数据的最新的一些操作日志记录。 
MemSore:HRegion会将大量的热数据、访问频次最高的数据存储到MemStore中,这样用户在读写数据的时候不需要从磁盘中进行操作,直接在内存中既可以读取到数据,正因为MemStore这个重要角色的存在,Hbase才能支持随机,高速读取的功能。 
Zookeeper集群的作用: 
①通过zk集群的事件处理机制,可以保证集群中只有一个运行的Hmater 
②Zookeeper集群中记录了-ROOT-表的位置 
在这里顺便介绍一下Hbase中两张特殊的表:-ROOT-表与.META.表 
-ROOT-表:记录了所有.META.表的元数据信息,-ROOT-表只有一个Region 
.META.表:记录了Hbase中所有用户表的HRegion的元数据信息,.META.表可以有多个Region 
③Zookeeper集群实时监控着HRegionServer这些服务器的状态,将HRegionServer的上线和下线信息实时通知给Hmaster节点,使得Hmaster节点可以随时感知各个HRegionServer的健康状态。 
在上面我们依次介绍了HMaster、HRegionServer、zookeeper集群的作用,Client使用Hbase的RPC机制与Hmaster与HRegionServer进行通信,对于管理类操作,Client与Hmaster进行RPC进行通信,对于数据(表)的读写类操作,Client与HRegionServer进行通信。注意:在用户对数据表的读写过程中,与Hmaster是没有任何关系的,Hmaster在这一点上不同于我们的NameNode节点,可以看出由于zookeeper集群的存在,Hmaster节点的作用被大大弱化了。 
在Hbase的架构介绍中在介绍最后一点:Hbase的寻址机制,即Hbase在海量的表数据中,是如何找到用户所需要的表数据的呢?——Hbase是通过索引的机制解决了这个问题。 
这里写图片描述 
Client访问用户数据之前需要首先访问zookeeper集群,通过zookeeper集群首先确定-ROOT-表在的位置,然后在通过访问-ROOT- 表确定相应.META.表的位置,最后根据.META.中存储的相应元数据信息找到用户数据的位置去访问。通过 这种索引机制解决了复杂了寻址问题。 
(二)Hbase中shell的相关操作 
前面讲的都是Hbase的理论知识,对于Hbase的操作分为两种方式:shell与Java api的方式,既然是对数据库的操作,无非就是增删改查四中操作,下面我列出里几个常用的Hbase Shell操作,如下: 
这里写图片描述 
以之前的users表为例,我现在用shell命令进行相应操作: 
①创建users表 
create ‘users’, ‘address’,’info’ 
②向表中用put进行插入操作 
put ‘users’,’xiaoming’,’address:province’,’zhejiang’ 
put ‘users’,’xiaoming’,’address:city’,’hangzhou’ 
put ‘users’,’xiaoming’,’address:country’,’china’ 
put ‘users’,’xiaoming’,’info:age’,’24’ 
put ‘users’,’xiaoming’,’info:age’,’25’ 
put ‘users’,’xiaoming’,’info:birthday’,’1987/06/17’ 
put ‘users’,’xiaoming’,’info:company’,’alibaba’ 
put ‘users’,’xiaoming’,’info:company’,’baidu’ 
……………… 
③通过get命令获取表中的信息,例如: 
1、获取xiaoming的country单元格信息 
get ‘users’,’xiaoming’,’address:country’ 
2、获取小明两个版本的年龄信息 
get ‘users’,’xiaoming’,{COLUMN=>’info:age’,VERSIONS=>2} 
3、获取zhangyifei全部的信息 
get ‘users’,’zhangyifei’ 
4、获取zhangyifei的address列族的全部信息 
get ‘users’,’zhangyifei’,’address’ 
5、遍历表中的全部信息 
scan ‘users’ 
④用shell命令删除users表 
disable ‘users’ 
drop ‘users’ 
综上:Hbase的shell命令操作整体来说还是非常简单的,获取信息的方法主要是按照下面的主线进行: 
tablename———》rowkey———》Column Family:Colum———->Version信息——》获取信息! 
这里写图片描述 
这里写图片描述 
注:在Java api操作中,对遍历一条记录或者遍历所有记录所用的思想就是:key为{行健、类族、列名、版本号},而value为{具体数值},即一行记录本质上为包含很多键值对。 
(三)Hbase中Java api的相关操作 
Hbase中,可以通过shell命令进行增删改查四种操作,但是shell命令用起来比较麻烦,比如说用put一次只能查询一个单元格的信息等等。因此我们在日常工作中总是用Java api的方式对Hbase进行相应操作,在这里还是以上面的users举例,下面是完整的代码操作: 
这里写图片描述

package IT01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;

public class HbaseJavaapi
{
       public static String tablename = "users";
       public static void main(String[]  args) throws Exception
       {
             Configuration conf = HBaseConfiguration.create();
             /**下面这行代码必须有,指定Hbase所用的zookeeper集群信息****/
             /*Configuration conf = new Configuration();这样写的话不会自动读取hbase-site.xml文件,所以别用这个*/
             conf.set("hbase.zookeeper.quorum","hadoop80");

             /*创建表-----用的Java api是HbaseAdmin**/
            @SuppressWarnings("resource")
            HBaseAdmin hBaseAdmin = new HBaseAdmin(conf);
            if(hBaseAdmin.tableExists(tablename))
            {
                hBaseAdmin.disableTable(tablename);
                hBaseAdmin.deleteTable(tablename);
            }
            HTableDescriptor desc = new HTableDescriptor(tablename);//指定创建表的名字users
            HColumnDescriptor family1 = new HColumnDescriptor("address");
            desc.addFamily(family1 );
            HColumnDescriptor family2 = new HColumnDescriptor("info");//指定列族的名称
            desc.addFamily(family2 );
            hBaseAdmin.createTable(desc);

            /*****插入记录------用的Java api是HTable****/
            @SuppressWarnings("resource")
            HTable hTable = new HTable(conf,tablename);  //一定要注意:HTable这个客户端只有在表已经存在的时候才有意义!!!!不然抛出异常!
            Put put1 = new Put("xiaoming".getBytes());//插入记录时要指定行健
            put1.add("address".getBytes(), "province".getBytes(), "zhejiang".getBytes());
            put1.add("address".getBytes(), "city".getBytes(), "hangzhou".getBytes());
            put1.add("address".getBytes(), "country".getBytes(), "china".getBytes());
            put1.add("info".getBytes(),"age".getBytes(),"24".getBytes());
            put1.add("info".getBytes(),"age".getBytes(),"25".getBytes());
            put1.add("info".getBytes(),"birthday".getBytes(),"1987/06/17".getBytes());
            put1.add("info".getBytes(),"company".getBytes(),"baidu".getBytes());
            put1.add("info".getBytes(),"company".getBytes(),"alibaba".getBytes());
            hTable.put(put1 );
            Put put2 = new Put("zhangyifei".getBytes());//插入记录时要指定行健
            put2.add("address".getBytes(), "province".getBytes(), "guangdong".getBytes());
            put2.add("address".getBytes(), "city".getBytes(), "shenzhen".getBytes());
            put2.add("address".getBytes(), "city".getBytes(), "nansha".getBytes());
            put2.add("address".getBytes(), "country".getBytes(), "china".getBytes());
            put2.add("address".getBytes(), "town".getBytes(), "xianqiao".getBytes());
            put2.add("info".getBytes(),"age".getBytes(),"45".getBytes());
            put2.add("info".getBytes(),"birthday".getBytes(),"1987/02/12".getBytes());
            put2.add("info".getBytes(),"company".getBytes(),"tengxun".getBytes());
            put2.add("address".getBytes(), "favorite".getBytes(), "movie".getBytes());
            hTable.put(put2 );


            /****查询记录--------------用的Java api是Htable***/
            /**1------>获取小明的country单元格信息****/
            Get get = new Get("xiaoming".getBytes());
            Result result = hTable.get(get);
            byte[] value = result.getValue("address".getBytes(), "country".getBytes());
            System.out.println(new String(value));

            System.out.println("**************************");

            /**2------>获取zhangyifei的一行的记录****/
            Get get2 = new Get("zhangyifei".getBytes());
            Result result2 = hTable.get(get2);
            for(KeyValue key  : result2.list())//一行的记录当中包含很多的键值对信息,依次遍历即可
            {
                 System.out.println(key.toString());
                 System.out.println(new String(key.getValue()));        
            }

            System.out.println("**************************");

            /**3------>遍历所有的记录****/
            Scan scan = new Scan();
            ResultScanner scanner = hTable.getScanner(scan);//scanner中包含很多条行记录
            for (Result result3 : scanner)
            {
                for(KeyValue key  : result3.list())//一行的记录当中包含很多的键值对信息,依次遍历即可
                {
                     System.out.println(key.toString());
                     System.out.println(new String(key.getValue()));        
                }
            }

            System.out.println("**************************");

            /**4------>仅仅获取每行的city信息****/
            Scan scan1 =new Scan();
            ResultScanner scanner1 = hTable.getScanner(scan1 );
            for (Result result4 : scanner1)
            {
                  System.out.println(new String(result4.getRow()));
                  System.out.println(new String(result4.getValue("address".getBytes(), "city".getBytes())));
            }
       }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110

代码的运行结果如下: 
这里写图片描述 
这里写图片描述 
对于Hbase的Java api操作就简单的介绍到这里! 
另外对于上面Hbase的介绍,也就介绍到这里,如有问题,欢迎指正!

Hbase集群部署(三个节点) 概述 HBASE – HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、 实时读写的分布式数据库 – 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理 HBase中的海量数据,利用Zookeeper作为其分布式协同服务 – 主要用来存储非结构化和半结构化的松散数据(列存NoSQL数据库) Hbase的架构图如下所示 1... 阅读详情

相关推荐

HBase介绍、架构、特点、应用场景、生态圈

HBase介绍,架构介绍:NoSQL和关系型数据库对比、特点、应用场景、生态圈技术

weixin_74292291的博客 1498

Hadoop之Hbase架构以及应用介绍

Hbase全称为Hadoop Database,即hbase是hadoop的数据库,是一个分布式的存储系统。Hbase利用Hadoop的HDFS作为其文件存储系统,利用Hadoop的MapReduce来处理Hbase中的海量数据。利用zookeeper作为其协调工具。  本篇文章将重点介绍Hbase三个方面的内容:Hbase体系结构(架构)的介绍、Hbase shell的操作、Hbase的Jav

南北雪树的专栏 7965

别再死磕官方文档了!用宿舍开黑的故事,5分钟搞懂Autosar CanNM网管报文

本文通过宿舍开黑游戏的生动类比,深入浅出地解析了Autosar CanNM网管报文的工作原理。从游戏队友协作到汽车ECU节点的同步机制,详细介绍了网管报文的唤醒流程、通信协议及休眠策略,帮助读者快速掌握这一关键技术。

weixin_30463341的博客 262

Hadoop之HBase基本简介

目录 1.HBase的基本概念 2.HBase的工作流程 1.HBase的基本概念 1.1基本概念 HBase运行在HDFS上,所以HBase中的数据以多副本形式存放,数据也服从分布式存放,数据的恢复也可以得到保障。 HBase支持横向扩展,这就意味着如果现有服务器硬件性能出现瓶颈只需要在现有的正在运行的集群中添加新的机器节点即可。 HBase是面向列存储的非关系型数据库,每个列都单独存储,所以在HBase中列是连续存储的,而行不是,区别于关系型数据库。 HBase不支持事务,适合结构化数据

taka_is_beauty的博客 5254

AntV G6边动画实战:手把手教你实现数据流向箭头与虚线流动效果

本文详细解析了如何使用AntV G6实现数据流向箭头与虚线流动效果,通过自定义边动画提升数据可视化的动态表现力。从基础环境搭建到核心概念讲解,再到虚线流动动画和箭头路径动画的具体实现与参数调控,帮助开发者掌握G6边动画的高级技巧,适用于网络流量监控、数据传递等场景。

weixin_28487433的博客 268

第2章 数据库关系模型-单元测验-数据库原理及应用

第2章 数据库关系模型---数据库与机器学习 作业 常用的关系查询操作包括选择、投影、连接、并、交等。 v 实体完整性是指关系表的属性组成必须是完整的。 x 自然连接是一种等值连接。 v 在参照完整性中,可以定义级联操作。 v 用户自定义完整性可以实施数据的业务约束。 v 每个关系是一个二维表,但二维表不一定是关系。 v 关系中复合键至少包含两个属性。 v 代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x ...

aiqq136的博客 5727

【大数据】Hadoop知识学习(5)-hbase

一、Hbase架构 在HBase中,表被分割成区域,并由区域服务器提供服务。区域被列族垂直分为“Stores”。Stores被保存在HDFS文件。下面显示的是HBase的结构。 注意:术语“store”是用于区域来解释存储结构。 HBase有三个主要组成部分:客户端库,主服务器和区域服务器。区域服务器可以按要求添加或删除。 主服务器 分配区域给区域服务器并在Apache ZooKeeper的帮助下完成这个任务。 处理跨区域的服务器区域的负载均衡。它卸载繁忙的服务器和转移区域较少占用的服务器。 通过判定负载

思南的博客 469

Excel也能玩转K-means聚类?手把手教你用表格搞定用户分群(附完整公式)

本文详细介绍了如何在Excel中实现K-means聚类算法,无需编程即可完成用户分群。通过SUMIF、SQRT等基础函数,从数据预处理到最终分群全流程手把手教学,特别强调数据标准化和迭代优化的关键步骤,帮助运营团队低成本高效分析用户行为数据。

weixin_30555125的博客 181

HBase介绍、架构、实践以及调优

目录一、什么是HBase?介绍特点二、HBase架构HMaster的作用RegionServer的作用Zookeeper作用Region和TableRow(逻辑存在)数据管理三、HBase读写流程写数据读数据四、HBase应用场景增量数据-时间序列数据信息交换-消息传递内容服务-Web后端应用程序五、HBase生态圈六、安装配置 一、什么是HBase? 介绍 HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBA

菜鸟也学大数据的博客 833

别急着编译!修复银河麒麟OpenSSH漏洞前,先搞懂ssh、sshd版本与apt仓库的“爱恨情仇”

本文深度解析银河麒麟OpenSSH漏洞(CVE-2023-38408)修复策略,揭示版本差异背后的企业级维护逻辑,提供从APT升级到源码编译的多维度方案评估。特别针对路径隔离方案和离线环境处理给出技术细节,帮助企业制定兼顾安全与稳定的升级决策框架。

weixin_26642481的博客 457

已解决-Parallels Desktop 16 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络

我是月球挖掘机,相信不少打工人为了尝鲜已经更新了MacOS 11 Big Sur,当然,苹果每次的系统大更新,都会给我们软件的功能无法使用惊喜,这次的也不例外。 这个问题是我在更新macOS Big Sur之后,Parallels Desktop打开虚拟机后,提示: 报错信息 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络 这是我的软件版本: 起初我以为是我的虚拟机坏了,结果重装了一遍虚拟机,没有任何用处。我开始在网上找方法,只能找到那个使用命令行打开软件的命令,除此之外没有了

月球挖掘机 5万+

hbase 预写日志_带你轻松了解HBase

HBase简介对大数据领域有一定了解的小伙伴对HBase应该不会陌生,HBase是Apache基金会开源的一个分布式非关系型数据库,属于Hadoop的组件。它使用Java编写,需运行于HDFS文件系统之上。HBase与Hadoop中的其他组件一样,可以运行在廉价硬件上,并可提供数10亿行 X 数百万列的大数据存储、管理能力,以及随机访问和实时读/写能力。HBase的设计模型参考了Google的Bi...

weixin_39793553的博客 292

【扣子AI开发】如何开发一个图像生成智能体?

【扣子AI开发】如何开发一个图像生成智能体,从创建到发布

tl437002770的博客 2428

Apache HBase基础(基本概述,物理架构,逻辑架构,数据管理,架构特点,HBase Shell)

NoSQL综述及Apache HBase基础一.NoSQL1.什么是NoSQL2.为什么使用NoSQL(NoSQL优点)3.NoSQL和关系型数据库对比4.NoSQL的特点5.NoSQL基本概念5.1 三大基石(1)CAP理论(2)BASE(3)最终一致性5.2索引和查询(1)Indexing(索引)(2)Query(查询)5.3MapReduce、Sharding(1)MapReduce(2)Sharding(分片)6.NoSQL分类6.1键值存储数据库(Key-Value)6.2列存储数据库(Wide

May_J_Oldhu的博客 1633

【RT-DETR实战】159、改进九:知识蒸馏从YOLOv8教师模型学习

摘要: 本文探讨了知识蒸馏在RT-DETR目标检测模型中的应用挑战与实践经验。作者以YOLOv8作为教师模型,针对特征对齐、损失函数设计和训练策略等核心问题,提出了适配器模块、动态权重调整和多阶段训练等优化方案。文章重点分析了教师模型选择、特征图匹配、损失函数组合等关键环节的实战技巧,并总结了蒸馏模型部署时的注意事项。通过实验验证,作者指出知识蒸馏应关注模型"思维方式"的迁移而非简单特征复制,并强调合理评估指标和教师模型选择的重要性。最后,作者分享了技术迭代中的边际效应认知,为工业场景下的模型优化提供了实用

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 268

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hadoop、hbase、hive、spark分布式系统架构原理

机器学习、数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hive是分布式数据库,hbase是分布式kv系统,看似互不相关的他们却都是基于相同的hdfs存储和yarn资源管理, hadoop、spark、Hbase、Hive、hdfs简介 Hbase:是一个nosql数据库,和mongodb类似 hdfs...

5万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

了解Hbase,只看这一篇足以

文章目录1、关于HBase1.1、Hbase是什么?1.2、HBase的数据结构1.3、HBase的基础架构1.4、HBase适用场景2.HBase安装2.1、实验环境与前置软件2.2、安装Zookeeper2.3、安装HBase2.4、搭建HBase集群模式3、HBase基础操作3.1、基础指令3.1.1、使用HBase的客户端3.1.2、基础的表操作3.1.3、数据操作3.2、HBase的数据结构4、HBase原理4.1、HBase文件读写框架4.2、HBase写数据流程4.3、HBase读数据流程4.

qq_27740127的博客 8920

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HBase介绍

HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map(多维地图)。 1)Name Space命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。HBase两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default表是用户默认使用的

weixin_69402201的博客 2万+

HBase介绍(列存储)

Hbase简介   started by chad walters and jim   2006.11 G release paper on BigTable   2007.2 inital Hbase prototype created as Hadoop contrib   2007.10 First useable Hbase   2008.1 Hadoop become Apac

xtwolf008--关注分布式存储,关注大数据,云计算PAAS 2万+

大数据技术之HBase(一)HBase简介、HBase快速入门、HBase进阶

文章目录1 HBase 简介1.1 HBase 定义1.2 HBase 数据模型1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型1.3 HBase 基本架构2 HBase 快速入门1.2.3 自定义存储 offset1.3 自定义 Interceptor1.3.1 拦截器原理1.3.2 拦截器案例2 Kafka 监控2.1 Kafka Eagle3 Flume 对接 Kafka4 Kafka 面试题 1 HBase 简介 1.1 HBase 定义 HBase 是一.

huxili2020的博客 4万+

HBASE介绍和使用

HBase 是一个开源的、分布式的、面向列的非关系型数据库,它构建在 Hadoop 文件系统(HDFS)之上,为大数据存储和处理提供了高可靠性、高可扩展性和高性能的解决方案。在这个示例中,我们模拟了获取服务器标识和 CPU 指标值的过程,然后根据当前时间生成行键,并将数据插入到 HBase 表中。通过以上方法,就可以使用 HBase 按时间窗方式每 5 分钟记录和存储 CPU 指标数据,并进行查询和分析。按时间窗方式记录,每5分钟记录一次CPU指标,hbase实现。与 Hadoop 生态系统集成。

莫凡的博客 1544

Hbase的应用场景、原理及架构分析

Hbase概述          hbase是一个构建在HDFS上的分布式列存储系统。HBase是Apache Hadoop生态系统中的重要 一员,主要用于海量结构化数据存储。从逻辑上讲,HBase将数据按照表、行和列进行存储。                 如图所示,Hbase构建在HDFS之上,hadoop之下。其内部管理的文件全部存储在HDFS中。与HDFS相比两者都

Jason的专栏 3万+
上一篇: Flume架构以及应用介绍
下一篇: flume介绍与原理(一)
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值