《大数据原理与应用》期末复习核心文稿

本复习文稿围绕“大数据原理→技术架构→核心技术→行业应用→实践要点”逻辑展开,涵盖课程核心考点、易混点及应用场景,助力高效备考。

第一部分 大数据基础概念与核心特征

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层模型)

  1. 数据采集层:负责将分散的数据源导入系统,核心工具:
  2.        
    1. Flume:日志采集工具,适用于海量日志的实时采集(如服务器日志),基于流式架构,支持多源接入。
    2. Sqoop:用于关系型数据库与Hadoop之间的数据同步(批量导入/导出),本质是将数据转化为MapReduce任务处理。
    3. Kafka:分布式消息队列,高吞吐、高可靠,用于缓冲实时数据(如电商交易数据),解耦数据生产与消费。
  3. 数据存储层:核心是分布式文件系统和NoSQL数据库,解决海量数据存储问题:
  4.        
    1. HDFS(Hadoop分布式文件系统):Hadoop核心组件,适用于大文件存储,采用“主从架构”:
    2.            
      • NameNode(主节点):管理文件元数据(文件名、路径、块信息),不存储实际数据,是系统“大脑”。
      • DataNode(从节点):存储实际数据块(默认块大小128MB),通过副本机制(默认3个副本)保证可靠性。
      • 特点:适合一次写入、多次读取,不支持随机修改,容错性强。
    3. NoSQL数据库:应对非结构化/半结构化数据,与传统关系型数据库(SQL)的区别是“无固定schema、不支持复杂JOIN”,常见类型:
    4.            
      • 键值存储(Redis):适用于缓存、计数器(如电商库存计数),查询速度极快。
      • 文档存储(MongoDB):存储JSON/BSON格式文档,适用于博客、电商商品详情等。
      • 列族存储(HBase):基于HDFS,适用于实时随机读写(如金融交易记录),按列存储提升查询效率。
  5. 数据计算层:大数据处理的核心,分为批量计算和实时计算:
  6.        
    1. 批量计算:MapReduce(Hadoop核心计算框架)
    2.            
      • 核心思想:“分而治之”,将任务拆分为Map阶段和Reduce阶段,并行处理数据。
      • 流程:Input→Split→Map→Shuffle(排序、分组)→Reduce→Output。
      • 缺点:延迟高,适合离线批量处理(如每日用户行为统计)。
    3. 实时计算:Spark Streaming、Flink
    4.            
      • Spark:基于内存计算,将数据抽象为RDD(弹性分布式数据集),支持迭代计算,速度比MapReduce快10-100倍。
      • Spark Streaming:将实时数据切分为微批处理(如1秒一批),平衡实时性和吞吐量。
      • Flink:真正的流式计算框架,基于事件驱动,支持低延迟(毫秒级)和 Exactly-Once 语义(数据不重复不丢失),适用于金融风控等场景。
  7. 数据分析层:对计算后的数据进行挖掘和分析,核心工具:
  8.        
    1. Hive:基于Hadoop的数据仓库工具,将SQL语句转化为MapReduce/Spark任务,适合离线数据分析(如用户消费行为分析)。
    2. Impala:实时SQL查询工具,直接访问HDFS和HBase,不依赖MapReduce,查询速度快,适用于交互式分析。
    3. 数据挖掘算法:聚类(K-Means)、分类(决策树、SVM)、关联规则(Apriori)、推荐算法(协同过滤)等,需结合Python(Pandas、Scikit-learn)或Spark MLlib实现。
  9. 可视化层:将分析结果以直观形式展示,工具:ECharts、Tableau、Power BI,核心是“数据驱动决策”,例:企业营收Dashboard、实时监控大屏。

2.2 核心组件关系梳理

Flume/Kafka→采集数据→存入HDFS/HBase→通过MapReduce/Spark/Flink计算→Hive/Impala分析→ECharts可视化,形成完整数据处理链路。

第三部分 核心技术原理深度解析

3.1 MapReduce工作原理(必考)

  1. Job提交阶段:客户端将Job提交给ResourceManager,ResourceManager分配第一个TaskTracker(NodeManager)启动ApplicationMaster。
  2. 任务分配阶段:ApplicationMaster向ResourceManager申请资源,获取资源后分配给NodeManager,启动Map/Reduce任务。
  3. Map阶段:读取Split数据,按自定义逻辑处理(如词频统计中拆分单词),输出<key,value>对,写入本地磁盘(而非HDFS)。
  4. Shuffle阶段:核心环节,分为Sort和Combine:
  5.        
    1. Map端:将输出数据按key排序,合并相同key的value(Combine操作,减少数据传输量)。
    2. Reduce端:拉取Map端数据,再次排序后分组,将同一key的value交给Reduce处理。
  6. 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个)

第六部分 期末备考重点总结

  1. 基础概念:4V特征内涵及对应技术挑战,大数据与传统数据的区别。
  2. 架构与组件:Hadoop生态各组件的作用及协同关系,重点是HDFS、MapReduce、Spark、HBase。
  3. 核心原理:MapReduce的Shuffle阶段,Spark的RDD操作(转换vs行动),HBase的RowKey设计。
  4. 应用场景:结合具体行业,梳理“数据-技术-价值”链路,能分析案例并提出技术方案。
  5. 实践操作:掌握HDFS、Spark、Hive的常用命令,理解常见问题的排查思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值