搬瓦工部署 Apache NiFi 数据集成平台教程

Apache NiFi 是由美国国家安全局(NSA)开发并开源的数据集成平台,专门用于自动化数据在不同系统之间的流转。NiFi 提供了基于浏览器的可视化界面,用户可以通过拖拽方式设计数据流,无需编写代码即可完成数据的采集、转换和分发。本文将介绍如何在搬瓦工 VPS 上通过 Docker 部署 Apache NiFi。部署前请确保已安装 Docker 和 Docker Compose

一、NiFi 功能特性

  • 可视化数据流设计:通过 Web 界面拖拽处理器和连接器来构建数据管道。
  • 300+ 内置处理器:涵盖文件操作、HTTP 请求、数据库读写、Kafka 交互、JSON/XML/CSV 转换等。
  • 数据溯源:记录每条数据从进入到离开系统的完整轨迹。
  • 背压机制:内置流量控制,防止下游系统被数据洪流淹没。
  • 优先级队列:支持按照数据属性设置处理优先级。
  • 安全传输:支持 SSL/TLS 加密和多种认证方式。

二、系统要求

  • 操作系统:Ubuntu 20.04+ 或 Debian 11+。
  • 内存:至少 2GB,推荐 4GB 以上(NiFi 基于 Java,内存需求较高)。
  • 磁盘:至少 10GB 可用空间。
  • Docker:已安装 Docker 和 Docker Compose。

建议选择搬瓦工 THE PLAN 或更高配置。购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net

三、创建项目目录

mkdir -p /opt/nifi/{conf,state,database,flowfile,content,provenance,logs}
cd /opt/nifi

四、编写 Docker Compose 配置

cat > /opt/nifi/docker-compose.yml <<'EOF'
version: '3.8'

services:
  nifi:
    image: apache/nifi:latest
    restart: always
    ports:
      - "8443:8443"
    environment:
      SINGLE_USER_CREDENTIALS_USERNAME: admin
      SINGLE_USER_CREDENTIALS_PASSWORD: your_admin_password_here
      NIFI_WEB_HTTPS_PORT: 8443
      NIFI_JVM_HEAP_INIT: 512m
      NIFI_JVM_HEAP_MAX: 1g
    volumes:
      - nifi_conf:/opt/nifi/nifi-current/conf
      - nifi_state:/opt/nifi/nifi-current/state
      - nifi_db:/opt/nifi/nifi-current/database_repository
      - nifi_flowfile:/opt/nifi/nifi-current/flowfile_repository
      - nifi_content:/opt/nifi/nifi-current/content_repository
      - nifi_provenance:/opt/nifi/nifi-current/provenance_repository
      - nifi_logs:/opt/nifi/nifi-current/logs

volumes:
  nifi_conf:
  nifi_state:
  nifi_db:
  nifi_flowfile:
  nifi_content:
  nifi_provenance:
  nifi_logs:
EOF

注意:密码必须至少 12 个字符,且包含大小写字母和数字。

五、启动服务

cd /opt/nifi
docker compose up -d

NiFi 启动较慢,通常需要 1-2 分钟。查看日志确认启动状态:

docker compose logs -f nifi

启动完成后访问 https://your_server_ip:8443/nifi(注意是 HTTPS),使用设置的用户名和密码登录。

六、构建第一个数据流

以下是一个从 HTTP API 获取数据并写入文件的简单示例:

  • 从工具栏拖拽一个 Processor 到画布上,选择 InvokeHTTP
  • 双击处理器进入配置,设置 Remote URL 为目标 API 地址。
  • 再拖拽一个 PutFile 处理器,设置输出目录。
  • 将 InvokeHTTP 的 Response 关系连接到 PutFile。
  • 右键选择 Start 启动整个数据流。

七、常用处理器介绍

  • GetFile / PutFile:文件系统的读取和写入。
  • InvokeHTTP:发送 HTTP 请求并获取响应。
  • ExecuteSQL / PutDatabaseRecord:数据库查询和写入。
  • ConvertRecord:数据格式转换(JSON、CSV、Avro 等)。
  • PublishKafka / ConsumeKafka:Kafka 消息的生产和消费。
  • SplitJson / EvaluateJsonPath:JSON 数据的拆分和字段提取。
  • RouteOnAttribute:根据数据属性进行条件路由。

八、JVM 内存调优

根据 VPS 内存调整 NiFi 的 JVM 参数:

# 2GB VPS
NIFI_JVM_HEAP_INIT: 512m
NIFI_JVM_HEAP_MAX: 1g

# 4GB VPS
NIFI_JVM_HEAP_INIT: 1g
NIFI_JVM_HEAP_MAX: 2g

九、数据备份

NiFi 的数据流定义存储在 flow.json.gz 文件中:

# 备份数据流配置
docker cp $(docker compose ps -q nifi):/opt/nifi/nifi-current/conf/flow.json.gz /opt/nifi/backup_flow_$(date +%Y%m%d).json.gz

十、常见问题

无法访问 Web 界面

NiFi 默认使用 HTTPS,确保使用 https:// 前缀访问。如果使用自签名证书,浏览器会提示安全警告,选择继续访问即可。

处理器报错

右键点击处理器选择 View status history 查看历史状态,在 Bulletin Board 中查看具体的错误消息。

总结

Apache NiFi 是企业级的数据集成平台,特别适合需要在多个系统之间自动化传输和转换数据的场景。它的可视化设计方式降低了数据管道构建的门槛。如果你需要代码化的数据编排方案,可以参考 Apache AirflowDagster。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。