当前位置: 首页 > news >正文

大数据运维面试题及答案

一、基础理论与技术栈

  1. Hadoop 核心组件及各自作用是什么?答案:核心为 “3 大组件”。- HDFS:分布式文件系统,负责海量数据的存储,分 NameNode(管理元数据)和 DataNode(存储实际数据);- YARN:资源调度框架,分配 CPU、内存等资源给计算任务;- MapReduce:分布式计算模型,将任务拆解为 Map(拆分数据)和 Reduce(汇总计算)两阶段处理。

  2. HDFS 中 NameNode 与 SecondaryNameNode 的区别?答案:- NameNode:集群 “大脑”,管理元数据(文件目录、块位置),实时响应客户端请求,数据存于内存,元数据镜像(fsimage)和编辑日志(edits)持久化到磁盘;- SecondaryNameNode:非备份(NameNode 备份需手动配置),主要功能是合并 fsimage 和 edits,生成新镜像并发送给 NameNode,减轻其磁盘 IO 压力,避免 edits 日志过大。

  3. Spark 与 MapReduce 相比,优势是什么?答案:核心优势是 “基于内存计算”。- 速度快:中间计算结果存于内存,避免 MapReduce 反复读写磁盘,相同任务耗时通常仅为 MapReduce 的 1/10~1/5;- 易用性高:支持 Scala/Python/Java 等多语言,API 更简洁,还提供 Spark SQL(SQL 操作)、Spark Streaming(流处理)等组件,场景覆盖更广;- 容错性强:通过 RDD 的 “ lineage(血缘)” 机制,任务失败时可快速重算,无需从头执行。

二、运维实操与问题排查

  1. HDFS 集群出现 DataNode 心跳丢失,如何排查?答案:按 “网络→进程→配置→日志” 步骤排查。1. 检查网络:用 ping 测试 NameNode 与故障 DataNode 连通性,telnet 或 nc 验证 DataNode 心跳端口(默认 50020)是否开放;2. 检查进程:在 DataNode 节点执行 jps 命令,确认 DataNode 进程是否存活,若未存活,查看启动日志(默认 $HADOOP_HOME/logs/hadoop-*-datanode-*.log);3. 检查配置:确认 DataNode 的 hdfs-site.xml 中 dfs.namenode.rpc-address 配置是否正确(指向 NameNode 地址),且 dfs.data.dir 目录权限是否为 hadoop 用户(或集群指定用户);4. 检查磁盘:查看 DataNode 存储目录(dfs.data.dir)所在磁盘是否满(df -h),或磁盘损坏(dmesg | grep error)。

  2. Spark 任务执行缓慢,可能的原因及优化方案?答案:常见原因及对应优化:- 资源不足:YARN 分配给 Spark 的内存(--executor-memory)或 CPU 核数(--executor-cores)不足,需根据任务数据量调整资源参数,避免资源争抢;- 数据倾斜:部分 Key 对应的数据量过大,导致个别 Executor 过载,解决方案:① 对倾斜 Key 进行拆分(如加随机前缀);② 使用 repartition 或 coalesce 重新分区,平衡数据分布;- Shuffle 优化:Shuffle 阶段磁盘 IO 高,可开启 Shuffle 内存管理(spark.shuffle.memoryFraction 调整比例),或使用 kyro 序列化(减少数据传输大小);- 数据格式:避免使用文本格式(如 TXT),改用 Parquet/Orc 等列式存储格式,减少 IO 量。

  3. 如何监控大数据集群(Hadoop/Spark)的运行状态?答案:主流方案分 “原生工具” 和 “第三方工具”。- 原生工具:① Hadoop/YARN 自带 Web UI(NameNode 默认 50070 端口,ResourceManager 默认 8088 端口),可查看集群节点、资源使用、任务进度;② Spark UI(任务运行时默认 4040 端口),查看 Executor 状态、任务执行详情;- 第三方工具:① Prometheus + Grafana:通过 Exporter(如 hadoop-exporter、spark-exporter)采集集群指标(CPU、内存、磁盘、任务延迟等),Grafana 可视化展示并设置告警;② Zabbix/Nagios:监控节点存活、磁盘空间、进程状态等基础指标,支持邮件 / 短信告警;③ Cloudera Manager/Ambari:集群管理平台,集成监控、部署、运维功能,适合大型集群。

三、进阶与架构设计

  1. Hadoop 集群如何实现高可用(HA)?核心组件是什么?答案:Hadoop HA 主要解决 NameNode 单点故障问题,核心依赖 ZooKeeper。1. 架构组成:- 2 个 NameNode(Active 活跃节点、Standby 备用节点),实时同步元数据(通过 JournalNode 集群,默认 3 个节点,存储 edits 日志,Active 写入、Standby 读取以保持元数据一致);- 故障检测:ZooKeeper 监控 NameNode 状态,Active 节点通过 ZK 持有 “锁”,若 Active 故障(如进程挂掉、网络断连),ZK 释放锁,Standby 竞争锁成功后切换为 Active;- 数据节点:DataNode 同时向 2 个 NameNode 发送心跳,避免切换后数据节点重新注册。

  2. 大数据集群中,如何处理数据备份与容灾?答案:分 “数据备份” 和 “集群容灾” 两层。- 数据备份:① HDFS 副本机制:通过 dfs.replication 配置副本数(默认 3),数据块自动存于不同节点(同机架 1 个,异机架 2 个),避免单节点 / 机架故障丢失数据;② 跨集群备份:通过 distcp 工具将生产集群数据定时同步到备用集群(如每天凌晨同步前一天数据),或使用 HBase 复制(Replication)功能实现实时数据同步;- 集群容灾:① 同城双活:生产集群与备用集群部署在同一城市不同机房,通过同步工具保持数据一致,故障时快速切换流量;② 异地容灾:备用集群部署在不同城市,用于应对地震、洪水等区域性灾难,数据同步周期可放宽(如每小时同步),优先保证数据不丢失。

http://www.dtcms.com/a/609930.html

相关文章:

  • MySQL数据库索引详解
  • 多通道ADC数模转换器电池管理系统解决方案
  • Java 基础高频38问
  • 煤矿煤质分类数据集3406张5类别
  • MR30分布式I/O模块服务换热站项目,守护万家温暖
  • 唐山市城市建设规划局网站网站首页index.html
  • 大模型架构和原理二
  • 11.14 脚本网页 青蛙过河
  • 【算法专题训练】30、二叉树的应用
  • 深入解析IP, ICMP, OSPF, BGP四大核心网络协议
  • RAG系统中的文本分块技术:从基础策略到智能分块的深度解析
  • Bootstrap 4 Flex布局详解
  • APP网站建设开发企业发展网站建设增城
  • 我做网站了 圆通北京网站建设首选优达
  • Lidar调试记录Ⅲ之Ubuntu22.04+ROS2环境中安装colcon
  • 闵行网站制作设计公司wordpress wp polls
  • IntelliJ IDEA初始化指南
  • Unity ScriptedImporter 教程:自定义资源导入器
  • C语言编译器苹果 | 适用于macOS的高效C语言编译环境介绍
  • python(57) : 离线环境升级依赖
  • C++网络开发---客户端网络传输 libcurl
  • 电商项目练习实操(二)
  • 不使用后端接口导出excel的三种方式
  • leetcode 394 字符串解码
  • 如何做充值网站seo模拟点击软件源码
  • 好看的旅游网站模板下载镇江百度推广公司
  • 智慧物业|物业管理|基于SprinBoot+vue的智慧物业管理系统(源码+数据库+文档)
  • Android thermal (7)_thermal core
  • 网站的维护费用售后服务网站建设
  • Databend SQL nom Parser 性能优化