能力开发指导手册
(文档审核标准:1、请按照模板填空,模板段落不要新增、修改、删除,以防说明书的生成出问题,没有内容的填写无即可
2、建议多使用图片样例说明)
能力说明
功能简介
(描述此能力的基本用途,提供的功能,及处理逻辑的概要说明,请删除此行说明)
配置参数
参数名称 |
参数类型 |
是否必填 |
默认值 |
参数说明 |
样例参数1 |
json |
是 |
无 |
JSON类参数要在这里说明子参数的含义 |
样例参数2 |
文本 |
否 |
xxxx |
- |
输入简介
(描述输入数据的类型,格式,重要字段,是否强依赖前置能力等重要信息,请删除此行说明)
输入数据样例
输出简介
(描述输出数据的类型,格式,输出内容的含义等重要信息,请删除此行说明)
输出数据样例
相关能力
(该能力强依赖的前置能力或后置能力,常用搭配使用的能力等,请删除此行说明)
参考指标
(说明能力的性能品标,比如cpu、内存、线程数不同的情况下能力处理数据的性能,处理不同的数据类型的准确率等,请删除此行说明)
附加说明
隐藏参数说明
海量大数据分析平台是基于nifi框架的开放平台,能力以独立的nar包形式存在,每个nar可以包含一个或多个能力(请参考能力开发指导手册了解平台结构)
ARTIFACTID影响什么
海量大数据平台下的能力包命名方式是nifi- ARTIFACTID -nar.nar,每个人注册的ARTIFACTID不能相同
ARTIFACTID要注意什么
在能力开始开发前需要使用nifi-processor-bundle-archetype生成工程结构,在此过程中ARTIFACTID即固定,所以需要先去能力中心注册能力,确认ARTIFACTID是否被占用(注册时可以先不填码云地址)
多个能力使用一个ARTIFACTID怎么办
一个nar包含多个能力的情况下,注册时只要ARTIFACTID和码云地址都一样即可
一、开发环境
开发环境: JDK 1.7以上,apache maven,java开发工具(如:idea)
二、运行环境
Windows/Linux平台,JDK,nifi
JDK安装:略
nifi环境单机部署:
1.从官网下载二进制可运行版本,本文档以nifi-1.2.0-bin.zip为例
2.解压nifi-1.2.0-bin.zip到你要安装的目录,例如:d:\work\nifi-1.2.0
3.修改配置文件nifi-1.2.0/conf/nifi.properties中的ip和端口
nifi.web.http.host=127.0.0.1
nifi.web.http.port=8080
4.启动停止服务
- Windows版: 运行 nifi-1.2.0\bin目录下的run-nifi.bat
- Linux版: 运行nifi-1.2.0/bin目录下的nifi.sh,加参数start(./nifi.sh start)
- Linux版上 将nifi安装为服务的命令为:./nifi.sh install,安装后用命令service nifi start启动即可。
三、开发过程
此过程以idea开发工具为例,eclipse创建工程的步骤请参考使用eclipse创建工程
1.检查jdk和maven是否安装
2.创建Nifi Processor工程(以idea工具为例)
GroupId:org.apache.nifi
ArtifactId:nifi-processor-bundle-archetype
上图新添加artifactBaseName,填写这次插件的名称,要求与artifactId一样。
点击Finished后第一次创建工程会从远程maven仓库下载nifi-processor-bundle-archetype需要的jar包,下载完成后会自动创建如下图两个文件夹
nifi-processorDemo-processors
nifi-processorDemo-nar
查看下图三个pom文件可以发现三者的maven依赖关系,此处省略
自动生成的工程结构需要手动设置Sources Root、Resources Root 、Test Sources Root,请按下图标志依次设置
自动生成的pom文件中引用包没有注明version,打开nifi-processorDemo-processors下的pom.xml,添加公共类库的版本号,如下图
3.开发第一个Processor
自动创建的工程里默认生成MyProcessor样例,下面依照该样例创建一个新Processor
创建过程中Superclass填写:org.apache.nifi.processor.AbstractProcessor
默认创建好的类文件如图所示:
例如MyFirstProcessor功能为把配置的一个字符串或正则表达式替换为另一个字符串。
- 为MyFirstProcessor添加属性、Relation、初始化函数、相关描述信息
这样一个简单的Processor就开发完成了。
- 利用JUnit测试Processor
-
新建Junit Test Case
-
编写测试用例并测试
如果测试通过,进入下一步
5.打包与部署
配置文件的目录为:
nifi-processorDemo-processors\src\main\resources\META-INF\services\org.apache.nifi.processor.Processor
打开此文件,把Processor的全类名写到文件中:
在工程目录下,执行mvn package命令
或者直接使用idea的maven工具打包
打包成功,会在目录nifi-processorDemo-nar\target\下生成.nar文件(本例中生成文件为:nifi-processorDemo-nar-1.0-SNAPSHOT.nar)
6.部署
把nar文件copy到nifi-1.2.0\lib目录下,重启服务,即可使用了。
代码与Processor在界面上显示关系
对照前面代码与界面
PS:nifi rest api接口详细说明参考:https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
四、上传代码
在本地nifi上测试通过的代码可以上传到海量码云代码仓库,详情请见能力注册申请流程文档
1、检查jdk和maven是否安装
2、创建新的目录nifiProject
3、在新建目录下执行命令mvn archetype:generate
根据提示进行输入:注意选择nifi的版本,不要高于部署的版本
依次填写groupId、artifactId、artifactBaseName
groupId 填写 例如com.hylanda
artifactId 填写 例如closurewordfilter
artifactBaseName 跟artifactId填写一样的值
4、命令执行完成后,会生成项目目录以及项目文件
5、将创建好的工程转化为Eclipse工程
(注意执行过程中需要联网,会下载工程所需包文件)
1、 在工程目录下执行命令:mvneclipse:eclipse -DdownloadSources=true
2、 打开Eclips,导入工程。
点击完成按钮,工程就导入成功了。
注册成为开发者
- 在海量大数据分析平台上注册账号登陆后,依次点击 能力 -> 进入能力中心 -> 进入开发者平台,填写开发者信息成为开发者
注册能力
- 创建普通能力 (模板能力请参考模板能力说明)
提示:开发之前 建议 先取好ARTIFACTID名字,再使用此名字进行能力开发,避免冲突
2、注册成功后参考能力开发指导手册开发代码,上传码云
升级能力
1、开发者完成自测后,回到能力开发者页面升级上线能力
点击升级填入必填项:
能力上线必备物:
建议将说明放在根目录的doc文件下,上图中能力说明书地址的是 码云工程根目录/doc/doc_AskAnswerComment.md ,注意此地址是以文件夹目录方式拼接而成,不是浏览器里打开的url地址
- 发行版本:码云上的标签号,每次修改代码push到码云后,将当前要升级的代码new一个tag,使用此tag进行升级
- 更新说明:本次升级内容
2、能力的状态说明
提交升级后,能力会变成【构建中】状态,构建完成大概需要1~3分钟,变成【构建成功】状态后无需开发者进行任何操作
在能力查找页面按状态过滤时,开发者只需关注图中红框部分,非红框部分代表具体中间状态
- 构建失败:能力编译打包失败,点击审核日志可查看到具体失败原因
- 拒绝申请:本次升级请求被拒绝,点击审核日志可查看拒绝原因
- 审核失败:代表本次升级影响到nifi的正常启动
- 升级失败:异常情况,请联系管理员处理
页面当前版本号变成此次升级的版本号时,即代表升级成功,使用者在工作台点击升级按钮即可同步最新nar包
附加说明:
1、每天人工审核升级固定在16点,请在此之前提交申请,如需紧急升级请单独联系管理员
2、由于技术原因,升级不能全自动,管理员在审核通过后将联系开发者登陆指定画布验证此次升级,得到开发者确认后才会真正升级
注册模板能力
模板能力是一类使用模板工程的能力,它没有自己独立的nar包,通过模板的规则填入相应的参数使能力提供丰富的功能,目前主要用于海量内部团队的图形展示
注册完能力后准备好能力必备附加物即可直接升级(参考能力注册升级指导手册里的能力升级必备)
平台如何构建工程
平台拉取 指定码云地址 的 指定标签 下的代码(只用master分支),使用maven工具依赖码云地址根目录下的pom文件打包,标准pom文件如下:
上图的pom文件在创建工程时自动生成,artifactId不允许改变,该pom文件打包出来的nar名字就是nar-crawl-nar.nar
一个工程包含多个能力怎么升级
只需升级其中任何 一个 能力,不允许多个能力使用同一个标签升级(即同一工程的标签为一次性的,使用后无论此次升级成功与否,下次都需要打新的标签)
此步骤即升级之前的预演,确保升级和能力提供商的预期相同,能力提供商在接到管理员通知后登陆平台验证功能,具体步骤:
- 登陆平台,进入个人中心,点击工作室,选择能力升级验证-工作室
2、点击进入后将看到【能力升级验证任务】,点开后即可验证本次升级(管理员通知验证时已同步完nar包)