如何简单理解大数据

news/2024/5/4 20:42:50/文章来源:https://blog.csdn.net/aoshilang2249/article/details/128058130

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.luyixian.cn/news_show_226109.aspx

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

相关文章

windows安装VMware虚拟机(附带CentOS7部署)

软件下载 链接:https://pan.baidu.com/s/1Vw2Bilf9uf-EYR6_MR86aA?pwdd2qr 提取码:d2qr VMware安装 通你上述链接下载VMware安装包,没有特别选项,选安装位置无脑下一步安装,安装完成后会提示你输入激活码&#xf…

MyBatis association解决多对一和collection解决一对多的映射关系

多对一的映射关系 创建Emp和Dept类 1.处理多对一映射关系方式一:级联属性赋值 2.处理多对一映射关系方式二:association实现 association:处理多对一的映射关系 property:需要处理多对的映射关系的属性名 javaType:该属性的类型 3.处理多对一映射关…

【活动预告】金融大数据治理实践分享(12/03)

原创 DAMA数据管理 # 本期主题 金融大数据治理实践分享 数字化时代,数据的价值受到越来越多的关注,有人将其比作黄金,也有人将其比作石油,成为组织中的最重要资产之一。针对数据这种有特殊属性的资产,也存在着采集…

26岁月薪从7k到17K,这一切都要从那年失业讲起...

女生,目前在成都做了快4年的测试 先来说说我自己是怎么入行的以及我学到的一些经验分享,希望能帮助到更多的朋友们 我大学学的并不是计算机相关专业,学的市场营销,毕业后大部分同学都去做销售或者商务BD了,奈何自己性…

[CVPR2022] Cross-Model Pseudo-Labeling for Semi-Supervised Action Recognition

Cross-Model Pseudo-Labeling for Semi-Supervised Action Recognition 要点: 1、半监督动作识别,使用伪标记分配未标记数据,然后在训练中用作附加的监督 2、最近研究:伪标签通过在标记数据上训练模型获取,然后使用来…

单源广度优先搜索 (leetcode经典例题 C++实现)

文章目录01矩阵地图分析腐烂的橘子深度优先搜索与广度优先搜索前情回顾: 深度搜索dfs与广度搜索bfs算法总结(c 例题) 本节是广度优先搜索的进阶: 01矩阵 传送门: https://leetcode.cn/problems/01-matrix/?envType…

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

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

XML的创建和读取

rapidxml是一个快速的xml库,由C模板实现的高效率xml解析库,同时也是boost库的property_tree的内置解析库。 当使用rapidxml时,只需要把rapidxml.hpp 、 rapidxml_print.hpp 和 rapidxml_utils.hpp 三个文件拷贝到你的工程目录下,就…

Redis持久化策略AOF、RDB详解及源码分析

写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、Redis为什么要持久化 Redis 是一个内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效…

Gof23-创建型-工厂-单例-抽象工厂-建造-原型以及UML的绘制

创建型的设计模式工厂模式单例模式抽象工厂建造者模式原型模式UML图形的绘制工厂模式 工厂模式 Factory Pattern 适用的场景:统一的接口作为统一的零件,实现类作为零件的组合,将实例产品类的生产交给工厂,用户只需要面对工程提取…

Java_接口

目录 1.接口的语法规则 2.接口使用 3.接口特性 4.实现多个接口 1)下面通过类来表示一组动物; 2)另外再提供一组接口, 分别表示 "会跑的", "会飞的", "会游泳的"; 3)接下来我们创建…

十九种卷积

参考文章:一文看尽深度学习中的20种卷积(附源码整理和论文解读) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/381839221 一、原始卷积(Vanilla Convolution) CNNs中的卷积,也称为滤波器,是由一组具有固定窗口大小且带可学习参数(learnable paramerters)的卷积核所组…

Unity 如何实现框选游戏战斗单位

文章目录🍔 Preface✨ 如何在屏幕坐标系内绘制框选框🎉 根据框选范围定位其在世界坐标系中对应的区域🥇 在该区域内进行物理检测🍔 Preface 本文简单介绍如何实现即时战略游戏中框选战斗单位的功能,如图所示&#xff…

【外卖项目实战开发二】

文章目录1、完善登录功能问题分析代码实现2、新增员工需求分析数据模型代码开发3、员工信息分页查询需求分析代码开发4、启用/禁用员工账号需求分析代码开发代码修复5、编辑员工信息需求分析代码开发1、完善登录功能 问题分析 前面我们已经完成了后台系统的员工登录功能开发&…

基于JavaWeb的婚恋交友网站设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

大数据:HDFS的Shell常用命令操作

文章目录一 HDFS的Shell介绍二 HDFS常用命令操作01 创建目录(1)创建单层目录(3)创建多层目录02 查看目录03 上传本地文件到HDFS04 查看文件内容05 下载HDFS文件到本地06 删除HDFS文件07 删除HDFS目录08 移动目录或文件09 文件合并…

第九章 堆排序与TOPK问题

第九章:堆排序与TOPK问题一、堆排序:1、思路分析:(1)建堆(2)排序2、堆排序模板二、TOPK问题:1、什么是TOPK问题?2、解决方法一、堆排序: 假设我们实现一个小…

26k Star, 理解Git太轻松了。。。

程序员宝藏库:gitee.com/sharetech_lee/CS-Books-Store Git是目前使用比较广泛一款版本控制工具,从事开发工作,很难绕开Git。 因此,关于如何快速学习Git使用一直都是一个经久不衰的话题。 前不久我在另外一篇文章中曾提到Git对初…

树莓派上搭建SVN服务器

目录 一、服务端安装步骤 1.安装svn 2.创建目录 3.创建版本仓库 4.修改配置(authz,passwd,svnserve.conf) 5.启动服务 二、tortoisSVN客户端安装 三、结束 一、服务端安装步骤 1.安装svn sudo apt-get install subversion 2.创建目录 sudo m…

用Python蹭别人家图片接口,做一个【免费图床】吧

打开本文,相信你确实需要一个免费且稳定的图床,这篇博客就让你实现。 文章目录⛳️ 谁家的图床⛳️ 实战编码⛳️ 第一轮编码⛳️ 第二轮编码⛳️ 第三轮编码⛳️ 第四轮编码⛳️ 谁家的图床 这次咱们用新浪微博来实现【免费图床应用】,通过…