创建Cloudera地块时无法使用“替代”键

时间:2017-01-17 21:26:56

标签: cloudera cloudera-manager

我尝试在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

中描述

1 个答案:

答案 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