4 _东极

尚未进行身份认证

我要认证

少年锦时

等级
TA的排名 6k+

KUDU(五)kudu优化

文章目录机架感知透明分层存储管理方案索引跳跃式扫描优化资源规划机架感知Kudu可以知道每个Tablet Server处于哪个数据中心的哪个机架上,副本的负载均衡策略就可以考虑更全面,避免一个tablet的多个副本负载在同一机架,防止机架故障时tablet不可用。上图中,L0-L2是三个机架,TS0 -TS5是5台Tablet Server,有两张表:A表(副本因子=3),包含A0-A3四个tabletsB表(副本因子=5),包含B0-B2三个tablets如果Kudu配置了机架感知,它就会发现

2020-10-20 23:51:22

KUDU(三)kudu的模式设计

文章目录基于HTAP方式列设计Decimal类型列编码列压缩主键设计分区设计基于HTAP方式kudu是基于hbase-hdfs之间,满足高并发的随机读写,兼顾大规模分析处理,具有OLTP以及OLAP特征,因此是典型的HTAP(在线事务处理/在线分析处理混合模式)早期由于将OLTP以及OLAP拆分,事务性应用和分析型应用分开,但是分析型应用无法获取最新数据,OLTP横向扩展性不足,维护一套系统复杂度很高2.Lambda架构Lambda架构将工作负载分为实时层和批处理层,我们是用实施层检索和分析

2020-10-13 23:42:18

KUDU(三)kudu数据读写,更新流程

文章目录写读更新写当CLient请求写数据时,先根据主键从Master获取要访问的目标Tablets,然后依次到对应的Tablet获取数据因为kudu表存在主键约束,所以需要进行主键是否已经存在的判断,这里涉及到之前说的索引结构对读写的优化,一个Tablet中存在多个RowSets,为了提升性能,尽可能减少扫描RowSets数量,首先,我们先通过每个 RowSet 中记录的主键的(最大最小)范围,过滤掉一批不存在目标主键的RowSets,然后在根据RowSet中的布隆过滤器,过滤掉确定不存在目标主键

2020-10-12 23:24:51

KUDU(二)kudu架构设计

文章目录架构设计原理table与schemaKudu存储模型RowSet组成:tablet发现过程架构设计kudu是典型的主从架构,主Master:管理集群,管理元数据从:table server 负责最终数据存储对外提供数据读写能力,里面存储的是一个个tabletmaster:特殊的CataLog Table ,只有一个tablet,且在内存中有完整的缓存,缓存catalog table数据主要是为了提高性能,因为客户端需要通过它定位数据位置1.master不需要较大存储,不需要很好的硬件2.

2020-10-12 22:51:10

OLTP与OLAP区别

文章目录OLTPOLAPOLTP联机事务处理面向业务开发人员规范化为单条记录的查询做优化行式存储OLAP联机分析处理面向分析师非规范化存在星型/雪花模型为大规模分析查询做优化列式存储(上层对接报表/AI模型分析)OLAP与OLTP与关系型数据库(RDBMS)无直接联系对于分析查询,一般只需要用到少量的列,在列式存储中,只需要读取所需的数据列即可。 例如,如果您需要100列中的5列,则I / O减少20倍。按列分开存储,按数据包读取时因此更易于压缩。 列中的数据具有相同特

2020-10-08 23:10:33

KUDU(一)kudu概述

文章目录概述使用场景对比其他存储概述Kudu是一个分布式列式存储引擎/系统,由Cloudera开源后捐献给Apache基金会很快成为顶级项目。用于对大规模数据快速读写的同时进行快速分析官网https://kudu.apache.org/Kudu运行在一般的商用硬件上,支持水平扩展和高可用,集HDFS的顺序读和HBase的随机读于一身,同时具备高性能的随机写,以及很强大的可用性(单行事务,一致性协议),支持与Impala/spark计算引擎。数据形态存储场景局限性静态数

2020-10-08 23:02:33

spark大数据分析:spark Struct Strreaming(30)程序优化

文章目录程序优化尽可能减少和避免shuffle使用Kryo 作为序列化方案数据优化资源优化程序优化尽可能减少和避免shuffle(1) map task中,将内存中的数据以文件形式写到磁盘中(2) reduce task 中,通过网络I/O读取map task中溢写的文件,进行聚合,由于join操作前后分区策略不一致造成shuffle,数据量较少(一般低于3G)可以使用广播变量机制在同一个stage中完成join操作未优化前 val rddData1 = sc.parallelize(Arr

2020-09-21 23:44:19

spark大数据分析:spark Struct Strreaming(29)checkPoint与连续处理模式

文章目录checkPoint连续处理 Continuous ProcessingcheckPoint val query = result.writeStream .outputMode("update") .trigger(Trigger.ProcessingTime(0)) .format("console") .option("checkpointLocation","指定路径") .start()在流式计算中,一旦设置了ch

2020-09-21 23:21:57

spark大数据分析:spark Struct Strreaming(28)管理与监控工作流

文章目录管理工作流监控工作流管理工作流 val query = joinResult.writeStream .outputMode("append") .trigger(Trigger.ProcessingTime(0)) .format("console") .start()query.id获取当前查询的唯一idquery.runId获取本次查询运行的唯一Id,每次启动或重启重新生成query.name获取.queryNa

2020-09-17 23:07:40

spark大数据分析:spark Struct Strreaming(27)Trigger触发器的分类

文章目录持续批处理一次性批处理连续处理持续批处理实现方式Trigger.ProcessingTime(时间间隔)适用场景:流式数据的批处理作业,如果不设置,默认适用该类型,间隔为0,表示尽可能处理每一个批次的数据,即Trigger.ProcessingTime(0),如果无数据,处于阻塞状态,等待数据流入一次性批处理实现方式Trigger.Once()场景非实时数据分析,执行完毕后程序退出,一般需要配合定时调度框架周期性启动程序,处理之前数据连续处理实现方式Trigger.Conti

2020-09-17 22:38:08

spark大数据分析:spark Struct Strreaming(26)数据输出结果分析

文章目录输出模式使用场景Append模式Complete输出模式Update模式基于File Sink基于Kafka Sink 以Streaming方式输出数据基于Kafka Sink 以Batch方式输出数据基于Console sink输出数据基于Memory SinkForeach SinkForeachBatch Sink输出模式使用场景Append模式默认输出模式,采用这种输出模式,保证数据每行只输出一次,查询过程中如果没有设置Watermark,不能使用聚合操作,使用了只能根据事件时间聚合操

2020-09-15 23:41:39

spark大数据分析:spark Struct Strreaming(25)数据分组,手动维护分组状态

文章目录通过mapGroupsWithState 实现数据分组,手动维护分组状态提供了两种自定义分组的聚合函数,mapGroupsWithState,flatMapGroupsWithState,允许开发者基于事件时间或处理时间进行有状态的流计算通过mapGroupsWithState 实现数据分组,手动维护分组状态根据输入单词,按照事件时间聚合相同分钟数,相同单词出现的次数,并在此过程中通过mapGroupsWithState实现数据分组,手动维护分组状态...

2020-09-14 23:04:50

spark大数据分析:spark Struct Strreaming(24)Stream-Static/Stream模式下的innerjoin操作

文章目录流与静态数据的joinStream-Stream的join流与静态数据的join对于流式数据与静态数据的join操作,直接DataFrame之间的join即可 val spark = SparkSession .builder .master("local[*]") .appName("Chapter9_8_1") .getOrCreate() import spark.implicits._ spark.sparkConte

2020-09-09 23:53:34

spark大数据分析:spark Struct Strreaming(23)去除重复数据

文章目录 val spark = SparkSession .builder .master("local[*]") .appName("test") .getOrCreate() import spark.implicits._ spark.sparkContext.setLogLevel("WARN") val lines = spark.readStream .format("socket")

2020-09-09 23:43:23

spark大数据分析:spark Struct Strreaming(22)基于Watermark处理延迟数据

文章目录作用基于update模式,实现wordCount,结合waterMark处理延迟数据基于Append模式 ,实现wordCount,结合waterMark处理延迟数据底层工作原理Watermark机制与输出模式作用在数据分析系统中,Struct Strreaming可以持续按照事件时间聚合数据,在此过程中并不能保证数据按照事件时间大小依次达到,在某一个时刻接受到数据远远落后之前批次已经处理过的事件时间,发生这种情况时,需要结合业务需要对延迟数据进行过滤默认情况下,无论数据延迟多久,数据根据事件

2020-09-08 00:10:16

spark大数据分析:spark Struct Strreaming(22)基于事件流处理

文章目录基于事件时间的窗口操作事件时间窗口方式事件时间窗口生成规则基于事件时间的窗口操作在 Struct Strreaming中,可以按照事件真实发生时间对附近范围内的数据进行聚合操作,即基于事件时间窗口进行操作,在这种机制下,不必考虑事件到达顺序与事件发生顺序一致,大大减少了开发者工作量一条数据可以被称为一个事件,在生成数据时携带的时间可以称为事件时间案例package structimport java.text.SimpleDateFormatimport org.apache.sp

2020-09-06 23:55:22

spark大数据分析:spark Struct Strreaming(21) 数据流处理

文章目录根据文件生成工作流根据kafka生成工作流以kafka为数据源,通过Batch模式生成工作流根据指定速率生成工作流根据文件生成工作流当文件夹命名为"key=value"形式时,Struct Strreaming会自动遍历当前文件夹下的子文件,根据文件名实现自动分区package structimport org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.streaming.Triggerimport org.apa

2020-09-06 23:23:12

spark大数据分析:spark Struct Strreaming(20)结构化流认知

文章目录优点案例编程模型输出模式优点struct Streaming构建在spark SQL之上,将数据以增量的方式连续的读物到DataFrame,DataSet中,并可以像使用静态的DataFrame.DataSet分析数据,同时支持基于事件时间的窗口操作聚合数据,通过CheckPoint以及WALs(预写日志.)机制实现消费数据"有且只有一次"Struct Strreaming也是将数据按时间间隔整理多个批次处理,并且可以将时间处理间隔降低到100ms,精确去除重复数据案例import org

2020-09-05 14:16:06

spark大数据分析:sparkStrreaming(21)程序关闭

文章目录关闭程序方法有4种1.kill杀死,可能数据丢失2,通过钩子(hook)关闭,需要写shell脚本,麻烦3.在程序中建立http服务,接受外部消息在程序中关闭,代码较多4.用hdfs中目录做标记,定期检查hdfs目录是否存在,存在关闭程序,简单方便依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop

2020-09-02 00:19:03

spark大数据分析:sparkStrreaming(20)广播变量与累加器

文章目录对于广播变量与累加器在程序中断后无法从CheckPoint中恢复数据,程序中断会导致数据丢失自定义累加器实现全实时wordCountpackage streamimport org.apache.spark.SparkContextimport org.apache.spark.util.AccumulatorV2import scala.collection.mutable/** * 实现单例用于恢复累加器 * 线程安全的单例模式对累加器进行初始化 */object W

2020-09-02 00:09:18

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取