分布式结构化存储系统-Kudu简介

                                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  

  Hadoop生态系统发展到现在,存储层主要由HDFS和HBase两个系统把持着,一直没有太大突破。在追求高吞吐的批处理场景下,我们选用HDFS;在追求低延迟,有随机读写需求的场景下,我们选用HBase。那么是否存在一种系统,能结合两个系统的优点,同时支持高吞吐率和低延迟呢?Kudu的出现正式为了解决这以难题。

一.Kudu基本特点

    Kudu是Cloudera开源的列式存储引擎,专门为了对快速变化的数据进行快速分析,填补了以往Hadoop存储层的空缺。Kudu具有以下几个特点:
    (1)C++语言开发;
    (2)可以高效处理类OLAP负载;
    (3)可以与MapReduce,Spark以及Hadoop生态系统中其他组件进行友好集成;
    (4)可与Imapla集成,替代目前Impala常用的HDFS+Parquet组合;
    (5)灵活的一致性模型;
    (6)顺序写和随机写并存的场景下,仍能达到良好的性能;
    (7)高可用,使用Raft协议保证数据高可靠存储;
    (8)结构化数据模型;   Kudu的出现,有望解决目前Hadoop生态系统难以解决的一大类问题,比如:
    (1)流式实时计算结果的实时更新和查询;
    (2)时间序列相关应用,具体要求有:
        1)查询海量历史数据;
        2)查询个体数据,并要求快速返回;
    (3)预测模型中,周期性更新模型,并根据历史数据快速做出决策。

二.Kudu数据模型与架构

    kudu是一个强类型的纯列式存储数据库。类似于HBase,Kudu的表是由很多数据子集构成的,表被水平拆分成多个Tablet(类似于HBase的Region),这些Tablet被散布到不同机器上,以实现分布式的存储存储和读写。

    Kudu有两种类型的组件:Master Server和Tablet Server。Kudu Master与HBase Master类似,主要功能包括:
    (1)负责管理元数据,这些元数据包括Tablet的描述信息及位置信息;
    (2)管理Tablet Server,监听Tablet Server的健康状态,一旦发生故障便触发容错;对于副本书过低的Tablet,启动复制任务来提高其副本数。
  
  Master的所有信息都在cache中,因此速度非常快,每次查询都是毫秒级别。Kudu支持多Master,但只有一个Active Master,其余知识作为灾备,不提供服务,一旦Active Master出现故障,其他Master将采用Raft一致性协议重新选举产生新的Active Master。   Table Server用于存储实际的Tablet数据,通常每个Tablet有3个副本存放在不同的Tabale Server。同一个Table的副本分为leader和follower两种类别:每个Tablet只能有一个leader副本,这个副本为用户提供修改操作,然后将修改结果同步给follower;而follower只提供读服务,不提供修改服务;Tablet副本之间使用Raft协议来实现高可用,当leader所在的节点发生故障时,follower会重新选举leader。

三.Kudu与HBase对比

  如上图所示,软件架构,存储方式等方面对比了HBase和Kudu。

  总结起来,HBase是一个强一致性的KV系统,其扩展性和伸缩性是其最大的有点,通常用于海量数据更新和随机读取的场景;而kudu则是一个实现来多种一致性协议的结构化存储引擎,它通常与Impala结合使用,可用实时OLAP分析(流式导入实时分析)的场景。

分布式结构化存储系统-Kudu简介的更多相关文章

  1. 分布式结构化存储系统-HBase基本架构

    分布式结构化存储系统-HBase基本架构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在大数据领域中,除了直接以文件形式保存数据外,还有大量结构化和半结构化的数据,这类数据通常需 ...

  2. 分布式结构化存储系统-HBase应用案例

    分布式结构化存储系统-HBase应用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 为了让读者更进一步了解HBase在实际生成环境中的应用方法,在董西成的书里介绍两个经典的HB ...

  3. 分布式结构化存储系统-HBase访问方式

    分布式结构化存储系统-HBase访问方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. HBase提供了多种访问方式,包括HBase shell,HBase API,数据收集组件( ...

  4. [翻译] Cassandra 分布式结构化存储系统

    Cassandra 分布式结构化存储系统 摘要 Cassandra 是一个分布式存储系统,用于管理分布在许多商品服务器上的大量结构化数据,同时提供无单点故障(no single point of fa ...

  5. Solr系列四:Solr(solrj 、索引API 、 结构化数据导入)

    一.SolrJ介绍 1. SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar.在我们的应用中引入solrj: <dependency> <gro ...

  6. Hadoop生态新增列式存储系统Kudu

        Hadoop生态系统发展到现在,存储层主要由HDFS和HBase两个系统把持着,一直没有太大突破.在追求高吞吐的批处理场景下,我们选用HDFS,在追求低延迟,有随机读写需求的场景下,我们选用H ...

  7. Bigtable:一个分布式的结构化数据存储系统

    Bigtable:一个分布式的结构化数据存储系统 摘要 Bigtable是一个管理结构化数据的分布式存储系统,它被设计用来处理海量数据:分布在数千台通用服务器上的PB级的数据.Google的很多项目将 ...

  8. Bigtable:结构化数据的分布式存储系统

    Bigtable最初是谷歌设计用来存储大规模结构化数据的分布式系统,其可以在数以千计的商用服务器上存储高达PB级别的数据量.开源社区根据Bigtable的设计思路开发了HBase.其优势在于提供了高效 ...

  9. 分布式存储系统Kudu与HBase的简要分析与对比

    本文来自网易云社区 作者:闽涛 背景 Cloudera在2016年发布了新型的分布式存储系统——kudu,kudu目前也是apache下面的开源项目.Hadoop生态圈中的技术繁多,HDFS作为底层数 ...

随机推荐

  1. 一篇文章学会shell脚本

    一.Shell传递参数 #!/bin/bash # 假设在脚本运行时写了三个参数 ..,,则 "(传递了三个参数). echo "-- \$* 演示 --" for i ...

  2. 【转】SOA架构和微服务架构的区别

    SOA架构和微服务架构的区别 https://blog.csdn.net/zpoison/article/details/80729052

  3. 采用EasyDSS视频点播服务器搭建企业私有化的音视频多媒体、短视频、视频服务网站与管理后台

    最近有越来越多的用户咨询关于视频点播的功能,主要需求就是集中于如何搭建专属的私有化视频点播平台: 实现的功能类似于,对应自身拥有的视频文件,需要发布到一个网站,其他用户都可以实现点播观看. 针对于类似 ...

  4. servlet 读取文件

    读取pdf protected void service(HttpServletRequest request, HttpServletResponse response) throws Servle ...

  5. NET Core3高性能RPC框架

    NET Core 3.0 使用gRPC 一.前言 在前一文 <ASP.NET Core 3.0 使用gRPC>中有提到 gRPC 支持双向流调用,支持实时推送消息,这也是 gRPC的一大特 ...

  6. LeetCode 859. 亲密字符串(Buddy Strings) 23

    859. 亲密字符串 859. Buddy Strings 题目描述 给定两个由小写字母构成的字符串 A 和 B,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true:否则返 ...

  7. Vue(六)插槽(2.6.0+)

    插槽在vue2.6.0开始有了新的更新 具名插槽(数据来自父组件) 子组件(定义插槽)这里版本前后没什么变化 <template> <div> <header> & ...

  8. String和Irreducible Polynomial(2019牛客暑期多校训练营(第七场))

    示例: 输入: 4000010010111011110 输出: 00001001 0111 01111 0 题意:给出一个只含有0和1的字符串,找出一种分割方法,使得每个分割出的字符串都是在该字符串自 ...

  9. python网课自动刷课程序-------selenium+chromedriver

    python的强大之处就在于有许多已经写好的功能库提供,这些库强大且易用,对于写一些有特定功能的小程序十分方便. 现在就用pyhton的selenium+谷歌游览器写一个可以自动刷课的程序,以智慧树上 ...

  10. Postman 基本使用

    Postman 基本使用   Postman主界面 工具栏 New: 新建,可以新建Request请求,Collection请求集,环境等等 Import: 导入,可以导入别人导出的请求集 Runne ...