大数据组件

作为数据开发人员,可能已经接受了SQL Boy的自嘲,但了解背后大数据技术的发展历史,形成知识框架,也算是往前了一步。本文就结合自身的经历,谈一谈对大数据常用组件的认识,希望可以在不同的场景选择合适的技术方案。

基石:Hadoop

传统的数据库无法处理量级过大或过于复杂的数据,于是出现了大数据三驾马车——Google于2003开始发布的一系列论文:

基于论文,雅虎建立了开源的Hadoop项目,奠定了后续大数据发展的基础:

  • HDFS

  • MapReduce

文件存储:HDFS

几乎没有直接操作过hdfs文件。

HDFS Architecture

计算框架:MapReduce

没有机会写过MapReduce程序。

5: Word count program flow executed with MapReduce. 5 | Download Scientific  Diagram

集群管理:YARN

为什么我的队列跑不动数。

MapReduce NextGen Architecture

批处理:SQL On Hadoop

数据仓库:Hive

Hive是一个数据仓库系统,可以采用类SQL语言(HiveQL)操作数据。

  • 类SQL语言:HiveQL

  • 元数据管理:Metastore

  • 文件格式:ORC

Lightbox

批计算:Spark

离线已经很成熟了,但依然需要性能优化

  • 自适应查询执行(Adaptive Query Execution): 运行时对查询执行计划进行优化

    • 动态合并shuffle partitions

    • 动态调整join策略

    • 动态优化倾斜的join(skew joins)

  • 动态分区裁剪

流处理:Streaming

消息队列:Kafka

Kafka Architecture. In my previous article, we talked about… | by Emre Akın  | Medium

流计算:Flink

The Dataflow Model

  • Checkpoint

  • Watermark

  • Retract

The processes involved in executing a Flink dataflow

维表:HBase

只当过维表使用,标签场景?

数据服务:MPP

OLAP:Doris

Query engine

  • 向量化

  • 索引

HTAP:TiDB

混合事务和分析

architecture

其他

  • Celeborn: shufflle性能优化


大数据组件
https://syntomic.cn/archives/big-data-component
作者
syntomic
发布于
2024年09月17日
更新于
2024年11月09日
许可协议