kudu和mysql_kudu原理与使用

本文深入介绍了Kudu数据库,包括它的背景、与HDFS和HBase的区别,以及其基本架构、存储机制。此外,还详细讲解了Kudu的读写流程,并提供了Java操作Kudu的示例。
摘要由CSDN通过智能技术生成

编辑推荐:

本文介绍了kudu是什么,为什么需要kudu?

基础架构,存储机制,kudu的工作机制及KUDU的java操作案例。

本文来自 csdn,由火龙果软件Anna编辑、推荐。

1、 kudu简介

1.1、kudu是什么?

简单来说:dudu是一个与hbase类似的列式存储分布式数据库。

官方给kudu的定位是:在更新更及时的基础上实现更快的数据分析

1.2、为什么需要kudu?

1.2.1、hdfs与hbase数据存储的缺点

目前数据存储有了HDFS与hbase,为什么还要额外的弄一个kudu呢?

HDFS:使用列式存储格式Apache Parquet,Apache

ORC,适合离线分析,不支持单条纪录级别的update操作,随机读写性能差

HBASE:可以进行高效随机读写,却并不适用于基于SQL的数据分析方向,大批量数据获取时的性能较差。

正因为HDFS与HBASE有上面这些缺点,KUDU较好的解决了HDFS与HBASE的这些缺点,它不及HDFS批处理快,也不及HBase随机读写能力强,但是反过来它比HBase批处理快(适用于OLAP的分析场景),而且比HDFS随机读写能力强(适用于实时写入或者更新的场景),这就是它能解决的问题。

2、架构介绍

2.1、基本架构

99a769361e332107a7681b8643538fea.png

2.1.1、概念

Table(表):一张table是数据存储在kudu的位置。Table具有schema和全局有序的primary

key(主键)。Table被分为很多段,也就是tablets.

Tablet (段):一个tablet是一张table连续的segment,与其他数据存储引擎或关系型数据的partition相似。Tablet存在副本机制,其中一个副本为leader

tablet。任何副本都可以对读取进行服务,并且写入时需要在所有副本对应的tablet server之间达成一致性。

Tablet server:存储tablet和为tablet向client提供服务。对于给定的tablet,一个tablet

server充当leader,其他tablet server充当该tablet的follower副本。只有leader服务写请求,leader与follower为每个服务提供读请求。

Master:主要用来管理元数据(元数据存储在只有一个tablet的catalog

table中),即tablet与表的基本信息,监听tserver的状态

Catalog Table: 元数据表,用来存储table(schema、locations、states)与tablet(现有的tablet列表,每个tablet及其副本所处tserver,tablet当前状态以及开始和结束键)的信息。

3、存储机制

3.1 存储结构全景图

7226350bf11ba14e410a483a6486b47b.png

3.2、存储结构解析

一个Table包含多个Tablet,其中Tablet的数量是根据hash或者range进行设置

一个Tablet中包含MetaData信息和多个RowSet信息

一个Rowset中包含一个MemRowSet与0个或多个DiskRowset,其中MemRo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值