注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
当您在Spark模块中初始化一个Code Workbook环境时,会将一系列元数据归属于该模块。这些元数据可以分为两类:计算信息和环境信息。会话是这些设置在Spark模块生命周期中实例化的一部分,或者非正式地说,“在其生命周期内给定Spark模块的真实状态”。
计算信息包括分配给Spark模块的Spark设置的详细信息,以及其他相关信息,如jar依赖项、资源标识符和模块的启动类型。另一方面,环境信息可以进一步分为两类:请求的环境和已解决的环境。请求的环境是一组Conda规范,例如请求pandas=2.*
或python<3.10
,而已解决的环境是一组满足请求的环境所建立约束的已解决包。需要注意的是,请求的环境是非确定性的,而已解决的环境,按定义,是给定请求环境的永久解决方案。因此,两个相同的请求环境可能导致不同的已解决环境。例如,在2017年请求python>=3.6
可能会解析为Python 3.6,而今天相同的请求可能会导致解析为Python 3.10。
Code Workbook提供有关一个Workbook的所有最近会话的信息。要查看Workbook的会话历史记录,请选择Code Workbook的环境下拉菜单,然后选择查看会话历史记录。
会话历史记录窗口通过三个不同的选项卡提供信息:计算信息、请求的环境和已解决的环境。左侧窗格提供会话的ID以及会话初始化的时间戳。会话ID左侧的图标将指示它是否成功初始化(绿色)、失败(红色)或其他(蓝色)。蓝色会话通常意味着会话尚未完成初始化,因此未达到失败或成功状态。
计算信息选项卡提供有关给定会话请求的Spark模块类型的信息:
sparkModuleRid
和sessionId
将共享相同的唯一标识符。WARM_MODULE
或ON_DEMAND_MODULE
。表示会话是使用已初始化的模块队列中的模块,还是请求一个新的模块来开始其初始化过程。请求的环境选项卡提供有关初始化开始前所需环境设置的信息:
solve
、file
或docker
。有关Code Workbook中初始化类型的更多信息,请参阅环境优化文档。profileRid
。对于自定义环境,这将是配置文件被自定义的workbook的workbookRid
。已解决的环境选项卡提供有关初始化过程中使用的环境包的信息。这包括初始化环境所花费的时间,以及最终安装到模块上的包及其版本。这些信息特别重要,因为Code Workbook的会话回滚功能借用的是先前会话的已解决环境,而不是请求的环境。
比较两个给定会话以了解给定环境可能如何更改通常是有帮助的。会话历史记录窗口允许您比较当前会话与任何历史会话。您可以通过选择会话历史记录窗口右上角的比较会话访问会话历史记录比较选项卡。
会话比较菜单将在彼此旁边提供两个窗口。右侧显示当前会话的信息。在左侧,可以显示来自会话列表的任何会话以进行比较。要切换左侧要比较的会话,请从会话列表中选择任何会话。您可以随时通过选择窗口右上角的退出比较退出比较视图。左侧选择的会话将保持选中状态。
会话可以在所有三个可用选项卡中进行比较。比较两个会话的计算信息可能有助于了解模块内存的更改。比较请求的环境有助于理解两个给定会话的环境之间手动更改了什么,而比较已解决的环境可能有助于了解两个会话之间安装的不同版本。
在下面的示例中,使用会话比较的各种选项卡揭示了关于两个会话的以下信息:
在某些情况下,您可能希望临时回滚到历史会话的完全相同设置。Code Workbook通过提供固定会话的机会来实现此行为。固定会话意味着使用历史会话的相同元数据初始化一个全新的会话和Spark模块,以重现一个似乎相同的环境。固定会话将从历史会话中借用已解决信息来初始化一个新的模块。这一点尤其重要,因为使用相同的已解决环境可以保证安装的包相同,而使用相同的请求环境则不能。因此,固定会话模拟了回滚到以前工作的环境的效果。少数几个元数据,如初始化模式,不会从历史会话中借用。
要固定会话,请导航到会话历史记录窗口并选择要固定的会话。然后选择面板右下角的固定会话。Workbook的当前分支将有一个固定会话覆盖,最多可持续24小时。横幅将显示覆盖的剩余时间,以及删除固定的选项。在此期间,每个后续的交互式环境初始化将借用固定会话的信息。当期间到期或会话被手动取消固定时,Workbook将恢复使用其当前配置的环境。
会话固定旨在用于调试目的,不应依赖于长期的、生产就绪的管道。因此,固定会话只会影响_交互式_环境。在Code Workbook界面外执行的搭建,如定期搭建,不会受到固定会话覆盖的影响。我们建议您将会话固定限制在偶尔的故障排除和实验中。相反,使用会话历史记录功能来了解不同会话之间的差异,并直接编辑环境定义。
固定会话时适用某些限制。固定的会话不会无限持续,并非每个会话都可以固定,也并非每次初始化都会受到固定会话的影响。下面列出了一些在考虑固定会话时需要注意的限制:
出于上述原因,会话固定是一个调试功能,不应依赖于长期的、生产就绪的管道。
上面提到的会话历史记录、会话比较和会话固定功能可以在故障排除失败的环境中发挥重要作用。特别是,它们有助于解决以前工作环境的故障。按照以下步骤解决此类问题:
该环境以前是否工作过?
使用比较会话功能,选择当前失败的会话与以前成功的会话进行比较,并观察环境中的差异。
3.(可选)在上一步故障排除期间,使用会话固定功能,首先确保固定版本的环境有效,并在找到更永久的解决方案时暂时解除Workbook的功能阻止。