本文档主要提供了关于Hadoop分布式文件系统(HDFS)和YARN(Yet Another Resource Negotiator)的一些关键面试问题及其答案,适用于大数据领域的求职者或面试准备。以下是主要内容的详细解析:
1. JDK版本确认:面试官可能会询问JDK的安装版本和配置,确保开发环境与Hadoop兼容。
2. Hadoop安装:涉及如何从源代码编译并安装Hadoop,如通过tarball方式解压到指定目录(如`/apps/hadoop-2.7.5`),并且配置必要的环境变量。
3. 配置文件:重点在于`hadoop-env.sh`, `core-site.xml`, `mapred-site.xml`, 和 `yarn-site.xml`等核心配置文件的作用,以及`slaves`文件中管理DataNode节点列表。
4. 环境变量设置:讲解如何在`~/.bashrc`或`/etc/profile`中设置Hadoop的环境路径,确保Hadoop命令行工具可以在系统中正确识别。
5. 初始化HDFS:阐述如何执行`hadoop namenode -format`命令来格式化NameNode,这是启动HDFS集群前的重要步骤。
6. 启动服务:提到`start-dfs.sh`和`start-yarn.sh`命令,用于启动HDFS和YARN服务,面试者应了解这两个脚本的作用和依赖关系。
7. 服务状态检查:面试者需要知道如何通过`jps`命令检查各个Hadoop组件是否正在运行,并了解NameNode、SecondaryNameNode、DataNode、ResourceManager、NodeManager等角色的功能。
8. 高可用性(HA)部署:讲解Hadoop的High Availability特性,包括NameNode和ResourceManager的备份机制,以及与Zookeeper、JournalNode和DFSZKFailoverController等组件的配合。
9. 服务端口:熟悉HDFS(50070)、YARN(8088)、HistoryServer(19888)、Zookeeper(2181)、MySQL(3306)、Hive(10000)、Kafka(9092)、Azkaban(8443)、HBase(16010)、Spark(8080)等服务的默认端口号,这些在生产环境中是必不可少的。
10. HDFS命令行操作:理解基础的HDFS操作命令,如`hadoopfs-put`和`hadoopfs-get`,用于在HDFS上上传和下载文件。
这份文档为面试者提供了一个全面的Hadoop和YARN基础知识框架,涵盖了从安装、配置到操作的各个环节,有助于准备者应对面试中的相关问题。对于理解和掌握Hadoop生态系统及其管理至关重要。