大数据介绍
1.1 大数据前提
随着物联网、移动互联网平台的飞速发展,人类正式迈入数据爆炸式增长的时代,海量数据源源不断产生,传统单机存储、单机运算模式已无法承载海量数据的处理需求,大数据技术应运而生。
传统数据处理框架
架构化数据:数据库,数据仓库
非结构化数据、半结构化数据:nosql数据库,并发程序
大数据背景下传统处理框架
TB、PB级数据存储困难
结构化数据:单机处理速度慢
非结构化数据、半结构化数据:涉及数据移动,网络开销,速度慢,同时无法计算
有没有存在一种方案,可以存储并处理海量结构化,非结构化数据、半结构化数据;同时处理海量数据的速度很快,且扩展性好。
那就是大数据技术
大数据定义:大数据是指超出传统数据库工具收集、存储、管理和分析能力的数据集。与此同时,及时采集、存储、聚合、管理数据,以及对数据深度分析的新技术和新能力,正在快速增长,就像预测计算芯片增长速度的摩尔定律一样。
大数据技术:大数据技术是专门是为了满足数据达到海量规模以后,对数据进行存储,分析的技术 。
如果数据中小规模,不建议使用大数据技术。传统数据处理架构就能处理,盲目上大数据技术,可能效率还变低了。数据达到一定规模,原本数据处理技术达不到要求,才上大数据,才能发挥价值,最好先评估业务需求。
1.1.1 主流数据来源
日常业务场景中,大数据的来源十分广泛,主流数据类型如下:
- 用户行为数据:互联网用户的网页浏览轨迹、点击行为、页面停留时长、APP 操作记录、滑动 / 点击交互数据等;
- 电商业务数据:用户订单信息、购物车数据、商品收藏、支付记录、退换货数据、评价数据等;
- 历史全量数据:平台长期沉淀的历史订单、历史日志、历史用户档案等存量数据;
- 网络爬虫数据:通过技术手段合法抓取的第三方公开网页、资讯、行业信息等外部数据;
- 第三方合作数据:运营商、合作企业、第三方服务机构提供的合规共享数据;
- 物联网传感数据:智能设备、监控摄像头、工业传感器、智能终端等实时采集的设备运行、环境监测数据。
以上各类数据日积月累,数据体量可达TB、PB 甚至 EB 级别,单台服务器在存储容量、运算速度上均存在巨大瓶颈,这也是大数据技术诞生的核心背景。
1.1.2 核心解决方案:分布式(并行)架构
为解决海量数据的存储与运算难题,大数据体系普遍采用分布式(并行)架构,核心思想是化整为零、协同工作,将任务拆分到多台机器(节点)协同完成,彻底摆脱单机性能限制。
分布式数据存储 不再将所有数据存放在单台服务器,而是把海量数据拆分后,分散存储在集群内不同的机器(节点) 中,由统一的分布式文件系统进行全局管理,充分利用集群整体存储能力。
分布式并行运算 针对复杂的数据计算任务,系统会自动对任务进行拆分划分,将拆分后的子任务分发到集群内多个节点上并行执行。多台机器同时运算,大幅提升海量数据的计算效率。
简单来说,分布式架构就是 “多机存数据、多机算任务”,是 Hadoop、Spark 等所有大数据框架的底层基础。
1.2 大数据核心定义与核心特征
1.2.1 大数据基本定义
大数据是指规模巨大、类型复杂、产生速度极快,超出传统数据库、单机服务器存储、管理和分析能力的数据集合;而大数据技术,是一整套围绕海量数据完成采集、存储、清洗、计算、分析、挖掘的技术体系,最终目标是从海量数据中挖掘潜在价值,为业务决策、产品优化、智能分析提供支撑。
1.2.2 大数据经典 4V 核心特征
业界普遍采用4V 模型概括大数据的核心特点,这也是区分大数据与传统小数据的关键依据:
海量性 / 数据量大(Volume) 数据体量呈现爆炸式增长,计量单位从传统 MB、GB,升级为 TB(1TB=1024GB)、PB(1PB=1024TB)、EB(1EB=1024PB)。大型互联网平台单日即可产生数十 TB 甚至上百 PB 数据,传统单机硬盘、关系型数据库完全无法承载。
高速性 / 流转快(Velocity) 数据产生、传输、处理的速度极快。短视频、直播、电商交易、物联网设备均会实时产生数据流,要求大数据系统具备实时 / 近实时处理能力,避免数据堆积、失效,典型场景如电商秒杀实时订单处理、交通监控实时数据识别。
多样性 / 类型多(Variety) 数据格式不再局限于传统结构化表格,分为三大类:
结构化数据:格式固定,如订单表、用户表、数据库表单(MySQL 存储);
半结构化数据:格式灵活,如 XML、JSON、日志文件、网页源码;
非结构化数据:无固定格式,占大数据总量 80% 以上,如图片、音频、视频、文本、语音等。
低价值密度、高潜在价值(Value) 海量数据中,有效价值信息占比极低,如同 “大海捞针”。例如全天监控视频中,有效异常画面可能仅有几分钟。大数据技术的核心工作,就是从海量低价值密度数据中提纯、挖掘高价值信息,实现数据变现与业务赋能。
补充:部分场景会延伸出第 5个V——Veracity(真实性),要求数据真实、可靠、低异常,数据质量是大数据分析结果可信的前提。
1.2.3 大数据与传统数据的核心区别
| 对比维度 | 传统数据 | 大数据 |
|---|---|---|
| 数据体量 | GB 级别为主,单机可承载 | TB/PB/EB 级别,依赖集群 |
| 数据类型 | 以结构化数据为主 | 结构化、半结构化、非结构化并存 |
| 处理方式 | 单机串行计算 | 分布式并行计算 |
| 实时性 | 离线批量处理为主 | 支持离线批量 + 实时流式处理 |
| 应用目标 | 日常业务增删改查 | 数据分析、数据挖掘、智能决策 |
1.3 大数据主流应用场景
从处理层面

分离线处理和实时处理,这放到传统数据处理也是一样的,离线和实时的区分是在于处理的数据,是有界数据还是无界数据。离线数据处理最适合批量处理,数据有界,也可以理解数据处理断网。实时数据处理,数据无界,数据产生里面进入流处理,结果是实时的展现
从业务层面
如今大数据已全面渗透各行各业,结合业务实现落地应用,典型场景如下:
互联网 / 电商行业 用户画像构建、精准商品推荐、用户行为分析、流量统计、订单风控、营销活动效果分析,依托大数据分析用户偏好,提升转化率。
物联网 / 工业领域 工业设备状态监控、故障预警、生产线数据分析、智能物联网设备数据采集,实现工业智能化、设备预测性维护。
金融行业 交易风控、反欺诈分析、用户征信评估、理财产品智能推荐、资金流向监控,降低金融风险。
交通 / 智慧城市 路况实时分析、车流统计、智能调度、公共安防视频分析、城市运行状态监测。
传媒 / 娱乐行业 短视频、直播内容推荐、热点舆情分析、用户喜好统计、内容运营优化。
政务 / 医疗行业 政务数据统计、民生分析;医疗病历大数据分析、疾病趋势预测、辅助诊疗。
1.4 大数据技术生态总览
完整的大数据处理流程分为数据采集→数据存储→数据计算→数据查询分析→数据可视化五大环节,对应一整套技术生态。本课程核心聚焦Hadoop 生态圈(大数据底层基础框架),配套 Hive 等数据仓库工具,各组件分工明确:
数据采集层:Flume、Kafka、Sqoop 等,负责采集日志、数据库数据、流式数据;
数据存储层:HDFS(Hadoop 分布式文件系统),集群化存储海量数据;
资源调度层:YARN,统一管理集群硬件资源,分配运算任务、监控任务运行;
计算引擎层:MapReduce(离线计算)、Spark(离线 + 实时计算)、Flink(实时流计算);
数据仓库层:Hive,基于 Hadoop 实现类 SQL 的数据统计分析,降低大数据开发门槛;
辅助组件:Zookeeper(集群协调)、Commons(底层工具支持)等。

大数据的生态架构,大数据有很多不同功能产品,各自功能是什么怎么相互配合,来完成一整套的数据存储 分析计算。
按照数据处理流程,从下往上,
结构化数据 可以通过 jdbc方式 sqoop t+1 的方式 ,时效性低进行抽取 到大数据存储平台 主要是hdfs
日志 json半结构化数据 图片视频非结构化数据 通过flume 实时监控抽取
一般来说 从架构上来说 先推送到 消息队列进行缓冲 kafka,起到抗压的作用,实时产生的数据要先经过大数据平台的处理,结果存到hdfs中,这样才能发挥实时数据的价值
结构化数据 要实时处理,有两种技术手段 一种是OGG 一种是CDC 它们可以监控数据库中结构化数据,监控数据库日志,数据库实时监控,会把变动的数据抽到kafka中,再交给大数据 平台进行处理,
这样 结构化数据 非结构化数据 都可以满足 实时 和 t+1 的抽取需要
数据最终存储到hdfs 文件系统中,但文件系统不太好用,生产中没有把数据直接存到文件系统中的,一般是把数据保存到数据库。hbase就是一个分布式的nosql数据库,是基于hdfs建立的,虽然数据最终是保存在hdfs中,但它上层搭建一个数据库,这样用起来易用性更好。这样抽取的数据可以保存到hdfs中也可以保存到hbase中,看具体应用场景。
数据存储后,想对数据做一些运算,运算可以使用mapreduce 速度慢一些,也可以是spark 速度快一些。不管是那种计算框架,计算任务都要移动到数据节点进行运算,怎么把计算任务分发到数据节点呢,就需要中间资源管理层。
最常用的就是分布式资源调度框架yarn,yarn和数据存储框架hdfs是部署在一起的。如果hdfs有三个节点,那么yarn也装在这三个节点,而且管理这三个节点的计算资源(cpu,内存,环境变量)。mapreduce或spark任务移动到数据节点进行运算,这时候yarn就可以直接在数据节点上分配计算任务一些计算资源,顺利完成数据运算。运算完成后,yarn又把资源进行一个回收。所以大数据的移动计算的实现是通过资源管理层来实现的。
虽然计算有了mapreduce或spark,但是还是不够好用,缺乏易用性。我们在开发的时候,针对结构化数据一般我们习惯使用sql,非结构化数据习惯使用一些api。但是数据抽取到大数据平台以后,这些sql和api都不能用了,只能使用提供的mapreduce或spark去进行一个数据处理,对于我们来说就很难用,而且之前业务系统使用sql api都要进行迁移,迁移工作量很大
大数据提供了很多易用框架,比如hive 把sql转为底层的mapreduce或spark,之前使用sql,保存到大数据平台依旧能用sql,malhot pig停止维护了。这些都是为了提供易用性的,它们转换计算任务的不同。如果默认mapreduce就属于hadoop生态圈。spark 也有他的生态,sparksql把sql转为spark任务,mllib是机器学习的,GraphX是图计算的,spark Streaming 是实时流计算的,结果一般存储到hbase中,如果存储hdfs可能会有好多小文件,hdfs 大量小文件会把管理节点的内存占满,导致后续计算效率下降,hbase解决了小文件问题。
一般很少使用mapreduce或spark进行编程。都是使用上层易用性高的组件来进行相关的开发。
还有独立的elasticsearch 做搜索检索的 数据存储到elasticsearch 可以进行模糊查询精确匹配,它有独立的通用计算 资源管理 数据存储 不依赖hadoop 或spark
zookeeper 对大数据的各个产品是非常重要的,hdfs hbase都要依赖zookeeper。它是一个分布式协调服务,大数据的产品都是分布式的,运行在多个节点上,比如每个大数据组件突然新增节点,zookeeper会识别出来,通知之前的3个节点,说我们的集群规模变为4;突然节点挂了,zookeeper会通知其他3个节点。比如集群有多个管理节点,集群由谁来进行管理,谁来做备份,zookeeper进行选举,想要在分布式环境进行协调都可以依赖zookeeper,如kafka必须依赖zookeeper
任务调度工具oozie 和 azkaban 用来调度我们的计算任务的,如果大数据集群任务有先后顺序,可以又azkaban进行一个限定,定时启动任务
1.5 学习大数据的核心目标与路线
结合本课程内容,入门大数据的学习逻辑由底层到上层依次推进:
夯实分布式基础:理解分布式存储、分布式并行计算的核心思想,明白大数据为何不能使用单机架构;
精通 Hadoop 核心组件:掌握 HDFS(存储)、MapReduce(计算)、YARN(调度)三大核心,这是整个大数据生态的基石;
掌握数据仓库工具 Hive:学会使用 HQL(类 SQL 语言)分析海量结构化数据,完成离线统计、报表开发;
拓展周边生态:逐步学习数据采集、实时计算、数据治理、数据优化等进阶内容,适配企业实战需求。
大数据技术的核心价值,并非单纯 “存储海量数据”,而是让海量数据产生价值。而 Hadoop 生态圈,正是目前企业中使用最广泛、最稳定的大数据基础架构,也是大数据开发、运维、分析岗位的必备技能。