告别复杂脚本!Apache NiFi 数据流处理与安装全攻略

1 综述

当在复杂系统中需要进行数据同步时,Apache NiFi 是一个理想的选择。作为一款强大的开源数据流自动化工具,NiFi 专为数据流管理和系统集成而设计,能够高效地在不同系统之间处理、传输和转换数据。正因如此,Apache NiFi 成为了企业数据集成和同步的首选工具,尤其适用于需要跨平台、跨系统处理复杂数据流的场景。

1.0  示意图

1.1 数据流自动化和可视化

NiFi 具有一个图形化的界面,可以帮助你直观地创建、设计和管理数据流。这使得对数据流的设计、监控和优化变得非常简便,不需要编写复杂的代码。

  • 数据流管理: 用户可以通过拖拽和连接组件来设计数据流。
  • 实时监控: NiFi 提供了详细的监控和报告功能,可以帮助你跟踪数据流的状态。

1.2灵活的数据流控制

NiFi 支持不同类型的数据流控制,使得你可以按需调整数据流的进程和处理逻辑:

  • 优先级控制: 支持按优先级处理不同的数据流。
  • 数据路由: 可以基于内容或其他条件路由数据,帮助你根据数据的属性或类型做出不同的处理。
  • 批处理与实时处理: 适合流式处理和批量处理场景。

1.3多种协议和数据源的支持

NiFi 支持各种数据协议和数据源的集成,包括但不限于:

  • 数据库: 支持 SQL 数据库、NoSQL 数据库的连接。
  • 消息队列: 支持 Kafka、JMS、AMQP 等消息中间件。
  • 文件系统: 支持读取和写入本地文件、HDFS、S3 等文件存储系统。
  • REST API: 支持与 RESTful API 集成,能够进行 HTTP 请求和响应处理。

1.4数据转换和清洗

NiFi 提供了多种数据处理和转换工具,例如:

  • 数据转换: 支持 JSON、XML、CSV、Avro、Parquet 等格式的转换。
  • 内容过滤: 可以对数据进行内容过滤、修改、清洗。
  • 格式化与解析: 可以解析复杂的结构化和非结构化数据,转换为所需的格式。

1.5灵活的扩展性

NiFi 拥有一个庞大的扩展生态系统,可以通过自定义处理器、模板、控制器等扩展其功能。你可以根据需要开发自定义的组件来满足特定需求。

1.6 安全性和权限管理

NiFi 提供了强大的安全性和权限控制,包括:

  • 身份验证: 支持基于证书、LDAP、Kerberos 等方式进行身份验证。
  • 细粒度授权: 可以对不同的用户和角色进行精细的权限管理,确保数据的安全访问。

1.7高可用性和集群支持

NiFi 支持多节点集群部署,可以提供更高的可用性和处理能力。在集群中,数据流可以跨多个节点进行分布式处理。

  • 负载均衡: 数据流可以在多个节点之间进行负载均衡,确保高效处理。
  • 自动故障恢复: 支持自动故障转移和恢复,确保数据流的持续性。

1.8易于集成

NiFi 可以轻松与其他大数据工具(如 Apache Hadoop、Apache Spark)集成,也能够与现代云平台(如 AWS、Azure、Google Cloud)进行连接和操作。

1.9数据流的审计和跟踪

NiFi 内置的审计日志功能可以帮助你记录和追踪所有数据流活动,包括数据处理、传输和错误。

  • 审计追踪: 记录每个数据流的详细操作日志。
  • 实时追踪: 通过 UI 查看数据流的当前状态,帮助进行实时监控和排查。
  • 2 核心概念

  • ·  Processor(处理器):执行具体的数据处理任务,如读取、转换、写入数据等。

    ·  FlowFile(数据流文件):携带数据和元数据的基本单元。

    ·  Connection(连接器):将不同的 Processor 连接在一起,控制数据流向和队列。

    ·  Controller Service(控制服务):提供共享资源配置(如数据库连接池)。

    ·  Data Provenance(数据溯源):记录和查看数据处理历史。

  • 3 下载安装

  • 3.1 下载地址

    下载地址:Download - Apache NiFi

    可以根据用户自己的需求选择对应的版本下载,支持linux、windows。今天我们主要针对windows。

  • 操作系统:win11。

    依赖环境:jdk11以上。

    下载后解压缩。

  • jdk如下截图

  • 3.2 jdk配置

    3.2.1配置步骤

  • 3.2.2高级系统设置

  • 3.2.3 环境变量

  • 3.2.4系统变量JAVA_HOME设置

  • 3.2.4编辑Path变量

  • 3NIFI启动

  • 3.1启动步骤

  • 3.2操作截图

    3.2.1bin目录

  • 3.2.2 执行窗口打开

  • 3.2.3 nifi启动

  • 3.2.4安装遇到的问题

  • 运行后报错Error:A JNI error has occurred please check your installation and try agair Exception in thread19Va.Java Runtimersion 65.0)this version of the Java Runtime only recognizes class file versions up(class filelang.ClassLoader.defineClassl(Native Method)atjava.defineclass(classLoader,iaya:756)java.an g0acs0acetlassLoader.defineClass(SecureClassLoader. java:142)ava.security.secureClass(URLClassLoader.iaya:468)ava.netat$100(URLClassLoaderjava:74)java. net.RLClassLoader,iava:369)lava.nelava.net.URlc.JRLClassLoader.iava:363)eged(NativeMethod)atjava.securiatassLoader. java:362)Java.net.URatjava:418)java.lang.ClassLoaoaderatoadClass(Launcher.java:355)sun. misc..atjava.lang.Cljava:351)oaderatsun. launcher.eckAndLoadMain(LauncherHelper.java:495) lang, UinsupportedclassversionError: org/apache/nifi/bootstrap/BootstrapProcess has been compiled by a more recent version of t to 52、0.

    这个错误提示表明你的 Java 版本不兼容,NiFi 要求的 Java 版本与你当前的 Java 运行环境不同。

  • 3.2.5问题解决方案

    检查 Java 版本

    打开命令提示符,输入以下命令查看当前 Java 版本:

    cmd

    java -version

    如果显示类似 java version "1.8.x",说明你的版本太低。NiFi 需要 JDK 11 或 JDK 17。

    下载安装 Java

    前往 Oracle JDK 下载页面 或使用开源版本 Azul Zulu 下载并安装 JDK 11 或 JDK 17。

    配置环境变量

    将 JAVA_HOME 设置为新安装的 JDK 路径,例如:C:\Program Files\Java\jdk-11

    添加 %JAVA_HOME%\bin 到 PATH 变量中。

    验证 Java 版本 重新运行

  • cmd

    复制指令

    java -version

    确认输出为 11.x.x 或 17.x.x。

    启动 NiFi 再次运行

    cmd

    复制指令

    nifi.cmd start

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值