hadoop面试题
时间: 2025-04-21 22:38:28 浏览: 32
### Hadoop 面试问题及答案
#### 什么是Hadoop?
Hadoop 是一个开源软件框架,专为存储大量数据并支持在由多台商用硬件组成的集群上并发处理这些数据而设计[^2]。
#### Hadoop 的主要组成部分有哪些?
Hadoop 主要由三个部分构成:
- **分布式存储 (HDFS)**:允许以分布式的、冗余的方式存储大量的数据。例如,1 GB大小的文本文件可被分割成多个较小的部分,并分布在不同的节点上保存,同时提供高可用性和容错能力。
- **分布式计算框架 (MapReduce)**:负责执行大规模数据分析任务,通过映射(map)和化简(reduce)两个阶段来处理输入的数据集。
- **资源调度框架 (YARN)**:管理整个系统的计算资源分配给各个应用程序使用[^1]。
#### 如何验证Hadoop安装成功与否?
可以通过一系列命令来进行基本的服务状态检查:
- 使用 `jps` 命令查看Java进程;
- 进入日志目录 `/opt/software/hadoop-3.1.3/logs/` 查看NameNode的日志文件;
- 利用 `netstat -anutp | grep 9870` 来确认Web UI端口是否开启正常;
- 执行 `hdfs dfsadmin -safemode get` 查询当前的安全模式状况[^3]。
#### MapReduce中Combiner与Reducer有何区别?
两者的主要差异体现在它们的工作位置上——Combiner会在每个MapTask所在节点本地运行,作为预聚合操作的一部分;相比之下,Reducer则会收集来自所有Mapper产生的中间键值对输出,在全局范围内完成最终的结果汇总工作[^4]。
#### Shuffle过程包含哪些步骤以及其影响因素是什么?
Shuffle是指从map阶段到reduce阶段之间的数据传输流程,它通常涉及以下几个环节:
- 对map输出进行分区(partitioning),按照key分组(group by key);
- 排序(sorting),确保相同key下的value有序排列;
- 合并(combine),减少网络传输负担;
- 数据压缩(compression),提高I/O效率。
Shuffle过程中传递的数据总量取决于原始输入规模、mapper的数量及其产出率等因素共同作用下形成的中间结果集合大小。
```bash
# 示例:启动namenode服务
$ hdfs --daemon start namenode
```
阅读全文
相关推荐















