使用 Jupyter Notebook 和 Azure Data Studio 排查大数据群集问题

此页是 SQL Server 大数据群集的笔记本索引。 这些可执行笔记本(.ipynb)专为 SQL Server 2019 设计,可帮助对大数据群集进行故障排除。

重要

Microsoft SQL Server 2019 大数据群集附加产品将停用。 对 SQL Server 2019 大数据群集的支持将于 2025 年 2 月 28 日结束。 具有软件保障的 SQL Server 2019 的所有现有用户都将在平台上获得完全支持,在此之前,该软件将继续通过 SQL Server 累积更新进行维护。 有关详细信息,请参阅公告博客文章Microsoft SQL Server 平台上的大数据选项

每个笔记本旨在检查其自己的依赖项。 “运行所有单元格”选项成功完成,或者向另一个笔记本发出超链接提示引发异常,以解决缺少的依赖项。 点击指向目标笔记本的超链接,然后单击运行所有单元格。 成功返回原始笔记本后,单击“ 运行所有单元格”。

安装所有依赖项后,但 运行所有单元格 失败后,每个笔记本将分析结果,并尽可能生成指向另一个笔记本的超链接提示,以进一步帮助解决问题。

大数据群集故障排除

本部分包含一组笔记本,用于从 SQL Server 大数据群集获取日志。

名称 DESCRIPTION
TSG100 - 大数据群集疑难解答 有关排查大数据群集问题以及何时使用它们的所有可用笔记本概述
TSG101 - SQL Server 故障排查工具 有关排查 SQL Server 问题以及何时使用的所有可用笔记本的概述
TSG102 - HDFS 疑难解答 有关排查 HDFS 问题以及何时使用所有可用笔记本的概述
TSG103 - Spark 疑难解答 关于 Spark 问题排查的所有可用工作笔记及其使用时机的概述
TSG104 - 控制故障排除 有关排查控制器问题以及何时使用它们的所有可用笔记本的概述
TSG105 - 网关疑难解答 有关可用的 Knox 网关问题排查文档及其使用时机的概述
TSG106 - 应用疑难解答 有关排查 App-Deploy 问题的所有可用笔记本的概述,以及何时使用这些笔记本。

诊断大数据群集中的问题

一组笔记本用于诊断大数据群集的情况和状态。

名称 DESCRIPTION
TSG002 - CrashLoopBackoff 此 TSG 将连接到最近一次尝试进入“正在运行”状态失败的每个容器,并获取当前和之前的容器日志。 这对于调试 kubectl get pod 中报告的 CrashLoopBackOff 问题非常有用。
TSG025 - FSM 浏览器 - 查询控制器 FSM 状态 使用此笔记本连接到控制器数据库并浏览有限状态机 (FSM) 状态。 使用此笔记本列出活动状态机并识别停滞的工作流。
TSG026 - 连接到数据池节点(运行 T-SQL) 使用此笔记本连接到数据池节点(运行 T-SQL)
TSG027 - 观察群集部署 使用此笔记本观察群集部署,它提供排查 SQL Server 大数据群集问题的指导,以下命令通常可用于查明根本原因。
TSG029 - 在群集中查找内存转储 使用此笔记本查找来自大数据群集中 SQL服务器 或控制器等进程的核心转储和小转储。
TSG032 - 所有容器的 CPU 和内存使用情况 使用此笔记本检查所有容器的 CPU 和内存使用情况。
TSG037 - 确定托管主副本的主池 Pod 启用主池的高可用性时,使用此笔记本确定主池 Pod 如何托管大数据群集的主副本。
TSG044 - 在主池容器中运行 sqlcmd 使用此笔记本通过 T-SQL 直接连接到主池节点。
TSG055 - 时间卷曲到Sparkhead 使用此笔记本进行诊断,以了解从控制器 Pod 到 sparkhead Pod 的 Curl 响应时间。
TSG060 - 所有大数据集群 PVC 的持久卷磁盘空间 使用此笔记本连接到大数据集群中的每个容器,获取与每个持久卷声明(PVC)关联的持久卷(PV)的磁盘使用和可用空间。
TSG078 - 群集是否健康 使用此笔记本检查大数据群集是否正常。
TSG079 - 生成控制器核心转储 使用此笔记本生成控制器核心转储文件。
TSG086 - 在所有容器中运行top命令 使用此笔记本在所有容器中运行 top 命令。
TSG087 - 在 namenode pod 上使用 hadoop fs CLI 使用此笔记本在 namenode Pod 上使用 hadoop fs CLI。
TSG108 - 查看控制器升级配置映射图 使用此笔记本排查通过 azdata bdc upgrade 在进行大数据群集升级时发生的失败问题。
TSG112 - Active Directory 预部署检查 使用此笔记本验证大数据群集配置是否对 Active Directory 部署有效。
TSG115 - Linux 上的 SQL Server 安全日志翻译 使用此笔记本分析 Linux 上 SQL Server 的 security.ldap 和安全.kerberos 记录器生成的日志。 若要启用这些记录器,请将下面的行放在运行 Linux 上的 SQL Server 的计算机上 /var/opt/mssql/logger.ini 中。 注意:此文件区分大小写。
TSG116 - SQL BDC 安全支持日志翻译器 使用此笔记本分析 SQL BDC 中安全支持服务生成的日志。 若要获取日志,我们将从群集复制调试日志并提取这些日志。 执行以下步骤 - 运行“azdata bdc debug copy-logs -n <namespace>”。这将创建多个.tar.gz文件 - 提取 debuglogs-namespace-date-time<><>< 的内容.tar.gz - 找到存储在 ./>namespace<>/control-<... 的安全支持日志...>/security-support/supervisol/log/secsupp-stderr---<...>.日志。
TSG119 - Active Directory 部署后检查 此笔记本旨在验证 AD 部署后的 BDC 配置。 它将检查具有 dnsName 属性的所有终结点是否存在 DNS 条目,并且这些 DNS 条目应是主机记录,而不是别名(即记录不是 CNAME 记录)。此外,已知 AD 帐户是否存在以及它们是否已启用,以及是否存在预期的 SPN

修复大数据群集的问题

一组笔记本,用于修复 SQL Server 大数据群集的已知情况和状态。

名称 DESCRIPTION
TSG005 - 检测到转发循环 使用此记事本解决检测到的转发循环问题,因为实用工具 dnsmasq 可以将本地环回添加到 resolv.conf 中,这可能导致控制器 Pod 在初始集群部署期间进入崩溃循环: https://askubuntu.com/questions/627899/nameserver-127-0-1-1-in-resolv-conf-wont-go-away|
TSG011 - 重启 sparkhistory 服务器 使用此笔记本重启 sparkhistory 服务器,因为 sparkhistory java 进程可以在启动期间停止响应。 重启 sparkhistory 服务器(supervisorctl restart sparkhistory)可以解决此问题。
TSG018 - 终止主池上的 sqlservr 进程 当 T-SQL SHUTDOWN 无法成功重新循环 ./sqlservr 进程时,请使用此笔记本。 使用此笔记本终止主 sqlservr 进程,该进程将由 ./sqlservr 前端进程自动重启。
TSG024 - Namenode 处于安全模式 当 HDFS 自身进入安全模式时,请使用此笔记本。 例如,如果存储池中过多的 Pod 被重新循环得太快,则可能会自动启用安全模式。
TSG028 - 在所有存储池节点上重启节点管理器 当需要重新启动所有存储池节点上的节点管理器时,请使用此笔记本。
TSG038 - BDC 创建失败原因 - 文档缺少密钥 当 BDC 由于 - 文档缺少密钥而创建失败时,请使用此笔记本。
TSG039 - 对象名称“role_permissions”无效 当由于 Knox gateway.log 中的角色权限导致对象无效问题时,请使用此笔记本。
TSG040 - 无法从控制器获取文件名并出现错误 请在从控制器获取文件名时出现 504 Gateway 超时错误时使用此笔记本。
TSG041 - 无法创建新的异步 I/O 上下文(增加 sysctl fs.aio-max-nr) 如果无法创建新的异步 I/O 上下文(增加 sysctl fs.aio-max-nr),请使用此笔记本。
TSG045 - 允许附加到此大小的 VM 的最大数据磁盘数(AKS) 当附加到此大小的虚拟机的数据磁盘数量已达到最大限制时,请使用此笔记本(适用于 AKS)。
TSG047 - ConfigException - 只应有一个具有名称的对象 当 ConfigException 仅期望一个具有名称的对象时,请使用此笔记本。
TSG048 - 部署卡在“等待控制器容器组启动” 当部署停滞在“等待控制器 Pod 启动”时使用此笔记本。
TSG050 - 群集创建挂起,“超时已过期,等待卷附加或装载 Pod” 当群集创建因“等待卷附加或装载 Pod 超时”错误而挂起时,使用此笔记本。
TSG052 - 尝试获取 master-svc DNS 失败,并将重试 当群集创建因“等待卷附加或装载 Pod 超时”错误而挂起时,使用此笔记本。
TSG057 - 启动控制器服务时失败。System.TimeoutException 在启动控制器服务时以及处理System.TimeoutException时使用此笔记本。
TSG067 - 未能完成 kube 配置设置 当遇到 kube 配置设置无法完成时,使用此笔记本。
TSG074 - 删除 App-Deploys 在大数据群集中删除应用时遇到问题时,请使用此笔记本。
TSG075 - 由于网络插件 CNI 未能设置 Pod,发生 FailedCreatePodSandBox 错误。 在发生 FailedCreatePodSandBox 异常并且 NetworkPlugin CNI 未能正确设置 Pod 时,请参考此笔记本。
TSG080 - 使用 azdata 删除 Spark 会话 在删除 Spark 会话时出现问题时使用此笔记本。
TSG109 - 设置升级超时 在遇到 BDC 升级问题时使用此笔记本。
TSG110 - Azdata 返回 ApiError 当 Azdata 返回 ApiError 时使用此笔记本。

后续步骤

有关大数据群集的详细信息,请参阅 什么是 SQL Server 大数据群集?