cdh添加第三方服务

以自己写的一个java程序为例

1. 制作parcel包

1.1 我的程序结构如下:

[root@cdh3 nameaddress-1.0]# cd nameaddress/
[root@cdh3 nameaddress]# ll
总用量 9420
drwxr-xr-x 2 root root    4096 2月   1 16:54 bin
drwxr-xr-x 2 root root    4096 2月   1 16:55 conf
drwxr-xr-x 5 root root    4096 2月   1 16:55 data
drwxr-xr-x 2 root root    4096 2月   1 16:55 lib
drwxr-xr-x 2 root root    4096 2月   1 16:55 logs
-rw-r--r-- 1 root root 9623369 2月   1 16:53 nohup.out
1.2 在我程序的同级目录下,建立meta目录:

[root@cdh3 nameaddress-1.0]# ll
总用量 8
drwxr-xr-x 2 root root 4096 2月   1 16:18 meta
drwxr-xr-x 7 root root 4096 2月   1 16:56 nameaddress
1.3 meta目录的文件为:

[root@cdh3 nameaddress-1.0]# cd meta/
[root@cdh3 meta]# ll
总用量 8
-rw-r--r-- 1 root root 143 2月   1 16:07 env.sh
-rw-r--r-- 1 root root 757 2月   1 16:06 parcel.json
其中env.sh主要设置环境变量,parcel.json定义

env.sh:

#!/bin/bash
NAMEADDRESS_DIRNAME=${PARCEL_DIRNAME:-"nameaddress-1.0"}
export NAMEADDRESS_HOME=$PARCELS_ROOT/$NAMEADDRESS_DIRNAME/nameaddress
parcel.json:

{
  "schema_version":     1,
  "name":               "nameaddress",
  "version":            "1.0",

  "depends":            "CDH (>= 5.2), CDH (<< 6.0)",

  "setActiveSymlink":   true,

  "scripts": {
    "defines": "env.sh"
  },

  "packages": [
    { "name":    "nameaddress",
      "version": "1.0+nameaddress1.0"
    }
  ],

  "components": [
    { "name":     "nameaddress",
      "version":  "1.0+nameaddress1.0",
      "pkg_version":  "1.0+nameaddress1.0"
    }
  ],

  "provides": [
        "nameaddress"
  ],

  "users": {
     "nameaddress": {
       "longname"    : "root",
       "home"        : "/root/",
       "shell"       : "/bin/bash",
       "extra_groups" : [ ]
     }
  },

  "groups": [
  ]
}

1.4 nameaddress的上级目录为nameaddress-1.0,要和parcel.json对应

 tar -czvf Bootservice-1.0-el7.parce nameaddress-1.0  生成parcel

1.5 去https://github.com/cloudera/cm_ext  下载工具,使用命令

$ python make_manifest/make_manifest.py <path to directory>
其中目录为parcel文件的上级目录
 生成manifest.json,根据manifest.json的hash值生成sha文件


2.制作csd文件




展开阅读全文

没有更多推荐了,返回首页