我尝试在parcels.json中使用“alternative”键。然而,Cloudera的包裹验证员将其踢出了:
==>无法识别的字段“scripts.alternatives”。已识别的字段为“[define,_defines]”
我的parcel.json文件是:
{
"schema_version": 1,
"name": "Runtime",
"version": "2",
"setActiveSymlink": true,
"depends": "",
"replaces": "MATLAB_Runtime",
"conflicts": "",
"provides": [
"mine"
],
"scripts": {
"defines": "env.sh",
"alternatives": "alternatives.json"
},
"packages": [
{ "name" : "Runtime",
"version": "2"
}
],
"components": [
{ "name" : "mine",
"version" : "2",
"pkg_version": "2",
"pkg_release": "2"
}
],
"users":{},
"groups":[]
}
json在没有“alternative”键的情况下验证正常。
parcels.json的架构在One Engineer’s Experience with Parcel中描述。
validates.json内容在The alternatives.json file
中描述答案 0 :(得分:2)
因此:https://github.com/cloudera/cm_ext/wiki/The-parcel.json-file
脚本 目前,Cloudera Manager只能指定和使用一个脚本,尽管将来可能会发生变化。 定义:此脚本源自包裹影响的每个进程的环境(基于标记)。即使parcel不需要定义任何环境变量,也必须提供此脚本(脚本本身可以为空)。 “定义”脚本可以实现真正的工作,使进程可以访问包裹的内容。这是一个重要的主题,讨论[这里](包裹定义脚本)。
defines
块内只能有scripts
个选项。
alternatives.json
文件,因此(https://github.com/cloudera/cm_ext/wiki/The-alternatives.json-file)是可选的,并且将由scm代理静默使用。
将验证器(https://github.com/cloudera/cm_ext/tree/master/validator)与-a
选项一起使用,以确保您的文件正确无误。
-a,--alternatives-json <FILE> The alternatives.json file to validate