数据岗位面试题更新 2026-08-05

请阐述在 Apache Flume 中,利用 HDFS Sink 进行数据落地的过程,并说明需要重点关注的参数及其作用。

数据风险判断技术原理方案权衡Apache FlumeHDFS

考察说明

考查对 Flume HDFS Sink 工作原理及关键配置的理解。

回答思路

  1. 【回答框架 1】HDFS Sink 将 Event 写入 HDFS 文件,通过 hdfs.path 指定目录,可包含时间戳或主机名变量;事件按批次写入,避免每条都建文件。
  2. 【回答框架 2】关键参数包括 hdfs.fileType(如 SequenceFile、DataStream)、hdfs.writeFormat(如 Text、Writable)、hdfs.batchSize(批大小)、hdfs.rollInterval、hdfs.rollSize、hdfs.rollCount 控制文件滚动,需按业务调整。
  3. 【回答框架 3】hdfs.filePrefix 和 hdfs.fileSuffix 设置文件命名;hdfs.useLocalTimeStamp 决定时间戳来源;hdfs.inUsePrefix 和 hdfs.inUseSuffix 标识正在写入的文件。
  4. 【回答框架 4】数据可靠性方面,hdfs.timeout 和 hdfs.maxOpenFiles 影响连接和文件句柄;需配置 HDFS 权限和 Kerberos 认证以正常写入。
  5. 【回答框架 5】容错上,设置合理的 hdfs.threadsPoolSize 和 hdfs.round 等可提高写入性能,但需避免吞吐与延迟的权衡。
  6. 【关键点 1】HDFS Sink 通过 hdfs.path 指定写入目录,支持动态变量。
  7. 【关键点 2】文件滚动由 rollInterval、rollSize、rollCount 三个参数控制,需按数据规模调整。
  8. 【关键点 3】hdfs.fileType 决定存储格式,DataStream 为纯文本,SequenceFile 为二进制。
  9. 【关键点 4】batchSize 和事务相关参数影响吞吐,过大可能增加延迟。
  10. 【关键点 5】认证与权限配置是实际运行中常见失败点。
  11. 【易错点 1】未配置 hdfs.fileType 时默认 SequenceFile,若需文本需显式设置。
  12. 【易错点 2】文件滚动参数设置不当会导致大量小文件或单文件过大。
  13. 【易错点 3】忽略 HDFS 权限或 Kerberos 会导致写入失败,需提前配置。