核心原则
为保障大数据集群的稳定性、数据完整性及服务连续性,所有操作必须遵循以下核心原则:
- 严格版本配套原则:严禁使用非当前集群版本配套的客户端(Client/SDK)连接服务。
- 最小权限原则:禁止在非必要情况下使用hadoop、root等超级用户身份运行业务代码。
- 变更窗口原则:涉及元数据变更、重启、配置修改的操作必须在规定的维护窗口内进行。
严禁操作项
警告:
违反以下规定导致的服务故障、数据丢失,属于人为责任事故,不在平台 SLA 保障范围内。
客户端与版本管理
【禁止】使用开源社区版本客户端:严禁直接下载 社区版 Jar 包或客户端工具连接TBDS集群。厂商版本通常包含私有补丁、安全加固及协议修改,混用极易导致协议握手失败或隐蔽的数据错误。
【禁止】跨版本操作(低配高):严禁使用低版本 TBDS 客户端操作高版本集群服务。
【禁止】使用未经验证的第三方工具:严禁使用未经平台官方认证的 GUI 管理工具(如某些开源的 Kafka Manager、HBase UI 工具)直接对生产环境进行写操作。
元数据与存储安全
【禁止】直接操作底层元数据:严禁绕过组件 API,直接修改 Zookeeper 中的 Znode 数据、MySQL 中的 Hive Metastore 表数据或 HDFS 上的 fsimage/edits 文件。
【禁止】非标路径写入:严禁在 HDFS 的 /tmp、/user/hive/ 等系统关键目录下随意存放临时数据或业务数据,必须规划独立的业务目录。
【禁止】关闭安全认证:在开启 Kerberos 的集群中,严禁在业务代码中硬编码关闭认证检查或试图绕过安全协议。
Kafka 专项规范
【禁止】低版本客户端管理高版本 Topic:
- 风险:使用低版本客户端执行
Add Partition操作,会导致新分区缺乏 Topic ID。当集群重启或发生 Leader 切换时,Broker 间因元数据不一致拒绝同步,导致 ISR 列表收缩、消费组卡死、部分分区不可用。 - 规范:所有 Producer/Consumer 及管理脚本(
kafka-topics.sh)必须使用与 Broker 版本完全一致的客户端包。
HBase 专项规范
- 【禁止】 在业务高峰期手动触发
Major Compaction。 - 【禁止】 修改列族属性时未同步修改所有 Region,可能导致 Split 失败。
Hive/Spark 专项规范
- 【禁止】 开启过大的动态分区(Dynamic Partition),如一次 Insert 产生超过 2000 个分区,会压垮 NameNode。
- 【禁止】 在 Driver 端收集过大结果集(如
collect()操作),会导致 Driver OOM。
慎重操作项
以下操作需经过技术团队评审,并在低峰期执行。
资源与性能
【慎重】全表扫描与无索引查询:
- Hive/Spark SQL 禁止在无分区过滤的情况下对 PB 级大表进行全表扫描。
- HBase 禁止在无 RowKey 规划的情况下使用
Scan操作或使用非前缀匹配的 Filter。
【慎重】高并发小文件写入:避免在 HDFS/Hive 中生成大量(百万级)低于 128MB 的小文件,这会耗尽 NameNode 内存并拖垮集群性能。
【慎重】自定义代码(UDF/Coprocessor): - Hive UDF 必须经过内存泄漏测试。
- HBase Coprocessor部署前必须在测试环境验证,错误的协处理器会导致 RegionServer 级联宕机。
运维变更
【慎重】强制重启与 Kill:严禁使用 kill -9 强制杀停有状态组件(HDFS, Kafka, HBase, ZK)的进程,必须使用标准的 stop 脚本或平台控制台操作,否则可能导致数据损坏。
【慎重】大规模数据删除:执行 hadoop fs -rm -r 或 DROP TABLE 前必须进行“双人复核”,建议开启 HDFS 回收站功能。