当前位置:   article > 正文

nifi,minifi,efm,nifi-registry安装使用笔记

minifi

简介

本博客记录最简单的nifi,minifi,efm,nifi-registry 安装配置步骤,以及使用实例,本人使用的是Mac环境,各组件都是java版本。

一,安装nifi

下载nifi:https://nifi.apache.org/download.html
本人使用的是nifi-1.8.0-bin.tar.gz ,解压到自己的目录下。

后台启动:

bin/nifi.sh start
  • 1

启动过程比较慢,启动完成后可通过浏览器访问nifi
http://localhost:8080/nifi/
nifi界面

二,安装nifi-registry

nifi-registry 是一个版本仓库,为nifi,efm中定义的dataflow提供版本管理的功能。
下载地址:https://nifi.apache.org/registry
本文使用的是 nifi-registry-0.5.0-bin.tar.gz,解压到自己的目录下。

后台启动:

bin/nifi-registry.sh start
  • 1

启动完成后可通过浏览器访问nifi-registry
http://localhost:18080/nifi-registry
通过界面创建一个bulket,提供给nifi 和efm使用
在这里插入图片描述在这里插入图片描述现在可以在nifi中添加nifi-registry的信息
在这里插入图片描述在这里插入图片描述

三,安装EFM

官方介绍文档:https://docs.cloudera.com/cem/1.0.0/index.html
CEM: 全称Cloudera Edge Management,包括minifi ,EFM两部分。
EFM:全称Edge Flow Manager。

CEM下载地址:
https://archive.cloudera.com/CEM/centos7/1.x/updates/1.0.0.0/CEM-1.0.0.0-centos7-tars-tarball.tar.gz
下载完成后解压到自己的目录下。
在 ./CEM/centos7/1.0.0.0-54/tars 目录下
解压
efm-1.0.0.1.0.0.0-54-bin.tar.gz ,
minifi-0.6.0.1.0.0.0-54-bin.tar.gz
到自己电脑的合适路径下。

备注:
1,这里提供的minifi版本为0.6.0.1.0.0.0-54,截止到今天(2019-10-29)apache官网上提供的minifi只到0.5.0版本。0.5.0版本的minifi无法和EFM交互,必须使用0.6.0.1.0.0.0-54及其以上版本。
在这里插入图片描述
2,minifi-toolkit-0.6.0.1.0.0.0-54-bin.tar.gz
minifi是轻量级的nifi,本身没有提供图形化界面。可以在nifi中定义数据流,对数据流创建template,保存为xml文件,通过minifi-toolkit 工具将template 的xml转换为config.yml文件替换掉minifi conf/config.yml,这样minifi就可以运行在nifi中为他定义的数据流了。EFM为minifi提供了更好的监控,数据流定义,数据流分发的功能,不建议使用minifi-toolkit。

3.1 安装EFM

创建efm需要使用的的mysql 库,用户。

CREATE DATABASE EFM DEFAULT CHARACTER SET utf8;
CREATE USER 'efm'@'%' IDENTIFIED BY 'efm';
GRANT ALL PRIVILEGES ON *.* TO 'efm'@'%' WITH GRANT OPTION;
commit;
  • 1
  • 2
  • 3
  • 4

备注:默认配置下efm会在该库中存储大量数据,本人低配版MacBook pro 运行服务一周后硬盘资源不足{{{(>_<)}}} (mysql EFM库50GB数据,日志100GB)。

配置 EFM:
修改efm conf/efm.properties 文件

# nifi-registry
efm.nifi.registry.enabled=true
efm.nifi.registry.url=http://localhost:18080
#bucketId,bucketName 二选一配置一个,具体值是上文nifi-registry中新建的bulket信息
efm.nifi.registry.bucketId=
efm.nifi.registry.bucketName=test
efm.nifi.registry.flowRefreshInterval=60s


# Database Properties
efm.db.url=jdbc:mysql://localhost:3306/EFM
efm.db.driverClass=com.mysql.jdbc.Driver
efm.db.username=efm
efm.db.password=efm
efm.db.maxConnections=5
efm.db.sqlDebug=false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

配置完成后 后台启动efm

bin/efm.sh start
  • 1

访问地址:
http://localhost:10080/efm/ui
在这里插入图片描述

3.2 安装minifi

修改minifi conf/bootstrap.conf 文件

nifi.c2.enable=true
nifi.c2.rest.url=http://localhost:10080/efm/api/c2-protocol/heartbeat
nifi.c2.rest.url.ack=http://localhost:10080/efm/api/c2-protocol/acknowledge
nifi.c2.agent.heartbeat.period=1000
nifi.c2.agent.class=iot-test
nifi.c2.agent.identifier=agent-1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改后后台启动minifi

bin/minifi.sh start
  • 1

启动成功后,minifi会向efm注册,发送心跳信息,efm界面会有心跳记录信息。
在这里插入图片描述

四,使用实例

介绍:
通过efm在minifi上部署一个tcp服务端,minifi接受到数据后发送给nifi。
nifi:
拖拽一个input_port ,一个processGroup。
在这里插入图片描述
双击minifi_process_group ,进入group里面,定义接受到数据后处理的步骤。

在这里插入图片描述将顶层的input_port 连接到proceess_group,启动所有组件。
在这里插入图片描述
双击minif_process_group,将定义的数据流上传到nifi_registory。
在这里插入图片描述在这里插入图片描述
efm:
选择指定某个class,点击open。
在这里插入图片描述拖拽一个ListenTCP,配置端口。
在这里插入图片描述
拖拽一个REMOTE_PROCESS_GROUP,配置地址为nifi地址:
在这里插入图片描述配置传输协议是http
在这里插入图片描述
连接两者,port_id 为nifi 顶层input_port的id
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述完成后右上角publish该dataflow到minifi
在这里插入图片描述minifi conf/config.yml 文件内容会更新。 通过nc localhost 7710 发送tcp数据到minifi
在这里插入图片描述可以在nifi上看到数据了。
在这里插入图片描述

nifi-registry上也有nifi,minifi提交的数据流了。
在这里插入图片描述

下面是本人新建的学习交流群,欢迎大家进群,请不要发送与行业不相关的信息,尊重彼此的时间精力!
Alt

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号