Docker 快速部署单节点 NiFi 1.27

前言

Apache NiFi 是一款强大的数据集成工具,专注于数据的采集、处理和分发,具有可视化流程设计、强大的容错能力等特点。通过 Docker 部署可以快速搭建环境,省去复杂的配置步骤。本文介绍如何使用官方镜像部署单节点 NiFi 1.27。

环境准备

  • 已安装 Docker 环境(Docker 安装指南)
  • 确保 Docker 服务正常运行
    • Linux/Mac:systemctl start dockerservice docker start
    • Windows:在服务中启动 Docker 服务

部署步骤

1. 拉取 NiFi 1.27 官方镜像

打开终端/命令提示符,执行以下命令拉取官方镜像:

docker pull apache/nifi:1.27.0

2. 启动 NiFi 容器

使用以下命令启动 NiFi 容器,包含端口映射和数据持久化配置:

docker run -d --name nifi-1.27 -p 8080:8080 -e NIFI_WEB_HTTP_PORT=8080 -v nifi_data:/Users/xuyy/tool/docker/nifi-1.27.0/data apache/nifi:1.27.0

3. 验证部署

  • 访问 Web 界面:打开浏览器,访问 http://localhost:8080/nifi(首次启动可能需要 1-2 分钟,耐心等待)
  • 查看容器日志:若启动异常,可通过日志排查问题:
    docker logs -f nifi-1.27
    

关键配置说明

1. 端口映射

若默认的 8080 端口被占用,可修改端口映射参数,示例如下(改用 9090 端口):

docker run -d --name nifi-1.27 -p 9090:9090 -e NIFI_WEB_HTTP_PORT=9090 apache/nifi:1.27.0
  • 格式说明:-p 主机端口:容器端口,需保证两者一致
  • 访问地址相应变为:http://localhost:9090/nifi

2. 数据持久化

通过 -v 参数挂载数据卷,确保容器删除后配置和数据不丢失:

  • 使用 Docker 数据卷(推荐)
    nifi_data 是自动创建的 Docker 数据卷,会持久化存储 NiFi 的配置、状态和流数据:
    -v nifi_data:/opt/nifi/nifi-1.27.0/data
    
  • 挂载本地目录
    也可直接映射到本地目录(需替换为实际路径):
    -v /本地绝对路径:/opt/nifi/nifi-1.27.0/data
    

3. 自定义配置

如需修改 NiFi 核心配置(如 nifi.properties),可通过挂载文件覆盖默认配置:

docker run -d --name nifi-1.27 -p 8080:8080 -v /本地路径/nifi.properties:/opt/nifi/nifi-1.27.0/conf/nifi.properties apache/nifi:1.27.0
  • 先从容器中复制默认配置文件:docker cp nifi-1.27:/opt/nifi/nifi-1.27.0/conf/nifi.properties /本地路径/
  • 修改后再通过上述命令挂载生效

常见问题

  1. 容器启动失败
    检查端口是否被占用(Linux:netstat -tulpn | grep 8080;Windows:netstat -ano | findstr "8080"),或通过日志定位错误。

  2. 权限问题
    挂载本地目录时,若出现权限错误,可临时调整目录权限:chmod 777 /本地路径(生产环境需谨慎设置)。

  3. 数据丢失风险
    未配置数据卷挂载时,删除容器会导致所有配置和流程丢失,务必做好持久化配置。

总结

通过 Docker 部署 NiFi 1.27 无需复杂的环境配置,几步即可完成搭建。根据实际需求调整端口、数据挂载方式和配置文件,可快速适配开发测试或生产环境,适合新手快速上手 NiFi。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/96058.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/96058.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/96058.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php redis 中文API文档手册

php redis 中文API文档手册 Redis::__construct构造函数 $redis new Redis();connect, open 链接redis服务 参数 host: string,服务地址 port: int,端口号 timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间) 注: 在redis.conf中也有时间&#xf…

Windows环境下实现GitLab与Gitee仓库代码提交隔离

1. 背景 在开发工作中,我需要同时使用2个代码托管平台:公司统一使用的GitLab和个人学习用的 Gitee。我希望能够在同一台电脑上方便地管理和提交两个平台的代码,实现账号和提交内容的有效隔离。 前提条件: 已安装Git Bash、Tort…

深度解析:抗辐射电源芯片 ASP4644S2B 在空间环境中的单粒子效应表现

摘要:随着航天技术的飞速发展,空间电子设备面临着日益复杂和严苛的辐射环境挑战。单粒子效应(SEE)作为辐射环境对半导体器件影响的主要形式之一,极大地影响着航天电子系统的可靠性和稳定性。本文通过系统梳理国科安芯推…

【RabbitMQ】如何在 Ubuntu 安装 RabbitMQ

1. 安装部署 Erlang 环境 RabbitMQ 是一套开源的消息队列服务软件,基于 Erlang 语言编写的,因此,在安装 RabbitMQ 之前,我们需要先部署 Erlang 环境,再安装 RabbitMQ 环境(就像运行 Java 程序,…

vue集成高德地图API工具类封装

import axios, { AxiosInstance, AxiosResponse } from axios;// 高德地图 API 响应基础结构 interface AMapResponse {status: string;info: string;infocode: string; }// 逆地理编码响应结构 interface RegeoResponse extends AMapResponse {regeocode: {formatted_address:…

手写 Tomcat

文章目录02 初出茅庐:构造一个极简的 HttpServerRequestResponseHttpServer03 动态 Response : 按照规范构造返回流04 各司其职的 Server : 拆分响应模块与处理模块HttpConnectorHttpProcessor05 Server 性能提升: 设计多个 ProcessorHttpConnectorHttpProcessor06 规范化: 引入…

嵌入式ARM架构学习3——启动代码

一 汇编补充&#xff1a;area reset, code, readonlycode32entry;mov r0, #4 ; r0 4;mov r1, r0 ; r1 r0;mov r2, r1, lsl #1 ;r2 r1 << 1 乘2;mov r3, r1, lsr #1 ;r3 r1 >> 1 除2;mov r4, r1, ror #2;mov r0, #100 ;100是十进制 转为16进制赋值给十进制;mov …

PNPM库离线安装方案

以下是几种可行的方案&#xff0c;推荐优先使用方案一。 方案一&#xff1a;使用离线镜像&#xff08;Offline Mirror&#xff09; - 最优雅、最PNPM的方式 这是 PNPM 官方推荐的处理离线环境的方式。它会在内网电脑上创建一个所有依赖包的压缩文件&#xff08;tarball&#x…

[Wit]CnOCR模型训练全流程简化记录(包括排除BUG)

stepfile:step 00 创建数据集 目录结构 yourproject -data --myset ---images #存放训练图片 ---dev.tsv #测试标签 tsv格式 图片文件名\t内容 ---train.tsv #训练标签 tsv格式 图片文件名\t内容 -train_config.json -train_config_gpu.json -fix_cnocr_encoding.py step 01 创…

Sklearn(机器学习)实战:鸢尾花数据集处理技巧

1.数据集的使用&#xff1a;先使用load导入鸢尾花数据&#xff1a;from sklearn.datasets import load_iris然后定义一个函数来查看鸢尾花数据集&#xff1a;数据集的获取&#xff1a;iris load_iris()print(鸢尾花的数据集&#xff1a;\n,iris)使用iris[DESCR]来查看数据及里…

【企业微信】接口报错:javax.net.ssl.SSLHandshakeException

详细报错信息 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target原因 关于qyapi…

光子芯片驱动的胰腺癌早期检测:基于光学子空间神经网络的高效分割方法

光子芯片驱动的胰腺癌早期检测:基于光学子空间神经网络的高效分割方法 1 论文核心概念 本文提出了一种基于集成光子芯片的光学子空间神经网络(Optical Subspace Neural Network, OSNN),用于胰腺癌的早期检测与图像分割。其核心思想是利用光子芯片的高并行性、低延迟和低能…

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)

锋哥原创的Scikit-learn Python机器学习视频教程&#xff1a; 2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 课程介绍 本课程主要讲解基于Scikit-learn的Python机器学习知识&#xff0c;包括机器学习概述&#xff0c;特征工程(数据…

【Python】pytorch安装(使用conda)

# 创建 PyTorch 虚拟环境 conda create -n pytorch_env python3.10# 激活环境 conda activate pytorch_env# 安装 PyTorch&#xff08;CPU版本&#xff09; conda install pytorch torchvision torchaudio cpuonly -c pytorch# 或者安装 GPU 版本&#xff08;如果有NVIDIA显卡&…

ThreeJS骨骼示例

<html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>骨骼动画混合演示</title><style>body {margin: 0;padding: …

python + Flask模块学习 1 基础用法

目录 Flask 的主要作用 常用扩展 Flask 基本用法 1. 安装 Flask&#xff08;再安装个postman用来调试测试API哈 2. 最小化应用示例 3. 运行应用 Flask 是一个轻量级的 Python Web 框架&#xff0c;它简洁灵活&#xff0c;适合快速开发 Web 应用和 API。它被称为 "微…

python数据可视化之Matplotlib(8)-Matplotlib样式系统深度解析:从入门到企业级应用

作者&#xff1a;浪浪山齐天大圣 描述&#xff1a;深入探索Matplotlib样式系统的核心机制&#xff0c;掌握从基础样式到企业级样式管理的完整解决方案引言 在数据可视化的世界里&#xff0c;一个优秀的图表不仅要准确传达数据信息&#xff0c;更要具备专业的视觉效果。Matplotl…

3.HTTP/HTTPS:报文格式、方法、状态码、缓存、SSLTLS握手

HTTP/HTTPS&#xff1a;报文格式、方法、状态码、缓存、SSL/TLS握手 1. HTTP报文格式 1.1 HTTP请求报文(Request) GET /api/v1/users HTTP/1.1 // 请求行&#xff1a;方法、URI、协议版本 Host: api.example.com // 请求头 (Headers) User-Agent: Mozil…

【慢教程】Ollama4:ollama命令汇总

ℹ️教程说明 Ollama 是一款轻量级本地大模型部署工具&#xff0c;使用广泛&#xff0c;且容易上手&#xff0c;适合作为AI技术的入门。 &#x1f9e9;教程各部分链接&#xff1a; 第一课&#xff1a;ollama运行原理介绍及同类工具对比 ollama运行原理介绍及同类工具对比&am…

JAVA Predicate

简单来说&#xff0c;当我明确知道此次判断的逻辑时就可以直接使用if&#xff0c;但是我这次的判断逻辑可能会随着某个参数变化的时候使用Predicate比如当我想要判断某长段文字中是否包含list<String> 中的元素&#xff0c;并且包含的元素个数大于 list<String>最后…