2023-08-23 阅读量: 1016
大数据技术栈

一、大数据技术栈

之前有同事问我怎么转大数据开发,他在网上搜了一堆大数据相关的技术,但是不知道从哪里开始入门,也不知道要学习哪些技术,这些技术栈之间的关系是什么。我一开始转大数据的时候也有点懵逼,整体接触了一遍之后才把大数据技术栈给弄明白了。


做大数据开发,无非要干四件事情,采集、存储、查询、计算。此外,一些开发必备的基础语言能力是需要的。我按照这几个维度,对大数据常见技术栈做了下划分。

image.png


基础能力

java不用说,当今世界使用最广泛的语言,做程序员基本必会的,而且大数据生态很多组建都是通过java开发的。python通常用在爬虫,数据分析,机器学习上,部分大数据组件是python开发的,例如airflow。scala底层还是java,由于spark是scala开发的,且scala也集成了很多spark的算子,所以scala一般用在spark开发上。


数据采集

一般通过filebeat,logstash,kafka,flume做日志采集。一些应用系统的数据,也会通过kafka或者binlog的方式同步到大数据组件做存储。


数据存储

这里的数据存储引擎和传统的关系型数据库有很大的区别。常见分布式存储文件系统有hdfs。此外,对于一些非结构化的数据会通过nosql的方式做存储,常见的nosql存储组件有hbase,redis。


数据查询

常见的有hive、spark sql、presto、kylin、impala、durid、clickhouse、greeplum,每个组件都有自己的查询特性和使用场景。这里不展开篇幅详细介绍了,后面慢慢聊。


数据计算

常见的计算方式有流计算和批处理,按实效性又分离线计算和实时计算。对应的计算组件有storm,spark stream,flink。


其它

分布式协调器:大数据组件为了提高可靠性通常是分布式存储的,这样就涉及到各个组件之间的协调同步。最常见的协调器就是zookeeper。

资源管理器:为了提高计算能力,会对计算资源(CPU,内存,磁盘)做分配,常见的组件有yarn,mesos。

调度管理器:调度管理器管理任务何时执行,周期执行,是否重试等。常见的有airflow,dalphine schduler,oozie,azkaban。




0.0000
0
关注作者
收藏
评论(0)

发表评论