大数据扫盲贴,你想知道的这里都有

本文不介绍过多专业知识和名词,想了解专业内容网上到处都能搜到,知识根据我经验说一些大家应该比较感兴趣的点。

php能不能开发大数据

虽然好多文章可能说大数据不限语言,但是实际上还是java和scala语言主导了绝大部分的大数据开发工作。对于php,可能仅仅能做到支持部分大数据组件的api(比如Kafka,dorisdb)。而且支持的不是很好,大部分数据组件压根就没有php的api

java开发大数据,需要对java熟悉到什么程度

很多人对java的了解phper可能也是听过他的很多的web框架,springboot,springcloud等等。但是这些都是javaweb的框架。大数据开发用不到这些东西。需要会java的语法和掌握自带的各种api。
但是还有些其他的东西需要掌握,比如maven

看见大数据技术栈懵逼

大数据扫盲贴
我估计很多人了解过大数据之后会看到各种各样的技术栈名词,而且这些里面每一个拿出来都是学习成本不小的东西,有点望而却步。就算硬着头皮想了解下去根本不知道是个什么顺序,也不知道这些组件之间有什么关系。
这里随便列几个比较出名的:
Hadoop、Hive、Kafka、Spark、Flink

技术栈分类

大数据各种技术栈,其实差别挺大的,我大致分为四类

1、Hadoop

Hadoop比较特殊,单独放一类,估计绝大数人对大数据的第一印象都是他。作为三板斧之一,相当重要。不做过多介绍,Hadoop有三个核心组件

  • hdfs:可以理解为做文件存储,很多框架会用到这个组件
  • MapReduce:做数据计算处理
  • yarn:做分布式任务调度,用来处理各个application

现在直接使用Hadoop做数据处理的很少,他更多是做一个支撑的作用,但是他是基本上必装的,因为大部分的大数据组件用到了hdfs做一些状态存储和用yarn来做任务部署。
就类似springcloud每个程序启动时候要在nacos上注册一样。

2、计算类

这类框架通常是做大数据开发时候核心的编码工作,90%的代码都是在这部分完成,一般都是由框架提供的各种算子操作来完成想要的数据分析。
代表框架:Flink、Spark

3、管道类(数据传输)

无论是对业务数据的数据还是说程序的日志数据做分析,基本上都需要一个东西来做中间层传输,将数据源对接到处理的程序上面。
代表框架:Datax、Kettle、Kafka、Flume

4、存储类

存储顾名思义就是当做一个数据库来使用,存的各种结构的数据,用起来基本上也都是使用sql来操作
代表框架:Hive、HBase、Clickhouse、Dorisdb

框架整合

基于上面几类框架,我可以列一个最常用的组合来帮大家理解一下各层在链路上得作用:

业务数据库(Mysql)/日志数据 -> kafka传输 -> 程序计算(Flink/Spark)-> yarn调度 -> 写入Clickhouse -> 数据展示

上面展示的是一套比较主流的数据处理模式,当然实际开发中得问题比这会复杂的多得多

实际场景怎么选型

  • 不是每个公司都需要搭建一套大数据架构,都不说大部分公司的机器数量和配置都支撑不了一套重型的架构。
  • 搭建大数据体系大部分是为了做报表数据和数据分析平台,而且数据量过大,普通的关系型数据库满足不了分析场景,而且不能过多占用业务数据库的资源。
  • 但是即时你的公司说需要搭建大数据架构的时候,也不是要完整的都要学习一遍。因为这种大数据分析绝大部分的公司我认为是离线需求的(可以延迟半天或一天),而且很多时候统计规则没那么复杂。
  • 对于这种比较轻量需求的公司,推荐大家去了解一下Starrocks和Dorisdb这种湖仓一体的数据库,可能你的公司只需要搭建这一个分布式数据库就能解决所有的需求,甚至Hadoop都不需要;你更多需要考虑的是如何把业务数据库同步至数仓,推荐了解下Datax和Kettle,甚至自己手写定时任务程序都可以简单实现。

学习路线

可能很多时候并不是所有东西都需要掌握,这里推荐一些个人觉得比较实际的框架

  • Hadoop(着重hdfs和yarn)
  • Hive
  • Kafka
  • Spark Flink
  • ClickHouse
  • Dorisdb

最后

希望这篇文章能让你对大数据的技术栈层面有点浅显的了解,有在公司搭建数仓和数据处理架构的也希望大家多多交流
最后苏州求内推~

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!