大数据组件
作为数据开发人员,可能已经接受了SQL Boy的自嘲,但了解背后大数据技术的发展历史,形成知识框架,也算是往前了一步。本文就结合自身的经历,谈一谈对大数据常用组件的认识,希望可以在不同的场景选择合适的技术方案。
基石:Hadoop
传统的数据库无法处理量级过大或过于复杂的数据,于是出现了大数据三驾马车——Google于2003开始发布的一系列论文:
基于论文,雅虎建立了开源的Hadoop项目,奠定了后续大数据发展的基础:
HDFS
MapReduce
文件存储:HDFS
几乎没有直接操作过hdfs文件。
计算框架:MapReduce
没有机会写过MapReduce程序。
集群管理:YARN
为什么我的队列跑不动数。
批处理:SQL On Hadoop
数据仓库:Hive
Hive是一个数据仓库系统,可以采用类SQL语言(HiveQL)操作数据。
类SQL语言:HiveQL
元数据管理:Metastore
文件格式:ORC
批计算:Spark
离线已经很成熟了,但依然需要性能优化
自适应查询执行(Adaptive Query Execution): 运行时对查询执行计划进行优化
动态合并shuffle partitions
动态调整join策略
动态优化倾斜的join(skew joins)
动态分区裁剪
流处理:Streaming
消息队列:Kafka
流计算:Flink
Checkpoint
Watermark
Retract
维表:HBase
只当过维表使用,标签场景?
数据服务:MPP
OLAP:Doris
向量化
索引
HTAP:TiDB
混合事务和分析
其他
Celeborn: shufflle性能优化
大数据组件
https://syntomic.cn/archives/big-data-component