大数据技术期末冲刺指南:珠科版核心知识精要

作者:c4t2025.10.13 18:16浏览量:2

简介:本文为珠海科技学院大数据技术专业学生提供期末复习框架,涵盖HDFS、MapReduce、Spark等核心技术原理及实践要点,结合珠科课程特色解析高频考点与实战技巧。

一、大数据技术基础架构与核心组件

1.1 HDFS分布式文件系统

HDFS采用主从架构,由NameNode(元数据管理)和DataNode(数据存储)构成。复习需掌握:

  • 块存储机制:默认128MB/256MB块大小设计,兼顾存储效率与寻址开销。例如,存储1GB文件时,块大小128MB需8个块,减少NameNode内存压力。
  • 副本策略:默认3副本,按机架感知原则分布(如1个副本在本地机架,2个在其他机架),保障高可用性。可通过dfs.replication参数调整副本数。
  • 容错机制:DataNode心跳检测(默认3秒),超时10分钟则触发副本复制。需理解dfs.namenode.heartbeat.recheck-interval参数作用。

1.2 YARN资源管理

YARN通过ResourceManager(全局调度)和NodeManager(节点管理)实现资源分配,重点复习:

  • 资源申请流程:ApplicationMaster向ResourceManager申请Container,NodeManager启动Container执行任务。例如,Spark on YARN时,Driver作为AM申请Executor资源。
  • 资源隔离:通过Cgroups限制Container的CPU、内存使用,防止任务间资源争抢。需掌握yarn.nodemanager.resource.memory-mb等参数配置。
  • 调度策略:FIFO(先到先服务)、Capacity Scheduler(按队列分配)、Fair Scheduler(动态资源分配)。珠科实验中常使用Capacity Scheduler,需配置yarn.scheduler.capacity.root.queues

二、数据处理核心技术

2.1 MapReduce编程模型

MapReduce包含Map阶段(分散处理)和Reduce阶段(聚合处理),核心考点:

  • Shuffle机制:Map输出经Partition(分区)、Sort(排序)、Combine(本地聚合)、Spill(溢写)后,由Reduce拉取。例如,单词计数中,Map输出<key, value>对按key哈希分区。
  • Combiner优化:在Map端提前聚合,减少网络传输。如计算平均值时,Combiner可统计局部和与数量,Reduce再计算全局平均。
  • 代码示例
    1. // Map阶段:读取文本行,分割单词并输出<word, 1>
    2. public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
    3. private final static IntWritable one = new IntWritable(1);
    4. private Text word = new Text();
    5. public void map(LongWritable key, Text value, Context context) {
    6. String[] words = value.toString().split("\\s+");
    7. for (String w : words) {
    8. word.set(w);
    9. context.write(word, one);
    10. }
    11. }
    12. }

2.2 Spark内存计算框架

Spark通过RDD(弹性分布式数据集)实现内存计算,重点复习:

  • RDD特性:不可变性、分区性、血缘关系(Lineage)。例如,val rdd = sc.parallelize(1 to 100)创建包含100个元素的RDD。
  • 转换(Transformation)与行动(Action):转换延迟执行(如mapfilter),行动触发计算(如collectcount)。需区分filter(x => x%2==0)(转换)与reduce(_+_)(行动)。
  • 缓存策略MEMORY_ONLYMEMORY_AND_DISK等。大数据处理中,频繁使用的RDD应缓存(如rdd.cache()),避免重复计算。

三、数据存储与查询技术

3.1 HBase列式数据库

HBase基于HDFS存储,适合高吞吐、低延迟的随机读写,核心概念:

  • 表结构:由RowKey(主键)、Column Family(列族)、Timestamp(版本)构成。例如,用户表可设计info:nameinfo:age等列。
  • Region分区:表按RowKey范围划分为多个Region,由RegionServer管理。需理解Region Split机制,当数据量超过阈值(默认hbase.hregion.max.filesize)时自动分裂。
  • API操作
    1. // 插入数据
    2. Put put = new Put(Bytes.toBytes("row1"));
    3. put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("Alice"));
    4. table.put(put);

3.2 Hive数据仓库

Hive将SQL转换为MapReduce/Spark任务,重点复习:

  • 数据模型:数据库、表、分区(如按日期分区PARTITIONED BY (dt STRING))。需掌握外部表与内部表的区别(外部表删除时仅删除元数据)。
  • 优化技巧:使用PARTITION BY减少全表扫描,启用hive.exec.dynamic.partition动态分区,通过EXPLAIN查看执行计划。
  • UDF开发:自定义函数扩展Hive功能。例如,计算字符串长度的UDF:
    1. public class StringLengthUDF extends UDF {
    2. public int evaluate(String input) {
    3. return input == null ? 0 : input.length();
    4. }
    5. }

四、珠科特色考点与实战技巧

4.1 实验环境配置

珠科实验常使用Cloudera或Hortonworks发行版,需掌握:

  • 服务启动:通过start-dfs.shstart-yarn.sh启动集群,使用jps验证进程(NameNode、DataNode、ResourceManager等)。
  • 日志分析:通过/var/log/hadoop/目录下的日志定位问题,如hadoop-hdfs-namenode-*.log记录NameNode启动异常。

4.2 高频考点解析

  • HDFS读写流程:画图说明客户端如何与NameNode/DataNode交互完成文件读写。
  • Spark任务调优:通过spark-submit --executor-memory 2G调整Executor内存,避免OOM。
  • Hive性能优化:使用SET hive.auto.convert.join=true启用MapJoin优化小表JOIN。

五、复习建议与资源推荐

  1. 理论梳理:按“存储-计算-查询”主线整理笔记,结合教材案例加深理解。
  2. 代码实践:在本地搭建伪分布式环境(如使用Docker快速部署Hadoop),重现课堂实验。
  3. 真题模拟:分析近三年珠科期末试题,总结高频考点(如HDFS副本策略、Spark RDD操作)。
  4. 扩展阅读:推荐《Hadoop权威指南》《Spark快速大数据分析》作为参考。

通过系统复习上述内容,结合珠科课程特色与实践案例,可高效掌握大数据技术核心知识,顺利应对期末考试。