kudu入门_应用场景_方案二|学习笔记

简介: 快速学习kudu入门_应用场景_方案二

开发者学堂课程【2020版大数据实战项目之DMP广告系统(第一阶段)kudu入门_应用场景_方案二】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/676/detail/11748


kudu入门_应用场景_方案二


介绍了方案一,本节继续介绍方案二,首先先来回顾一下需求,kudu 的需求就是要做一个工业大数据的项目,所有的机器的数据收集放到数据平台当中,因为数据是一条一条的,所以又要求及时查看近期数据并且可以访问历史数据,因此对数据层有两个层面的要求,第一个层面要能够随机插入然后快速得到某一部分数据,还有一部分就是存储层要能够处理大规模的数据扫描。如果是这种项目,使用 SparkStreaming+HDFS 。因为要对数据进行模式处理,而SparkStreaming 在处理完数据落地到HDFS里会产生大量的小文件,这个时候再来说第二种方案,第二种方案为SparkStreaming+HDFS(合并压缩),意思是要处理 HDFS 文件,把小文件合并起来。


方案二: HDFS+compaction

image.png

SparkStreaming 处理完以后会产生非常多的小文件,这些小文件可以合并起来可以使用 file_compact 合并成大文件。这么做性能会有改善并且能做到之前做不到的事情,但是在合并的过程非常复杂,有可能把文件放到某一个文件中,比如说在 SparkStreaming 处理完以后放到第一个文件又放入了第二个文件又放入了第三个文件,第一个问题就是假如说外部有系统正在读取这个文件,但这个文件足够小,因此想把这三个文件合并在一起,但这个文件还正在被读,或者外部正在往这个文件里去写,不管什么原因这个文件正在被使用,此时没有办法合并,因此要注意一个文件只有不再活跃时才能合并。

还有的问题就是第一个文件在外部还有关联,外部可能在读取或者进行相应的处理,但又要将这些文件合并起来。假如产生了三个文件,当外部正在使用这个文件时,但要将这些文件合并起来,为什么能合并是因为外部可能没有东西去写了,文件有可能不会发生变化了,所以可以把它们合并成一个文件,合并成一个文件以后,一个文件不能覆盖原来文件的位置,因为外部正在读取,所以需要再加一个目录来装合并完的文件,等三个文件的目录的请求都处理完后,接下来再把合并的文件拷贝进去,然后让外部访问大文件,是这样的方案。即要注意不能将覆盖的结果放回原来的位置。

合并文件需要考虑系统,数据源源不断的来,又要源源不断的查,在这样的场景下要考虑首先文件会不会变其次那边是否在读,所以要注意如下两个问题:

(1)一个文件只有不再活跃时才能合并

(2)不能将覆盖的结果放回原来的位置(因为有可能中断外部的查询,而且刚才的过程是有两个目录,当前一个目录正在活跃当中,当活跃的目录不再活跃时,另一个目录中的文件可以放入不再活跃的文件中,然后让外部访问新的目录,不一致的问题一定会存在无法解决。)

所以一般在流式系统中进行小文件合并的话,需要将数据放在一个新的目录中,让 Hive/Impala 指向新的位置,再清理老的位置。

相关文章
|
1月前
|
存储 分布式计算 NoSQL
大数据-144 Apache Kudu 基本概述 数据模型 使用场景
大数据-144 Apache Kudu 基本概述 数据模型 使用场景
36 0
|
2月前
|
存储 SQL Cloud Native
Hologres 的架构设计与工作原理
【9月更文第1天】随着大数据时代的到来,实时分析和处理数据的需求日益增长。传统的数据仓库在处理大规模实时数据分析时逐渐显露出性能瓶颈。为了解决这些问题,阿里巴巴集团研发了一款名为 Hologres 的新型云原生交互式分析数据库。Hologres 能够支持 SQL 查询,并且能够实现实时的数据写入和查询,这使得它成为处理大规模实时数据的理想选择。
110 2
|
3月前
|
存储 SQL Prometheus
【TiDB原理与实战详解】1、原理与基础优化~学不会? 不存在的!
TiDB 是一款开源的分布式关系型数据库,具备水平扩展、高可用性和强一致性等特点,适用于高并发、低延迟的大规模数据处理场景。其架构设计灵感源自 Google 的 Spanner 和 F1,并兼容 MySQL。TiDB 集群由 TiDB Server(无状态 SQL 层)、PD(元数据管理模块)和 TiKV Server(分布式存储层)组成,还包含 TiFlash(列存储引擎)以加速分析型查询。TiDB 支持分布式事务和多种事务模式,适用于 OLTP 和 HTAP 场景,如电商平台和金融系统。此外,TiDB 的部署要求包括高性能硬件配置和特定网络设置,以确保系统的稳定性和高效运行。
|
6月前
|
资源调度 Kubernetes Oracle
实时计算 Flink版产品使用合集之三种集群模式各有啥优缺点,生产环境如何选择
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
140 0
|
存储 SQL NoSQL
大数据存储组件TiDB原理+实战篇1
大数据存储组件TiDB原理+实战篇
|
存储 SQL 分布式计算
大数据存储组件TiDB原理+实战篇2
大数据存储组件TiDB原理+实战篇
|
存储 分布式计算 数据挖掘
kudu入门_应用场景_方案三|学习笔记
快速学习kudu入门_应用场景_方案三
116 0
kudu入门_应用场景_方案三|学习笔记
|
SQL 消息中间件 存储
Kudu入门_应用场景_方案一|学习笔记
快速学习Kudu入门_应用场景_方案一
109 0
Kudu入门_应用场景_方案一|学习笔记
|
存储 数据可视化 大数据
Kudu入门_应用场景_项目介绍|学习笔记
快速学习Kudu入门_应用场景_项目介绍
129 0
Kudu入门_应用场景_项目介绍|学习笔记