Apache Nifi技术实践V1.0


1 APACHE NIFI简述

Apache NiFi 是一个易于使用、功能强大而且可靠的数据处理和分发系统。Apache NiFi 是为数据流设计。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑。
官方网站:http://nifi.apache.org/

1.1 APACHE NIFI架构

架构:
在这里插入图片描述
集群管理器:
在这里插入图片描述

1.1.1 Nifi的核心概念

核心概念如下:
• FlowFile
FlowFile表示在系统中移动的每个对象,FlowFile由两部分组成:
o content 内容 既数据本身
o attributes 属性 每条数据带上的属性信息.以键值对的形式.
• FlowFile Processor
o FlowFile处理器,由它完成对数据的实际处理工作.包括但不限于对数据内容和属性的加载,路由,转换,输出等.
o 处理器最灵活之处在于处理器可以读写FlowFile的属性信息,并且用自带的领域特定语言(DSL)对属性进行编程.
• Connection
o 由Connections把各个处理器链接起来,从而形成数据处理流程的有向无环图(DAG图).也称数据流, NiFi 中的 Flow.
o Connection 同时充当处理器间的队列,并且队列的属性高度可配置.
o 这些队列可以配置优先级,可以在设置阈值,可以实现反压。
• Flow Controller
o 流控制器对用户不可见的.它充当维护处理器如何连接和管理所有处理器所使用的线程及其分配的重要角色。
o Flow Controller充当促进处理器之间FlowFiles交换的代理。
• Process Group
o 为了方便管理,把一组特定的处理器及其连接组成的 Flow 放到一个处理组中去,可以通过输入端口接收数据并通过输出端口发送数据。
o 以这种方式,处理组可以通过组合其他组来创建全新组,形成更加复杂的DAG图( Flow 流)。

1.2 APACHE NIFI的特点

Maxwell的主要特点:
• 基于web的用户界面
o 无缝体验设计、控制和监视
• 高度可配置的
o 数据丢失容错和保证交付
o 低延迟和高吞吐量
o 动态优先级
o 流可以在运行时修改
o 背压 Back presure
• 数据来源
o 从始至终跟踪数据流
• 为扩展设计
o 构建自己数据处理器
o 支持快速开发和有效的测试
• 安全
o SSL,SSH,HTTPS加密内容,等等……
o 可插拔的基于角色的验证/授权

1.3 APACHE NIFI应用场景

  1. 以托拉拽的方式,在可视化图形界面上实现数据流的传输。

2 APACHE NIFI部署

2.1 中间件版本选取

中间件名称版本号
CentOSCentOS 6.8
Apache Nifi1.11.4

2.2 环境准备

本次技术实践安装Apache Nifi集群,单独安装在hadoop102主机上

2.2.1 CentOS6.8

CentOS6.8安过程省略。预先创建用户/用户组zhouchen
预先安装jdk1.8.0_92 +

2.2.2 关闭防火墙-root

针对CentOS7以下
1.查看防火墙状态
service iptables status
2.停止防火墙
service iptables stop
3.启动防火墙
service iptables start

2.3 集群安装

2.3.1 Apache Nifi安装

1.下载Maxwell(安装包1.3G建议先下载再上传到服务器)

[zhouchen@hadoop102 software]$ wget http://mirror.bit.edu.cn/apache/nifi/1.11.4/nifi-1.11.4-bin.tar.gz

2.解压

[zhouchen@hadoop102 software]$ tar -zxvf nifi-1.11.4-bin.tar.gz -C /opt/module/

3.修改配置conf/nifi.properties

[zhouchen@hadoop102 nifi-1.11.4]$ vim conf/nifi.properties
nifi.web.http.port=8848  #默认端口是8080,这里我们改成8848

2.3.2 集群启动

后台启动:

[zhouchen@hadoop102 nifi-1.11.4]$ bin/nifi.sh start

前端启动:

[zhouchen@hadoop102 nifi-1.11.4]$ bin/nifi.sh run 

停止:

[zhouchen@hadoop102 nifi-1.11.4]$ bin/nifi.sh stop

首次启动会创建的文件和目录:
o content_repository
o database_repository
o flowfile_repository
o provenance_repository
o work 目录
o logs 目录
o 在conf目录中,将创建flow.xml.gz文件
在这里插入图片描述

2.3.3 安装检查

1.查看进程
[zhouchen@hadoop102 nifi-1.11.4]$ jps
4848 NiFi
5012 Jps
4830 RunNiFi
2.查看登陆页面
http://hadoop102:8848/nifi
在这里插入图片描述

3 APACHE NIFI基本操作

3.1 同步文件夹

3.1.1 基本操作

先写一个小例子,同步文件夹

  1. 从工具栏中拖入一个Processor,在弹出面板中搜索GetFIle,然后确认
    在这里插入图片描述在这里插入图片描述

  2. 配置GetFile,设置结束关系、输入目录、保留源文件,其他设置可以不动
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  3. 从工具栏中拖入一个Processor,在弹出面板中搜索PutFIle,然后确认,如第一步
    在这里插入图片描述

  4. 配置PutFile,设置结束关系、输出目录,其他设置可以不动,输出目录为空文件夹
    在这里插入图片描述在这里插入图片描述

  5. 将GetFIle与PutFIle关联起来,从GetFIle中心点击,拖拉到PutFIle上
    在这里插入图片描述

  6. 右键启动GetFIle与PutFIle,可以看到结果,输入目录中的文件同步到,输出目录中了
    在这里插入图片描述

3.1.2 注意事项

注意:这里有几个细节
1.从结果图看到原文件中的子目录export没有同步
2.有少量的文件没有同步成功
3.目标目录中原有的nifi-1.11.4-bin.tar.gz文件没有被覆盖
错误提示在画布上:
在这里插入图片描述
或者在错误日志中:
在这里插入图片描述

3.2 NIFI接入MYSQL数据

1.拖入一个processor,搜索mysql,然后配置mysql信息
在这里插入图片描述

2.再拖入一个processor,搜索putfile,配置输出目录
在这里插入图片描述

3.连接两个processor,并开启
在这里插入图片描述
4.查看/opt/software下输出的文件
在这里插入图片描述
可以看到导出的数据都是Json格式的

3.3 NIFI接入KAFKA数据

1.拖入一个processor,搜索mysql,并配置mysql信息
在这里插入图片描述

2.拖入一个processor,搜索publishkafka
在这里插入图片描述

3.配置publishkafka信息
在这里插入图片描述
4.到服务器开启kafka,并启动消费maxwell

5.连接两个processor,并启动

6.查看可以消费到数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值