如何简单理解大数据

news2025/7/17 16:08:59

image-20220408114340444

如何简单理解大数据

HDFS-存储

海量的数据存储

hadoop 只是一套工具的总称,它包含三部分:HDFS,Yarn,MapReduce,功能分别是分布式文件存储资源调度计算

按理来说,这就足够了,就可以完成大数据分析了。

Hbase-NoSQL

随机查询

海量数据怎样快速查询?HBase 当做是 MySQL,把 HDFS 当做是硬盘。HBase 只是一个 NoSQL 数据库,把数据存在HDFS上。

Hive-调度

降低大数据开发难度,使用 SQL 就行

但第一个问题就是麻烦。这一套相当于用 Yarn 调度资源,读取 HDFS 文件内容进行 MR 计算。要写 Java 代码,但做数据的最好的工具是什么?SQL!所以 Hive 相当于这一套标准流程的 SQL 化

Hive 可以简单理解为,Hadoop 之上添加了自己的 SQL 解析和优化器,写一段 SQL,解析为 Java 代码,然后去执行MR,底层数据还是在 HDFS 上。

ClickHouse/kylin-OLAP类型

关联查询

亿级数据关联查询处理时,比 Hive 快百倍。支持常用的 SQL 语法,写入速度非常快,适用于大量的数据更新。依赖稀疏索引,列式存储,CPU/内存的充分利用造就了优秀的计算能力,并且不用考虑左侧原则。不支持事务、不支持高并发

Spark-计算

解决大数据计算问题

这看起来挺完美,但问题是程序员发现好慢啊。原因是 MR,它需要频繁读写文件。这时基于内存的 Spark 出现了,Spark 是替代 MR 的,意图解决所有大数据计算问题,它会为 SQL 生成有向无环图,加上各种算子和宽窄依赖的优化,使得计算速度达到了新的高度。

按理说这就完美解决了呀。

下游-canal-同步

但是,我们回头想想,这些数据怎么来的呢?我们是不是到目前为止都是在处理静态的数据呢?像比如线上支付校验这种需要实时返回结果的总不能等着 Spark 批量算吧。

解决问题之前,我们回头再想想,数据怎么来的。一般数据包含两种:业务数据和日志数据。

业务数据就是数据库中的结构性的数据,规规整整。业务数据怎么到 Hive 呢?开源上一般通过 Sqoop 进行导入,比如一张表,数据少每天我把表全部导入一遍,这叫全量同步;数据特别大,就只同步每天变化和新增的,这是增量同步。

但这种同步比较滞后,都是在夜深人静集群的计算资源比较空闲的时候做的,对应的也是离线分析。

实时怎么理解?来一批处理一批,再细一点儿,来一条,处理一条。

比如,你买一件东西,平台数据库中会多一条订单数据,app 会产生行为日志数据。订单数据插入数据库时一般会有binlog,即记录插入、更新或删除的数据,我们只要能实时拿到这一条 binlog,就相当于拿到了实时数据。

binlog 怎么拿呢?这就要说道数据库的主从备份机制,一般本身就是拿主库的 binlog 同步到备份库,刚好有一个叫 canal的工具可以把自己伪装成备份库,来拉取主库的 binlog,再解析、包装最后抛出,就相当于实时拿到数据了!

下游-MQ-消峰

canal 拿到了 binlog 就能直接处理了吗?可以,但有件事儿大家想一想。马上五一了,加入一下子超级多人下单消费,canal 抛出的消息我们下游一下子消费不完咋办呢?比如快递员每天都只给你派送一件快递,你拿到之后钱货两清。然后突然一天快递员给你送一千件到你楼下,你下楼一件一件搬,快递员还得等你搬完才能回去,这得等到啥时候。聪明的你马上想到了,放快递柜呀,你有时间慢慢搬不就行了,也不占用快递员的时间了。

这就是消息队列,Kafka 就是起这样的作用:异步、解耦、消峰。canal的数据一般会抛到 kafka 或 RocketMQ,可以保存一段时间。然后下游程序再去实时拉取消息来计算。

Spark Streaming/Storm-实时计算

实时计算

说了这么多下游,下游到底由谁来消费计算这些实时数据呢?还记得 Spark 吗,没错它又来了,Spark streaming 就是批量处理 实时流数据 的好手。

Spark 是一整套组件的统称,比如你可以用 Java 写 Spark 任务,用 Spark SQL 去写 SQL,可以用 Spark MLib 完成机器学习的模型训练等等,Spark Streaming 就是用来微批地处理流式数据的。

具体而言,离线数据我们是等半夜数据都抽到 Hive 中再计算,而 Spark Streaming 则是实时数据来一小批,它就处理一小批。所以本质上讲,Spark Streaming 还是批处理,只不过是每一批数据很少,并且处理很及时,从而达到实时计算的目的。

Spark 本身的流行使得 Spark Streaming 也一直大范围使用。

Flink-逐条计算

比 Spark 更强的实时计算

我们可以想一想,实时数据和离线数据最大的差异,是时效性。离线数据像湖水,该多少就多少,就在那里;实时数据像水流,绵绵不绝。时间,便是非常重要的一个特质。当一条数据来的时候,我们需要知道这条数据是什么时候产生的,这便是业务时间。但我们拿到这条数据时往往是业务时间之后的一小会,这边是处理时间。真正世界里的实时数据肯定不是像 Spark Streaming 那样一批一批来的,而是一个一个的事件。对此,Flink 帮助我们解决了这些问题。

无论是业务数据还是日志数据,往往都有相应的时间标志字段,代表着这条消息的业务时间。你可以让 Flink 选择这个时间,这样,Flink 就知道当前处理到哪个时间点了。

Flink 不同于 Spark Streaming 的微批次处理,它是一条一条数据处理的。

TensorFlow-挖掘

海量数据怎样挖掘出隐藏的知识?也就是当前火热的机器学习和深度学习等技术,包括TensorFlow、caffe、mahout等

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matlab实现MCMC的马尔可夫转换MS- ARMA - GARCH模型估计

状态转换模型,尤其是马尔可夫转换(MS)模型,被认为是识别时间序列非线性的不错的方法。 估计非线性时间序列的方法是将MS模型与自回归移动平均 - 广义自回归条件异方差(ARMA - GARCH)模型相结合,…

Ubuntu22.04+Nvidia驱动+Cuda11.8+cudnn8.6

Ubuntu22.04Nvidia驱动Cuda11.8 一、准备环境 ubuntu 22.04nvidia显卡 这里使用的是RTX3060已安装Python3.10 二、安装pip3 # 安装 sudo apt install python3-pip # 升级 sudo pip3 install --upgrade pip # 如果要卸载,使用命令: sudo apt-get remov…

MySQL创建和管理表

基础知识 一条数据存储的过程 存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、…

ES6解析赋值

ES6中新增了一种数据处理方式,可以将数组和对象的值提取出来对变量进行赋值,这个过程时将一个数据结构分解成更小的部分,称之为解析。 1.对象解析赋值: 在ES5中,要将一个对象的属性提取出来,需要经过一下几个过程。 …

aws sdk 学习和使用aws-sdk-go

https://www.go-on-aws.com/infrastructure-as-go/cdk-go/sdk example,https://github.com/awsdocs/aws-doc-sdk-examples golang的安装,使用1.15之后默认开启GO15VENDOREXPERIMENT的版本 yum install golang -y go env -w GOPROXYhttps://goproxy.cn,…

智慧教室解决方案-最新全套文件

智慧教室解决方案-最新全套文件一、建设背景1、教育信息化2.0行动计划2、中国教育现代化20353、加快推进教育现代化实施方案二、建设思路互联网时代教学环境定义三、建设方案四、获取 - 智慧教室全套最新解决方案合集一、建设背景 1、教育信息化2.0行动计划 “网络学习空间覆…

【直播】-DRM和TZC400的介绍-2022/11/26

直播背景和内容 最近有两位SOC大佬再和我探讨TZC的设计,以及使用场景。也有几位软件工程师,在深入得学习安全技术,也问到了TZC相关的技术。 然后就搞了本次的直播,共计17人报名。 上线12位同学。(有ASIC大佬、有软件大佬、芯片严…

shell脚本的条件判断3:探究[[]]和[]的区别

前言 实例中除非特别标注,否则都不是在centos中测试的。 一 简述 多数情况下[]和[[]]是可以通用的,两者的主要差异是:test或[]是符合POSIX标准的测试语句,兼容性更强,几乎可以运行在所有Shell解释器中,相…

驱动保护进程 句柄降权 杀软自保 游戏破图标技术原理和实现

文章目录实现效果实现原理代码实现实现效果句柄降权对抗(实现破游戏图标和关闭杀软自保)降权对抗延伸游戏降权对抗杀软自保对抗隐藏Object钩子回调完整代码实现效果 效果如图所示: 无法结束进程: CE无图标: 内存无法读取 可以看到被保护的进…

STC 51单片机41——汇编 串口连续发送数据

; 仿真时,单步运行,记得设置虚拟串口数据 ORG 0000H MOV TMOD ,#20H ;定时器1,工作方式2,8位重装载 MOV TH1,#0FDH ; 波特率9600 MOV TL1,#0FDH SETB TR1 ; 启动T1 MOV SCON ,#40H ; 串口工作方式1 …

[激光原理与应用-20]:《激光原理与技术》-6- 谐振腔的结构、作用、工作原理

目录 第1章 谐振腔简介 1.1 什么是谐振腔 1.2 什么是光学谐振腔 1.3 谐振腔的作用 1.4 什么是镜片镀膜 第2章 谐振腔的结构与工作原理 2.1 谐振腔的结构 2.2 谐振腔的分类 2.3 激活介质与谐振腔的工作原理 第1章 谐振腔简介 1.1 什么是谐振腔 谐振腔,是…

[Java反序列化]—CommonsCollections4

0x01: 这条链子 前半段跟CC3 一样 ,都是动态加载字节码的过程,后边的构造用到了两个类,PriorityQueue和TransformingComparator Gadget chain:ObjectInputStream.readObject()PriorityQueue.readObject()...TransformingComparat…

如何Cisco的学员 摆脱游客登录

Cisco Packet Tracer 是一款强大的网络模拟工具,可用于在虚拟实验环境中练习网络、物联网和网络安全技能。您不需要任何硬件,即可获得实操经验! 相信很多小伙伴在使用cisco packet tracer这个思科数据包跟踪器 - 网络仿真工具时在登录的时候…

云原生k8s的前世今生--Docker

不可修改(immutability)和幂等性(idempotent)是一致依赖困扰软件发布与运维的两个难题。以nodejs等解析执行的应用而言,如何控制发布后的软件不被修改运行,发布后,经常发现因为运行环境差异导致各种水土不服:比如应用程序对底层操…

【C++数据结构】渐近记法

渐近记法 3.1 引言 考察程序的操作计数和执行步数有两个重要的原因: 1)预测程序运行时间如何随着实例特征的变化而变化; 2)对两个功能相同的程序,比较它们的时间复杂度。 存在问题: 在使用操作计数时,我们关注的…

Vue生命周期--Vue实例创建过程详解

每个Vue实例在被创建时都要经过一系列的初始化过程--例如,需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会运行一些叫做 生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。 生命周期图示&…

Linux入侵排查

Linux入侵排查 实验内容 当系统被黑客入侵、需短时间查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施。以下给出一些入侵排查思路 netstat -antpl 查看当前端口状态是LISTEN的端口 针对对外开放的端口,查看日志 先查看ssh爆破的…

OpenGL ES 学习(三) -- 绘制平面图形

上一章中,已经对 OpenGL 的编程语言 GLSL 和渲染模式有了一定的了解,今天,将运用之前的知识,完成一些平面图形的操作。效果如下: 如果你对 OpenGL 的基本概念或者渲染流程不清晰,建议先看 OpenGL ES 学习…

D. Insert a Progression(绝对值的性质)

Problem - 1671D - Codeforces 给你一个n个整数的序列a1,a2,...,an。你还得到了x个整数1,2,...,x。 每个整数可以插入序列的开头,也可以插入序列的结尾,或者插入序列的任何元素之间。 所得序列a′的得分是其中相邻元素的绝对差异之和(∑i1n…

实验跟踪

管理和跟踪机器学习实验。 Intuition 到目前为止,一直在训练和评估不同的基线,但还没有真正跟踪这些实验。将解决这个问题,但定义一个适当的实验跟踪过程,将用于所有未来的实验(包括超参数优化)。实验跟踪是…