本复习文稿围绕“大数据原理→技术架构→核心技术→行业应用→实践要点”逻辑展开,涵盖课程核心考点、易混点及应用场景,助力高效备考。
第一部分 大数据基础概念与核心特征
1.1 大数据的定义
大数据是指无法在传统软件工具规定时间内实现捕捉、管理和处理的数据集合,是需要新处理模式才能具备更强决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。核心在于“数据价值的挖掘”,而非单纯数据规模。
1.2 核心特征(4V+1V)
这是高频考点,需理解每个特征的内涵及对应技术挑战:
- Volume(海量性):数据规模庞大,从GB级跃升至PB级甚至EB级。例:淘宝双11单日数据量超100PB。挑战:存储设备的容量扩展与成本控制。
- Velocity(高速性):数据产生和处理速度快,需实时或近实时响应。例:金融交易、实时路况数据每秒产生数万条。挑战:流处理技术的低延迟保障。
- Variety(多样性):数据类型多样,分为结构化(数据库表)、半结构化(JSON、XML)、非结构化(图片、视频、文本)。例:社交媒体数据包含文字、图片、语音等。挑战:数据集成与统一解析。
- Veracity(真实性):数据质量参差不齐,存在噪声、缺失、冗余。例:用户填写的问卷可能有虚假信息。挑战:数据清洗与质量评估。
- Value(低价值密度):海量数据中有价值信息占比低,需精准挖掘。例:监控视频中仅几秒异常画面有分析价值。挑战:高效的特征提取与价值转化算法。
1.3 大数据与传统数据的区别
|
维度 |
传统数据 |
大数据 |
|
数据规模 |
GB级以下 |
PB级及以上 |
|
处理模式 |
批量处理,离线为主 |
批量+流处理,实时性要求高 |
|
存储方式 |
关系型数据库(行存储) |
分布式存储(列存储、键值存储等) |
|
核心目标 |
数据记录与查询 |
数据洞察与决策支持 |
第二部分 大数据技术架构(Hadoop生态为核心)
大数据技术架构遵循“数据采集→存储→计算→分析→可视化”全流程,核心是分布式架构,解决单机处理能力不足的问题。
2.1 架构分层(5层模型)
- 数据采集层:负责将分散的数据源导入系统,核心工具:
-
- Flume:日志采集工具,适用于海量日志的实时采集(如服务器日志),基于流式架构,支持多源接入。
- Sqoop:用于关系型数据库与Hadoop之间的数据同步(批量导入/导出),本质是将数据转化为MapReduce任务处理。
- Kafka:分布式消息队列,高吞吐、高可靠,用于缓冲实时数据(如电商交易数据),解耦数据生产与消费。
- 数据存储层:核心是分布式文件系统和NoSQL数据库,解决海量数据存储问题:
-
- HDFS(Hadoop分布式文件系统):Hadoop核心组件,适用于大文件存储,采用“主从架构”:
-
- NameNode(主节点):管理文件元数据(文件名、路径、块信息),不存储实际数据,是系统“大脑”。
- DataNode(从节点):存储实际数据块(默认块大小128MB),通过副本机制(默认3个副本)保证可靠性。
- 特点:适合一次写入、多次读取,不支持随机修改,容错性强。
- NoSQL数据库:应对非结构化/半结构化数据,与传统关系型数据库(SQL)的区别是“无固定schema、不支持复杂JOIN”,常见类型:
-
- 键值存储(Redis):适用于缓存、计数器(如电商库存计数),查询速度极快。
- 文档存储(MongoDB):存储JSON/BSON格式文档,适用于博客、电商商品详情等。
- 列族存储(HBase):基于HDFS,适用于实时随机读写(如金融交易记录),按列存储提升查询效率。
- 数据计算层:大数据处理的核心,分为批量计算和实时计算:
-
- 批量计算:MapReduce(Hadoop核心计算框架)
-
- 核心思想:“分而治之”,将任务拆分为Map阶段和Reduce阶段,并行处理数据。
- 流程:Input→Split→Map→Shuffle(排序、分组)→Reduce→Output。
- 缺点:延迟高,适合离线批量处理(如每日用户行为统计)。
- 实时计算:Spark Streaming、Flink
-
- Spark:基于内存计算,将数据抽象为RDD(弹性分布式数据集),支持迭代计算,速度比MapReduce快10-100倍。
- Spark Streaming:将实时数据切分为微批处理(如1秒一批),平衡实时性和吞吐量。
- Flink:真正的流式计算框架,基于事件驱动,支持低延迟(毫秒级)和 Exactly-Once 语义(数据不重复不丢失),适用于金融风控等场景。
- 数据分析层:对计算后的数据进行挖掘和分析,核心工具:
-
- Hive:基于Hadoop的数据仓库工具,将SQL语句转化为MapReduce/Spark任务,适合离线数据分析(如用户消费行为分析)。
- Impala:实时SQL查询工具,直接访问HDFS和HBase,不依赖MapReduce,查询速度快,适用于交互式分析。
- 数据挖掘算法:聚类(K-Means)、分类(决策树、SVM)、关联规则(Apriori)、推荐算法(协同过滤)等,需结合Python(Pandas、Scikit-learn)或Spark MLlib实现。
- 可视化层:将分析结果以直观形式展示,工具:ECharts、Tableau、Power BI,核心是“数据驱动决策”,例:企业营收Dashboard、实时监控大屏。
2.2 核心组件关系梳理
Flume/Kafka→采集数据→存入HDFS/HBase→通过MapReduce/Spark/Flink计算→Hive/Impala分析→ECharts可视化,形成完整数据处理链路。
第三部分 核心技术原理深度解析
3.1 MapReduce工作原理(必考)
- Job提交阶段:客户端将Job提交给ResourceManager,ResourceManager分配第一个TaskTracker(NodeManager)启动ApplicationMaster。
- 任务分配阶段:ApplicationMaster向ResourceManager申请资源,获取资源后分配给NodeManager,启动Map/Reduce任务。
- Map阶段:读取Split数据,按自定义逻辑处理(如词频统计中拆分单词),输出<key,value>对,写入本地磁盘(而非HDFS)。
- Shuffle阶段:核心环节,分为Sort和Combine:
-
- Map端:将输出数据按key排序,合并相同key的value(Combine操作,减少数据传输量)。
- Reduce端:拉取Map端数据,再次排序后分组,将同一key的value交给Reduce处理。
- Reduce阶段:对同一key的value集合进行计算(如求和),输出结果至HDFS。
重点:Shuffle阶段是MapReduce的性能瓶颈,优化手段包括:增大缓冲区大小、压缩数据、合理设置Reduce任务数量。
3.2 Spark核心原理
3.2.1 RDD(弹性分布式数据集)
Spark的核心抽象,是不可变的、可分区的、支持并行操作的数据集合,具有以下特性:
- 弹性:支持数据容错(基于Lineage血缘关系,数据丢失后可重新计算)和动态资源调整。
- 分布式:数据存储在多个节点上,支持并行处理。
- 不可变:RDD创建后不能修改,只能通过转换操作生成新RDD。
RDD操作分为两类,是高频考点:
|
操作类型 |
特点 |
常见操作 |
|
转换操作(Transformation) |
惰性执行,仅记录依赖关系,不立即计算 |
map、filter、flatMap、join、groupByKey |
|
行动操作(Action) |
触发实际计算,返回结果或写入外部系统 |
count、collect、saveAsTextFile、reduce |
3.2.2 Spark运行架构
采用“主从架构”:
- Driver(主节点):负责创建SparkContext、解析任务、生成DAG(有向无环图)、分配任务给Executor。
- Cluster Manager(集群管理器):负责资源管理,支持Standalone、YARN、Mesos三种模式,常用YARN模式(与Hadoop兼容)。
- Executor(从节点):运行在Worker节点上,负责执行具体任务(计算RDD),并将结果返回给Driver,同时缓存数据。
3.3 HBase核心原理
基于HDFS的分布式列存储数据库,适合实时读写,核心结构:
- 表(Table):由行和列族组成,无固定列数。
- 行键(RowKey):唯一标识一行数据,按字典序排序,是查询的核心(通过RowKey查询效率最高)。
- 列族(Column Family):一组相关列的集合,表创建时需定义,数据按列族存储,例:user表的info(姓名、年龄)和address(省、市)列族。
- 时间戳(Timestamp):支持多版本数据,默认保留最新版本。
架构:HMaster(主节点,管理表结构和Region分配)+ HRegionServer(从节点,存储Region数据,处理读写请求)。
第四部分 大数据典型应用场景
应用场景需结合技术架构,明确“数据来源→核心技术→应用价值”,是案例分析题的重点。
4.1 电商行业:精准推荐
- 数据来源:用户浏览记录、购买历史、收藏行为、评价数据(结构化+非结构化)。
- 核心技术:
-
- 数据采集:Flume采集日志,Kafka缓冲交易数据。
- 存储:HDFS存历史数据,Redis存实时会话数据。
- 计算:Spark MLlib实现协同过滤算法(基于用户相似性或物品相似性)。
- 可视化:Tableau展示推荐效果(点击率、转化率)。
- 应用价值:提升商品点击率,增加用户粘性,例:淘宝“猜你喜欢”、京东“为你推荐”。
4.2 金融行业:风险控制
- 数据来源:用户征信数据、交易记录、账户登录日志、设备信息。
- 核心技术:
-
- 实时计算:Flink处理实时交易数据,毫秒级判断风险。
- 存储:HBase存交易明细,支持随机查询。
- 算法:决策树、逻辑回归构建风控模型,识别异常交易(如异地登录、大额转账)。
- 应用价值:防范信用卡盗刷、欺诈交易,降低金融风险,例:支付宝风控系统。
4.3 交通行业:智能调度
- 数据来源:交通摄像头、GPS定位数据、路况传感器、公交刷卡数据。
- 核心技术:
-
- 数据采集:Sqoop同步公交公司数据,Kafka接收GPS实时数据。
- 计算:Spark Streaming实时分析路况拥堵情况。
- 可视化:ECharts构建实时路况大屏,支持调度决策。
- 应用价值:优化公交发车频率,缓解交通拥堵,例:城市智能交通调度系统。
4.4 医疗行业:疾病预测
- 数据来源:电子病历、体检报告、基因数据、医疗设备监测数据。
- 核心技术:
-
- 存储:MongoDB存非结构化病历数据,HDFS存海量基因数据。
- 算法:机器学习算法构建疾病预测模型(如肺癌风险预测)。
- 应用价值:实现早发现、早治疗,提升医疗服务效率。
第五部分 实践操作与常见问题
5.1 核心工具操作要点
- HDFS常用命令:
-
- 创建目录:hadoop fs -mkdir /input
- 上传文件:hadoop fs -put localfile /input
- 查看文件:hadoop fs -cat /input/file
- 删除文件:hadoop fs -rm /input/file
- Spark Shell操作:
-
- 启动:spark-shell
- 创建RDD:val rdd = sc.textFile("hdfs:///input/file")
- 词频统计:rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect()
- Hive操作:
-
- 创建表:create table user(id int, name string) row format delimited fields terminated by '\t';
- 加载数据:load data local inpath '/localfile' into table user;
- 查询:select name from user where id=1;
5.2 常见问题与解决方案
|
常见问题 |
原因分析 |
解决方案 |
|
MapReduce任务运行缓慢 |
Shuffle阶段数据传输量大,Reduce数量不合理 |
1. 压缩Map输出数据;2. 增大Shuffle缓冲区;3. 合理设置Reduce数量(通常为CPU核心数2-3倍) |
|
Spark内存溢出 |
RDD缓存过多,任务数据量超过内存限制 |
1. 减少不必要的cache操作;2. 增大executor内存;3. 对RDD进行分区优化 |
|
HDFS数据读写延迟高 |
DataNode节点负载不均,副本数量过多 |
1. 平衡DataNode数据分布;2. 调整副本数量(非核心数据设为2个) |
第六部分 期末备考重点总结
- 基础概念:4V特征内涵及对应技术挑战,大数据与传统数据的区别。
- 架构与组件:Hadoop生态各组件的作用及协同关系,重点是HDFS、MapReduce、Spark、HBase。
- 核心原理:MapReduce的Shuffle阶段,Spark的RDD操作(转换vs行动),HBase的RowKey设计。
- 应用场景:结合具体行业,梳理“数据-技术-价值”链路,能分析案例并提出技术方案。
- 实践操作:掌握HDFS、Spark、Hive的常用命令,理解常见问题的排查思路。
6463

被折叠的 条评论
为什么被折叠?



