nifi -- cluster

预先安装:

1.      JDK1.8_66安装与环境变量设置

 

错误定位:

tail -fn300 /usr/nifi/nifi-1.0.0./logs/nifi-app.log


1.      修改各节点主机名,修改/etc/hosts文件内容。


10.0.2.15 master

10.0.2.4 slave1

10.0.2.5 slave2


2.       安装zookeeper分布式集群,设置各节点zookeeper环境变量。

3.      上传nifi-1.1.0-bin.tar.gz到/usr/nifi目录下,解压缩文件。

4.      配置nifi的环境变量。

5.      修改bin/nifi-env.sh文件,去掉export JAVA_HOME前的#号,加上JDK安装目录路径。

6.      修改conf/nifi.properties文件。

 

#设置WEB UI横幅文字

nifi.ui.banner.text=Nifi-1.1.0-Cluster

 

#不使用内部zookeeper启动Nifi

nifi.state.management.embedded.zookeeper.start=false

 

#各节点Site2Site协议接口配置

nifi.remote.input.host=master

nifi.remote.input.secure=false

nifi.remote.input.socket.port=10443

 

nifi.web.http.host=master

nifi.web.http.port=8081

 

nifi.cluster.protocol.is.secure=false

nifi.cluster.is.node=true

nifi.cluster.node.address=master

nifi.cluster.node.protocol.port=11443

 

#zookeeper连接字符串

nifi.zookeeper.connect.string=master:2182,slave1:2182,slave2:2182

 

7.      拷贝nifi-1.1.0文件夹到两个从节点主机上。

scp -r /usr/nifi/nifi-1.1.0 root@slave1:/usr/nifi/

scp -r /usr/nifi/nifi-1.1.0 root@slave1:/usr/nifi/

8.      拷贝/etc/profile文件到两个从节点,主要是省掉改环境变量的步骤。

9.      修改两个从节点的nifi.properties文件,修改其中的主机名称。


Slave1:

nifi.remote.input.host=slave1

nifi.web.http.host=slave1

nifi.cluster.node.address=slave1

Slave2:

nifi.remote.input.host=slave2

nifi.web.http.host=slave2

nifi.cluster.node.address=slave2


10.  启动分布式zookeeper。

各节点执行zkServer.sh start。启动后使用zkServer.sh status查看各节点状态,正常情况下会有一个leader其他的全部是follower。

11.  启动各节点nifi。

nifi.sh start

12.  检查nifi启动情况

A.     jps检查各节点是否启动了Nifi和RunNifi进程

B.     netstat –apnt | grep java确认nifi相关端口启动:WEB UI端口8081,集群通信socket端口11443,Site2Site协议端口10443

13.  确认12无误后,进入WEB UI界面。

实机直接浏览器输入nifi分布式集群任节点的IP加WEB UI端口8082,http://<host>:<port>/nifi;

虚拟机如果使用NAT方式,需要映射端口,使用http://127.0.0.1:<映射端口>/nifi,使用桥接方式与实机描述一样。


03-15
<think>好的,我现在需要帮助用户了解如何部署或者介绍Apache NiFi。首先,用户之前询问过Kafka Eagle的部署,现在转向NiFi,可能是对数据流处理工具感兴趣。我需要先确定用户的需求是什么,是部署指南还是基本介绍,或者是两者都有。 用户的问题比较简短:“请使用中文回答我或者给我介绍一下: nifi”。看起来用户希望得到关于NiFi的介绍,可能包括其功能、架构、核心概念以及部署步骤。由于用户之前询问的是部署,可能对部署过程也有兴趣,但这次的问题更倾向于介绍,所以需要平衡两者的内容。 首先,我应该从Apache NiFi的基本定义开始,说明它是一个数据流管理工具,用于自动化数据流。然后介绍核心功能,比如数据路由、转换、监控等。接下来需要提到它的优势,比如用户友好的界面、高可扩展性、安全性等。这部分需要简明扼要,让用户快速了解NiFi的价值。 然后,可能需要解释NiFi的架构,包括Web服务器、Flow Controller、处理器、连接队列等组件。这部分需要结构清晰,帮助用户理解NiFi的内部工作原理。核心概念的介绍也很重要,比如FlowFile、Processor、Connection、Process Group等,这些是用户使用NiFi时必须了解的基本元素。 接下来,如果用户需要部署指南,可以简要介绍部署步骤,包括环境准备、下载安装、配置、启动和验证。不过用户的问题主要是“介绍”,所以部署部分可能需要简化,但考虑到用户之前询问过部署Kafka Eagle,可能还是需要包含一些基本的部署步骤,作为参考。 此外,需要注意用户可能的应用场景,比如物联网数据处理、ETL流程、日志聚合等,这能帮助用户更好地理解NiFi的实用性。最后,注意事项部分可以提到版本兼容性、资源监控、安全性配置等,确保用户在使用时考虑到这些因素。 需要检查之前的回答结构,用户之前的回复使用了分章节的方式,带有代码块和步骤说明,所以这次也应该保持结构清晰,分点列出,方便阅读。同时,要使用中文,避免技术术语过于晦涩,必要时进行解释。 还需要确认NiFi的最新版本和下载地址是否正确,比如当前最新版本是否为1.23.2,官网链接是否有效。如果有不确定的信息,需要查阅资料确保准确性。另外,启动命令和配置文件的位置需要准确,避免误导用户。 总结,回答应包括: 1. NiFi的定义和核心功能 2. 主要优势 3. 系统架构 4. 核心概念 5. 部署步骤(简要) 6. 应用场景 7. 注意事项 确保每个部分简洁明了,符合用户的需求,并且遵循之前的格式,如代码块、步骤分点等。同时,语言要口语化,避免过于生硬的技术描述,让用户容易理解。</think>### **Apache NiFi 简介与部署指南** Apache NiFi 是一个强大的**数据流自动化工具**,专为数据采集、转换、路由和监控设计。它提供可视化界面,支持复杂数据流的编排与管理,适用于物联网、日志处理、ETL等场景。以下是详细介绍与部署方法: --- ### **一、核心功能与优势** 1. **核心功能** - **数据路由与转换**:动态路由数据,支持格式转换(如JSON ↔ CSV)。 - **可扩展性**:通过自定义处理器(Processor)扩展功能。 - **数据溯源**:追踪数据从源头到目标的完整链路。 - **流量控制**:背压机制(Backpressure)防止系统过载。 - **安全机制**:支持SSL/TLS加密、Kerberos认证、细粒度权限控制。 2. **主要优势** - **可视化编排**:拖拽式界面简化复杂流程设计。 - **高容错性**:数据持久化存储,故障后自动恢复。 - **集群支持**:横向扩展提升吞吐量。 --- ### **二、系统架构** 1. **核心组件** - **Web Server**:提供用户界面和API。 - **Flow Controller**:调度处理器执行。 - **Processor**:执行数据操作(如读取、写入、转换)。 - **Connection**:处理器间的数据队列,支持优先级设置。 - **Repository**:存储元数据(FlowFile元信息、内容、操作日志)。 2. **数据流动模型** - **FlowFile**:数据单元,包含内容(Payload)和属性(Metadata)。 - **Process Group**:逻辑分组,支持嵌套(类似文件夹)。 --- ### **三、部署步骤** #### **1. 环境准备** - **Java环境**:JDK 1.8+,配置`JAVA_HOME`。 - **内存要求**:建议至少4GB内存。 #### **2. 下载与安装** ```bash # 下载NiFi(以1.23.2版本为例) $ wget https://downloads.apache.org/nifi/1.23.2/nifi-1.23.2-bin.tar.gz # 解压并安装 $ tar -xzf nifi-1.23.2-bin.tar.gz -C /opt $ cd /opt/nifi-1.23.2 ``` #### **3. 基础配置** 编辑`conf/nifi.properties`: ```properties # Web端口配置 nifi.web.http.port=9090 # 集群配置(单机可跳过) nifi.cluster.is.node=true nifi.cluster.node.address=<本机IP> # 内存调整(按需修改) java.arg.2=-Xms2g java.arg.3=-Xmx4g ``` #### **4. 启动与验证** ```bash $ bin/nifi.sh start # 启动服务 $ tail -f logs/nifi-app.log # 查看日志 ``` 访问 `http://<服务器IP>:9090/nifi`,默认无密码,首次登录需设置管理员凭证。 --- ### **四、核心概念与操作示例** 1. **常用处理器(Processor)** - `GetFile`:从本地读取文件。 - `PutKafka`:写入Kafka。 - `ReplaceText`:正则替换内容。 - `InvokeHTTP`:调用REST API。 2. **简单数据流示例** - **目标**:从文件夹读取CSV文件,过滤特定列后写入HDFS。 - **步骤**: 1. 拖拽`GetFile`处理器,配置输入目录。 2. 连接`QueryRecord`处理器,使用SQL筛选字段。 3. 连接`PutHDFS`处理器,设置HDFS路径。 --- ### **五、应用场景** 1. **物联网数据采集** - 从传感器读取数据,清洗后存储到数据库。 2. **日志聚合** - 收集多服务器日志,统一写入Elasticsearch。 3. **ETL管道** - 从MySQL抽取数据,转换后加载到数据仓库(如Hive)。 --- ### **六、注意事项** 1. **资源监控** - 监控堆内存使用(通过`jconsole`或NiFi界面)。 2. **安全加固** - 启用HTTPS,配置权限策略(`conf/authorizers.xml`)。 3. **版本兼容性** - 确认NiFi版本与依赖服务(如Kafka、Hadoop)兼容。 --- 通过上述步骤,您可以快速部署Apache NiFi并构建高效的数据流管道。如需深入使用,建议参考[官方文档](https://nifi.apache.org/docs.html)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值