大数据技术6: 大数据技术栈

前言:大数据相关的技术名词特别多,这些技术栈之间的关系是什么,对初学者来说很难找到抓手。我一开始从后端转大数据的时候有点懵逼,整体接触了一遍之后才把大数据技术栈给弄明白了。


一、大数据技术栈

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

1.1、基础编程语言

大数据框架大多采用 Java 语言进行开发,并且几乎全部的框架都会提供 Java API 。python通常用在爬虫,数据分析,机器学习上,部分大数据组件是python开发的,例如airflow。scala底层还是Java,Scala 是一门综合了面向对象和函数式编程概念的静态类型的编程语言,它运行在 Java 虚拟机上,可以 与所有的 Java 类库无缝协作,著名的 Kafka 就是采用 Scala 语言进行开发的。 为什么需要学习 Scala 语言 ? 这是因为当前最火的计算框架 Flink Spark 都提供了 Scala 语言的接口,使用它进行开发,比使用 Java 8 所需要的代码更少,且 Spark 就是使用 Scala 语言进行编写的, 学习 Scala 可以帮助你更深入的理解 Spark这里说明一下,如果你的时间有限,不一定要学完 Scala 才去学习大数据框架。Scala 确实足够的精简和灵活,但其在语言复杂度上略大于 Java,例如隐式转换和隐式参数等概念在初次涉及时会 比较难以理解,所以你可以在了解 Spark 后再去学习 Scala,因为类似隐式转换等概念在 Spark 源码中有大量的运用。

1.2、数据采集

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

1.3、数据存储

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

1.4、数据查询

常见的有hive、spark sql、presto、kylin、impala、durid、clickhouse、greeplum,每个组件都有自己的查询特性和使用场景。

1.5、数据计算

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

1.6、大数据辅助中间件

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

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

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


二、大数据框架分类

上面我们介绍了很多大数据框架,这里进行一下分类总结:
日志收集框架 Flume Logstash Kibana
分布式文件存储系统 Hadoop HDFS
数据库系统 Mongodb HBase、ClickHouse、StarRocks
分布式计算框架
批处理框架: Hadoop MapReduce、Spark
流处理框架:Flink、Storm、SparkStream
查询分析框架 Hive Spark SQL Flink SQL Pig Phoenix
集群资源管理器 Hadoop YARN
分布式协调服务 Zookeeper
数据迁移工具 Sqoop、DataX、FlickCDC
任务调度框架 Azkaban Oozie
集群部署和监控 Ambari Cloudera Manager
上面列出的都是比较主流的大数据框架,社区都很活跃,学习资源也比较丰富。建议从 Hadoop 开始入 门学习,因为它是整个大数据生态圈的基石,其它框架都直接或者间接依赖于 Hadoop 。接着就可以学习计算框架,Flink和Spark 都是比较主流的混合处理框架,Spark 出现得较早,所以其应用也比较广 泛。 Flink 是当下最火热的新一代的混合处理框架,其凭借众多优异的特性得到了众多公司的青睐。两者可以按照你个人喜好或者实际工作需要进行学习。最后可以学习下OLAP存储引擎StarRocks。
至于其它框架,在学习上并没有特定的先后顺序,如果你的学习时间有限,建议初次学习时候,同一类 型的框架掌握一种即可,比如日志收集框架就有很多种,初次学习时候只需要掌握一种,能够完成日志 收集的任务即可,之后工作上有需要可以再进行针对性地学习。

三、大数据应用

推荐领域:电商购物,猜你喜欢。信息流方面,像头条文章推荐,抖音视频推荐。

风控:仿电信诈骗,黄赌毒识别,反洗钱等等。

医疗:通过用户一些医疗信息做疾病的识别。

智慧城市:自动驾驶,智慧物流,城市交通管理等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/213880.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「Python编程基础」第7章:字符串操作

文章目录 一、回顾二、新手容易踩坑的引号三、转义字符四、多行字符串写法五、注释六、字符串索引和切片七、字符串的in 和 not in八、字符串拼接九、转换大小写十、合并字符串join()十一、分割字符串split()十二、字符串替换 replace()十三、字符串内容判断方法十四、字符串内…

使用MetaMask + Ganache搭建本地私有网络并实现合约部署与互动

我使用Remix编写合约,MetaMask钱包工具和Ganache搭建了一个私有网络,并且实现了合约的部署和互动。 在前面的博客中提到了 Remix在线环境及钱包申请 以及 Solidity的基本语法 ,没看过的小伙伴可以点击链接查看一下,都是在本专栏下…

概率测度理论方法(第 2 部分)

一、说明 欢迎回到这个三部曲的第二部分!在第一部分中,我们为测度论概率奠定了基础。我们探索了测量和可测量空间的概念,并使用这些概念定义了概率空间。在本文中,我们使用测度论来理解随机变量。 作为一个小回顾,在第…

stm32 使用18B20 测试温度

用18b20 测试温度是非常常用的,不过18B20的调试不是这么容易的,有些内容网上很多的,不再重复说了,我先把波形说一下,再说程序部分: 整个都温度数据的顺序是: 1.700uS的低电平复位并测试18B20的…

如何用Python编写俄罗斯方块Tetris游戏?

在本文中,我们将用Python代码构建一个令人惊叹的项目:俄罗斯方块游戏。在这个项目中,我们将使用pygame库来构建游戏。要创建此项目,请确保您的系统中安装了最新版本的Python。让我们开始吧! Pygame是一组跨平台的Pyth…

基于Python+Django+mysql图书管理系统

基于PythonDjangomysql图书管理系统 一、系统介绍二、功能展示三、其它系统四、获取源码 一、系统介绍 程序开发软件:Pycharm 数据库:mysql 采用技术: Django(一个MVT框架,类似Java的SSM框架) 人生苦短,我用Python&a…

构建外卖系统:使用Django框架

在当今数字化的时代,外卖系统的搭建不再是什么复杂的任务。通过使用Django框架,我们可以迅速建立一个强大、灵活且易于扩展的外卖系统。本文将演示如何使用Django构建一个简单的外卖系统,并包含一些基本的技术代码。 步骤一:安装…

Java、JDK、JRE、JVM

Java、JDK、JRE、JVM 一、 Java 广义上看,Kotlin、JRuby等运行于Java虚拟机上的编程语言以及相关的程序都属于Java体系的一员。从传统意义上看,Java社区规定的Java技术体系包括以下几个部分: Java程序设计语言各种硬件平台上的Java虚拟机实…

[报错]记录IDEA远程开发报错:java: Cannot run program.....

报错内容 IDEA在进行远程开发的时候报错,内容如下: java: Cannot run program "/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java" (in directory "/home/jim/.cache/JetBrains/RemoteDev-IU/_home_jim_DevCodes_Github_zfile/compile-…

基于JavaWeb+SSM+Vue实习记录微信小程序系统的设计和实现

基于JavaWebSSMVue实习记录微信小程序系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 目 录 摘 要 III Abstract 1 1 系统概述 1 1.1 概述 2 1.2课题意义 3 1.3 主要内…

[Linux] 用LNMP网站框架搭建论坛

一、nginx在其中工作原理 原理: php-fpm.conf是控制php-fpm守护进程 它是php.ini是一个php解析器 工作过程: 1.当客户端通过域名请求访问时,Nginx会找到对应的虚拟主机 2. Nginx将确定请求。 对于静态请求,Nginx会自行处理…

基于ssm平面设计课程在线学习平台系统源码和论文

idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 随着信息化时代的到来,管理系统都趋向于智能化、系统化,平面设计课程在线学习平台系统也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,…

持续集成交付CICD:Jenkins配置Nexus制品上传流水线

目录 一、实验 1.Jenkins配置制品上传流水线 二、问题 1.上传制品显示名称有误 一、实验 1.Jenkins配置制品上传流水线 (1) 新建流水线项目 (2)描述 (3)添加参数 (4)查看构建首页 (5&…

详解TCP报文格式以及TCP相关特性

✏️✏️✏️今天给大家分享的是TCP报文格式的解释以及TCP协议的一些重要特性。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! ✈️✈️✈…

【Docker】进阶之路:(六)Docker镜像

【Docker】进阶之路:(六)Docker镜像 理解镜像构成获取镜像列出镜像删除本地镜像定制镜像使用Dockerfile定制镜像 使用docker build命令Dockerfile文件定制镜像 理解镜像构成 镜像由多个层组成,每层叠加之后,从外部看来…

黑豹程序员-java发邮件,发送内容支持html,带多附件的案例

介绍 发邮件mail是常见的软件功能&#xff0c;下面利于spring和java的mail库实现发送内容支持html&#xff0c;带多附件的案例 开启SMTP邮件发送协议 谁提供的SMTP邮件服务&#xff0c;就找谁开启。QQ邮箱类似。 依赖 <!--Java MAil 发送邮件API--><dependency&g…

GPT-4V 在机器人领域的应用

在科技的浩渺宇宙中&#xff0c;OpenAI如一颗璀璨的星辰&#xff0c;于2023年9月25日&#xff0c;以一种全新的方式&#xff0c;向世界揭示了其最新的人工智能力作——GPT-4V模型。这次升级&#xff0c;为其旗下的聊天机器人ChatGPT装配了语音和图像的新功能&#xff0c;使得用…

Linux基本指令(超详版)

Linux基本指令&#xff08;超详版&#xff09; 1. ls指令2.pwd指令3. cd 指令4.touch指令5mkdir指令6.rmdir指令&&rm指令7.man指令7.cp指令8.mv指令9.echo指令10.cat指令11.more指令12.less指令13.head指令14.tail指令15.date指令16.find指令17.grep指令zip(打包压缩) …

Spring基于XML文件配置AOP

AOP AOP&#xff0c;面向切面编程&#xff0c;是对面向对象编程OOP的升华。OOP是纵向对一个事物的抽象&#xff0c;一个对象包括静态的属性信息&#xff0c;包括动态的方法信息等。而AOP是横向的对不同事物的抽象&#xff0c;属性与属性、方法与方法、对象与对象都可以组成一个…

kafka常见问题处理

1. 如何防⽌消息丢失 在生产者层面&#xff0c;我们有个ack参数确认机制 设置成-1&#xff0c;也就是副本全部同步了leader才发送ack&#xff0c;这样确保leader和副本挂掉只剩一个还能 保证消息不丢失 消费者&#xff1a; 把⾃动提交改成⼿动提交 2. 如何防⽌重复消费 在…