数据开发可以创建多少个作业,作业中的节点数是否有限制?
目前默认每个用户最多可以创建10000个作业,每个作业建议最多包含200个节点。
另外,系统支持用户根据实际需求调整最大配额。如有需求,请进行申请。
作业的计划时间和开始时间相差大,是什么原因?
在作业监控页面查看作业运行记录时,发现作业的计划时间和开始时间相差较大。其中计划时间是作业预期开始执行的时间,即用户为作业配置的调度计划。开始时间是作业实际开始执行的时间。
这是因为在数据开发中,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现上述问题。
出现上述问题时,请检查作业配置的调度周期是否小于作业实际执行所需要的时间,根据实际情况调整作业的调度计划。
相互依赖的几个作业,调度过程中某个作业执行失败,是否会影响后续作业?这时该如何处理?
这种情况会影响后续作业,后续作业可能会挂起,继续执行或终止执行。
如图所示作业依赖关系
这时请勿停止作业,您可以将失败的作业实例进行重跑,或者将异常的实例停止再重跑。失败实例成功后,后续作业会继续正常运行。如果不通过数据开发,手动将作业实例中的业务场景处理后,可以强制成功作业实例,后续作业也会继续正常运行。
通过DataArts Studio调度大数据服务时需要注意什么?
DLI和MRS作为大数据服务,不具备锁管理的能力。因此如果同时对表进行读和写操作时,会导致数据冲突、操作失败。
如果您需要对大数据服务数据表进行读表和写表操作,建议参考以下方式之一进行串行操作处理:
- 将读表和写表操作拆分为同一作业的不同节点,两个节点通过连线建立先后执行关系,避免同时执行冲突。
- 将读表和写表操作拆分为两个不同的作业,两个作业之间设置依赖关系,避免同时执行冲突。
环境变量、作业参数、脚本参数有什么区别和联系?
环境变量、作业参数、脚本参数均可以配置参数,但作用范围不同;另外如果环境变量、作业参数、脚本参数同名冲突,调用的优先级顺序为:作业参数 > 环境变量参数 > 脚本参数。
环境变量、作业参数、脚本参数的介绍和使用方式如下:
-
环境变量中支持定义变量和常量,环境变量的作用范围为当前工作空间。
a.变量是指不同的空间下取值不同,需要重新配置值,比如“工作空间名称”变量,这个值在不同的空间下配置不一样,导出导入后需要重新进行配置。
b.常量是指在不同的空间下都是一样的,导入的时候,不需要重新配置值。
如图所示环境变量
- 作业参数中支持定义参数和常量,作业参数的作用范围为当前作业。
a.参数是指不同的作业下取值不同,需要重新配置值,导出导入后需要重新进行配置。
b.常量是指在不同的作业下都是一样的,导入的时候,不需要重新配置值。
如图所示作业参数
- 脚本参数支持如下使用方式,脚本参数的作用范围为当前脚本。
a.SQL脚本支持在脚本编辑器中直接输入参数(Flink SQL不支持),脚本独立执行时可通过编辑器下方配置,如图" 独立执行时的脚本参数"所示;通过作业调度时可通过节点属性赋值,如图"作业调度时的脚本参数"所示。
b.Shell脚本可以在编辑器上方配置参数和交互式参数以实现参数传递功能。
c.Python脚本暂不支持参数传递功能。
如图所示独立执行时的脚本参数
如图所示作业调度时的脚本参数
作业失败无法查看节点错误日志?
错误日志是在OBS中存储,查看日志的当前账户需要具有OBS读权限。可以通过检查IAM中OBS权限、OBS桶策略来确认。
说明用户在创建作业时,会默认创建dlf-log-{projectID}命名的桶,此桶若存在,会跳过创建。
配置委托时获取委托列表失败如何处理?
当配置工作空间级或者作业级委托,查看委托列表时,报如下错误:
Policy doesn't allow iam:agencies:listAgencies to be performed.
则需要使用帐号给当前用户添加“查看委托列表”的权限。
先创建自定义策略(查询指定条件下的委托列表),再通过给用户组授予自定义策略来进行精细的访问控制。
- 登录控制台。
- 在控制台页面,鼠标移动至右上方的帐号名,在下拉列表中选择“统一身份认证”。
- 在左侧导航窗格中,单击“权限”>“创建自定义策略”。
- 输入“策略名称”。
- 选择“作用范围”,即自定义策略的生效范围,根据服务的部署区域选择,这里我们要授予的是IAM查询指定条件下的委托列表的权限。因IAM是全局级服务,所以作用范围选择“全局级服务”。
- “策略配置方式”选择“可视化视图”。
- 在“策略内容”下配置策略。
a.选择“允许”
b.选择“云服务”为“统一身份认证服务”。
c.选择“操作”,勾选产品权限(iam:agencies:listAgencies)。 - 单击“确定”,自定义策略创建完成。
- 参见,给当前用户所在的组添加步骤7中定义的策略。
当前用户退出系统,重新登录后,即可正常获取委托列表。
每日执行节点个数超过上限,怎么排查哪些作业调度节点比较多?
每日执行节点个数超过上限,一般是由于作业调度过于频繁导致的。可通过如下方式处理:
- 在数据开发模块控制台的左侧导航栏,选择 “运维调度 > 实例监控”,日期选择当天,查看哪些作业调度较多。
- 在数据开发主界面的左侧导航栏,选择“运维调度 > 作业监控”,查看调度较多的作业设置的调度周期是否合理。如果调度周期不合理,建议适当调整这些调度周期或停止调度。一般每日执行节点个数超过上限都是由于分钟级别的作业导致的。
如图所示查看调度周期
数据开发创建数据连接,为什么选不到指定的周边资源?
请确认当前DataArts Studio实例与周边资源在同一个Region且在同一个IAM项目下。如果账户开通企业项目,则还需在同一个企业项目下。
作业配置了周期调度,但是实例监控没有作业运行调度记录?
- 在“运维调度 > 作业监控”界面确认作业的调度状态是否是调度中,只有调度中的作业到了调度周期后才会调度。
如图所示查看作业调度状态
- 如果作业有依赖于其他作业,在“运维调度 > 实例监控”界面,查看依赖作业的运行状态。如果作业有自依赖,扩大搜索时间窗口,查看是否当前作业历史实例失败,导致作业在等待运行,而没有生成新作业实例。
Hive SQL和Spark SQL脚本脚本执行失败,界面只显示执行失败,没有显示具体的错误原因?
请确认当前Hive SQL和Spark SQL脚本使用的数据连接为“直接连接”还是“通过代理连接”。
“直接连接”模式下DataArts Studio通过API把脚本提交给MRS,然后查询是否执行完成;而MRS不会将具体的错误原因反馈到DataArts Studio,因此导致数据开发脚本执行界面只能显示执行成功还是失败。
如果需要查看具体的错误原因,则需要到MRS的作业管理界面进行查看。
数据开发节点运行中报TOKEN不合法?
请确认当前用户在IAM的权限管理中权限是否有变更、是否退出用户组,或者用户所在的用户组权限策略是否有变更?
如果有变更,请重新登录即可解决。
作业开发时,测试运行后如何查看运行日志?
a.待节点测试运行完成后,在当前节点鼠标右键选择查看日志。
b.通过画布上方的“前往监控”,在实例监控中展开作业实例,查看节点日志。
月周期的作业依赖天周期的作业,为什么天周期作业还未跑完,月周期的作业已经开始运行?
如下图,月周期的作业依赖天周期的作业。为什么在天周期的作业还未跑完,月周期的作业已经开始运行?
如图所示查看作业调度周期及依赖属性
事实上,月周期的作业依赖天周期作业指的是当月的月周期作业是否运行取决于上月的天周期作业是否全部运行完成,而不是由当月的天周期作业决定。
例如在11月中,11月的月周期作业是否运行取决于10月的天周期作业是否全部运行完成。
执行DLI脚本,报Invalid authentication怎么办?
此问题为IAM权限相关问题。
请确认当前用户在IAM中是否具有DLI Service User 或者 DLI Service Admin权限。
创建数据连接时,在代理模式下为什么选不到需要的CDM集群?
请确认CDM集群是否被关机。
如果关机,请重新启动。
作业配置了每日调度,但是实例没有作业运行调度记录?
- 问题描述
作业配置了每日调度,但是实例没有作业运行调度记录。
- 原因分析
原因1:确认作业是否启动调度,如果没有启动,不会进行调度。
原因2:实例查询时间区间过大,如果配置有依赖作业或者自依赖,查看历史作业实例是否因为依赖失败,导致等待运行,没有生成新作业实例。
- 解决方案
配置作业失败异常告警通知,以及实例超时时间,当等待时间超过实例超时时间,系统将发送告警通知。
查看作业日志,但是日志中没有内容?
- 问题描述
查看作业日志,日志中没有内容。
- 原因分析
确认用户在IAM中的OBS权限是否具有对象存储服务(OBS)的全局权限,保证用户能够创建桶和操作桶。
- 解决方案
方式1:用户在对象存储OBS中创建以“dlf-log-{projectID}”命名的桶,并将操作权限赋予调度用户。
方式2:在IAM用户权限中增加全局OBS管理员权限。
创建了2个作业,但是为什么无法建立依赖关系?
- 问题描述
创建2个作业,但是无法建立依赖关系。
- 原因分析
查看所创建的2个作业的调度周期,确认这2个作业是否均为周调度作业或者月调度作业。目前不支持同周期调度,即周依赖周或者月依赖月的作业,不支持建立依赖关系。
- 解决方案
如果这2个作业是周依赖周或者月依赖月的作业,可以把这2个作业放到同一个画布中再运行。
DataArts Studio执行调度时报错:提示作业没有可以提交的版本怎么办?
- 问题描述
DataArts Studio执行调度时报错:作业没有已提交的版本,请先提交作业版本。
- 原因分析
该作业还没有提交版本,就开始执行调度,导致执行调度报错。作业执行调度前必须保证作业存在一个版本。
- 解决方案
- 提交作业(不是脚本)版本。
- 执行作业调度。
如图所示提交版本
DataArts Studio执行调度时报错:作业中节点XXX关联的脚本没有提交的版本?
- 问题描述
DataArts Studio执行调度时报错:作业中节点XXX关联的脚本没有提交的版本。
- 原因分析
该作业内的脚本还没有提交版本,就开始执行调度,导致执行调度报错。作业调度前必须保证作业内脚本都存在一个版本。
- 解决方案
- 切换到脚本开发,找到对应脚本。
- 提交脚本版本。
- 执行作业调度。
提交调度后的作业执行失败,报depend job [XXX] is not running or pause怎么办?
- 问题描述
提交调度后的作业执行失败,报depend job [XXX] is not running or pause。
- 原因分析
该问题是由于上游依赖作业不在运行状态而造成。
- 解决方案
查看上游依赖作业,如果上游依赖的作业不在运行状态中,将这些作业重新执行调度即可。
如何创建数据库和数据表,数据库对应的是不是数据连接?
数据库和数据表可以在DLI服务中创建。
数据库对应的不是数据连接,数据连接是创建DataArts Studio和其他数据服务的连接通道。
为什么执行完HIVE任务什么结果都不显示?
解决方案:清理缓存数据,采用直连方式,数据就可以显示出来了。
在作业监控页面里的 “上次实例状态” 只有运行成功、运行失败,这是为什么?
上次实例状态是作业已经执行完成,只有成功、失败,实例监控里面状态有取消、暂停等好几种,是因为展示了作业的所有状态。
另外,作业运行异常和错误都会是作业失败的状态。
如何创建通知配置对全量作业都进行结果监控?
-
在“运维调度->作业监控”中,选择“批作业监控”页签。
-
勾选需要配置的作业,单击“通知配置”。
如图所示创建通知配置
-
设置通知配置参数,单击“确定”完成作业的通知配置。
DataArts Studio的版本规格与并行执行节点数之间有什么关系?
DataArts Studio的版本规格与并行执行节点数的关系如下表所示。
版本 | 每天执行节点数 | 并行执行节点数 |
---|---|---|
初级版 | 5千 | 50 |
基础版 | 2万 | 100 |
高级版 | 4万 | 200 |
专业版 | 8万 | 300 |
企业版 | 20万 | 400 |
启动用户、执行用户、工作空间委托、作业委托它们之间的优先级顺序是什么?
系统按照作业委托>工作空间委托>执行用户的优先级顺序来获取权限,然后以该权限来执行作业。
作业执行机制默认以启动作业的用户身份执行该作业。如果作业被低权限的用户启动,也会因为权限不足导致作业执行失败。若需解决该问题,可通过配置委托或者执行用户。
- 当配置了委托后,作业执行过程中,以委托的身份与其他服务交互,可以避免权限问题导致的作业执行失败。委托分两类,工作空间委托和作业委托,作业委托优先级高于工作空间委托。
a.工作空间委托:工作空间级别的全局委托,适用于该空间内的所有作业。可在数据开发模块的配置>委托配置,配置工作空间委托。
b.作业委托:适用于单个作业级别。可在作业基本信息,配置作业委托。
- 当配置了执行用户后,会以执行用户的身份来启动作业。可在作业基本信息,配置执行用户。