简介:本文为珠海科技学院大数据技术专业学生提供期末复习框架,涵盖HDFS、MapReduce、Spark等核心技术原理及实践要点,结合珠科课程特色解析高频考点与实战技巧。
HDFS采用主从架构,由NameNode(元数据管理)和DataNode(数据存储)构成。复习需掌握:
dfs.replication参数调整副本数。dfs.namenode.heartbeat.recheck-interval参数作用。YARN通过ResourceManager(全局调度)和NodeManager(节点管理)实现资源分配,重点复习:
yarn.nodemanager.resource.memory-mb等参数配置。yarn.scheduler.capacity.root.queues。MapReduce包含Map阶段(分散处理)和Reduce阶段(聚合处理),核心考点:
<key, value>对按key哈希分区。
// Map阶段:读取文本行,分割单词并输出<word, 1>public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(LongWritable key, Text value, Context context) {String[] words = value.toString().split("\\s+");for (String w : words) {word.set(w);context.write(word, one);}}}
Spark通过RDD(弹性分布式数据集)实现内存计算,重点复习:
val rdd = sc.parallelize(1 to 100)创建包含100个元素的RDD。map、filter),行动触发计算(如collect、count)。需区分filter(x => x%2==0)(转换)与reduce(_+_)(行动)。MEMORY_ONLY、MEMORY_AND_DISK等。大数据处理中,频繁使用的RDD应缓存(如rdd.cache()),避免重复计算。HBase基于HDFS存储,适合高吞吐、低延迟的随机读写,核心概念:
info:name、info:age等列。hbase.hregion.max.filesize)时自动分裂。
// 插入数据Put put = new Put(Bytes.toBytes("row1"));put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("Alice"));table.put(put);
Hive将SQL转换为MapReduce/Spark任务,重点复习:
PARTITIONED BY (dt STRING))。需掌握外部表与内部表的区别(外部表删除时仅删除元数据)。PARTITION BY减少全表扫描,启用hive.exec.dynamic.partition动态分区,通过EXPLAIN查看执行计划。
public class StringLengthUDF extends UDF {public int evaluate(String input) {return input == null ? 0 : input.length();}}
珠科实验常使用Cloudera或Hortonworks发行版,需掌握:
start-dfs.sh、start-yarn.sh启动集群,使用jps验证进程(NameNode、DataNode、ResourceManager等)。/var/log/hadoop/目录下的日志定位问题,如hadoop-hdfs-namenode-*.log记录NameNode启动异常。spark-submit --executor-memory 2G调整Executor内存,避免OOM。SET hive.auto.convert.join=true启用MapJoin优化小表JOIN。通过系统复习上述内容,结合珠科课程特色与实践案例,可高效掌握大数据技术核心知识,顺利应对期末考试。