无填空
有多选
环境配置不考写java代码
| 题型 | 数量 | 总分 |
|---|---|---|
| 单选 | 20 | 20 |
| 多选 | 10 | 20 |
| 判断 | 10 | 10 |
| 简答 | 6 | 30 |
| 综合 | 实验中 | 10 |
| 其他 | 10 |


简答题:
词频统计MapReduce过程
- WordCount的用户程序(MapReduce编写)被分发部署到集群的多台机器上,其中一台机器作为Master,负责协调调度作业的执行,其余机器作为Worker,可以执行Map任务或Reduce任务。
- 系统分配一部分worker执行Map任务,一部分执行Reduce任务。MapReduce将输入文件切分成M个分片,Master将M个分片分给N个Worker来处理。
- 执行Map任务的Worker读取输入数据,执行Map操作,输出一系列
形式的中间结果,并将其保存在内存的缓冲区中。 - 缓存区内的中间结果会被定期刷写到本地磁盘上,并被划分为R个分区,Master会记录这个R个分区在磁盘上的存储位置,并通知执行Reduce任务Worker前来取走属于自己的数据。
- 执行Reduce任务Worker收到Master通知后,会前来领走数据,一个执行Reduce任务Worker可能会从多个Map机器上领取数据,当所有数据都取回后,会对其按键值对进行排序,使得有相同key的键值对聚集在一起,然后执行Reduce操作。
- 执行Reduce任务Worker遍历中间数据,对每一个唯一的key执行Reduce函数,结果写入到输出文件中,执行完毕后,唤醒用户程序,返回结果。
SecondaryNameNode的作用和工作原理
作用:
- 可以完成EditLog和FsImage的合并操作,减小了EditLog大小,缩短名称节点重启时间
- 作为名称节点的检查点,保存名称节点中的元数据信息
工作原理:
每隔一段时间,第二名称节点会和名称节点通信,请求停止使用EditLog,名称节点会暂停使用,将新到达的写操作添加到EditLog.new,第二名称节点通过HTTP GET将原有的EditLog和FsImage拉回本地,在内存中逐条执行EditLog操作,是FsImage保持最新,合并结束后会将合并后最新的FsImage通过POST发回名称节点,名称节点会将新的EditLog替换原有EditLog,新的FsImage替换原有的FsImage。
HBase四维坐标和三级寻址
四维坐标:HBase采用行键、列族、列限定符、时间戳来确定一个单元格。
三级寻址:
客户端首先访问ZooKeeper,其中中保存了-ROOT-表的Region信息,接着访问-ROOT-表,其中记录了.META.表的Region信息,接着访问.META.表,其中记录了所有用户数据表的Region位置信息。
YARN的组成架构和处理流程
组成架构:
YARN承担了原有JobTracker的资源管理调度功能,其中ResourceManager负责资源管理;ApplicationMaster负责作业调度和监控,NodeManager负责单个节点的资源管理。
ResourceManager又包括ApplicationManager和Scheduler。
处理流程:
- client向YARN提交应用程序,包括ApplicationMaster程序和启动命令。
- 由ResourceManager接受客户端请求,分配容器并与对应的NodeManager通信,要求在容器中启动ApplicationMaster
- ApplicationMaster向ResourceManager注册
- ApplicationMaster接受客户端的资源请求,向ResourceManager协调获取资源,并二次分发给内部的应用程序,并要求NodeManager启动任务。
- 各个任务通过RPC协议向ApplicationMaster汇报进度,以便在失败时可以重启
- 当应用程序结束后,ApplicationMaster向ResourceManager申请销毁容器
Spark组成元素

Spark Core:是 Spark 的核心,主要负责内存计算、任务调度、部署模式、故障恢复、存储管理等功能。主要面向批数据处理,Spark建立在统一的抽象RDDs(Resilient Distributed Datasets,弹性分布式数据集)之上,可以以基本一致的方式应对不同大数据处理场景。
Spark SQL:允许开发人员直接处理RDD,同时也可以查询Hive和HBase等外部数据源。
Spark Streaming:支持高吞吐量、可容错处理的实时流数据处理,其核心思想是将流数据分解成一系列短小的批处理作业,每个短小的批处理作业都可以使用Spark Core进行快速处理。
MLlib:主要用于机器学习领域,它实现了一系列常用的机器学习和统计算法,如分类、回归、聚类、主成分分析等算法。
GraphX:是Spark中用于图计算的API,可认为是Pregel在Spark上的重写及优化。这个模块主要支持数据图的分析和计算,并支持图形处理的 Pregel API 版本。GraphX 包含了许多被广泛理解的图形算法,如 PageRank。
参考:
编程
创建用户
# 创建名为hadoop的用户 -t自动化创建一个用户的登录目录 -s指定用户登录后使用的命令sudo useradd -m hadoop -s /bin/bashsudo passwd hadoop# 增加管理员权限sudo adduser hadoop sudo
单机配置SSH免密登录并验证
# 登录本机ssh localhostcd ~/.ssh/# ssh-keygen生成密钥,ssh-keygen -t rsa# 将密钥加入授权cat ./id_rsa.pub >> ./authorized_keys# scp secure cppy linux远程拷贝文件scp ~/.ssh/id_rsa hadoop@slave1:home/hadoop/# 进入其他从节点,执行以下命令cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
配置环境变量
# 在master节点上讲hadoop安装目录加入Path变量中export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin# 保存后执行,使配置生效source ~/.bashrc
配置文件
core-site.xml
<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>
hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>files:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>files:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>
mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>
名称节点格式化
./bin/hadoop namenode -format./sbin/start-dfs.sh #启动hadoop./sbin/stop-dfs.sh./sbin/start-yarn.sh
dfs操作
hdfs dfs -mkdir -p /user/hadoop1hdfs dfs -mkdir /user/hadoop1/inputhdfs dfs -put /home/hadoop1/myLocalFile.txt input./bin/hdfs dfs –rm –r /user/hadoop1/input./bin/hdfs dfs –cat input/myLocalFile.txt
HBase操作
create ‘student’,{NAME => 'course'},{NAME => 'information'}put 'student' '9528' ,'coourse:math','99'
https://h6iuq6sgbh.feishu.cn/docs/doccn09J69WQTQQVl5qIgBgkYBc
