NiFI 集群介绍

NiFi集群架构

NiFi采用Zero-Master Clustering范例。集群中的每个节点对数据执行相同的任务,但每个节点都在不同的数据集上运行。其中一个节点自动选择(通过Apache ZooKeeper)作为集群协调器。然后,群集中的所有节点都会向此节点发送心跳/状态信息,并且此节点负责断开在一段时间内未报告任何心跳状态的节点。此外,当新节点选择加入群集时,新节点必须首先连接到当前选定的群集协调器,以获取最新流。如果群集协调器确定允许该节点加入(基于其配置的防火墙文件),则将当前流提供给该节点,并且该节点能够加入群集,假设节点的流副本与群集协调器提供的副本匹配。如果节点的流配置版本与群集协调器的版本不同,则该节点将不会加入群集。

NiFI 集群搭建

环境

1、系统:CentOS 7.4

2、Java环境:JDK8

学会搭建ZooKeeper集群,更加容易理解NIFI集群搭建,请参考:【ZooKeeper】ZooKeeper安装及简单操作

使用NiFi集成的zookeeper

由于本例搭建三个节点的集群,且在一台机器上搭建,所以不同节点的相同功能端口会不同,如果搭建在三台机器上,IP不同,那么不同节点的相同功能端口可以相同

1、准备三个单机NIFI实例,如下:

2、编辑实例中,conf/zookeeper.properties文件,不同节点改成对应内容,内容如下:

1 # 1节点2181,2节点2182,1节点21832 clientPort=121813 initLimit=104 autopurge.purgeInterval=245 syncLimit=56 tickTime=20007 dataDir=./state/zookeeper8 autopurge.snapRetainCount=309

10 # 不同机器使用不同IP11 server.1=127.0.0.1:12888:1388812 server.2=127.0.0.1:14888:1588813 server.3=127.0.0.1:16888:17888

3、在单个实例中新建文件夹,${NIFI_HOME}/state/zookeeper,在此文件夹中新建文件myid,且输入内容如下:

1 1

节点2内容为:2,节点3内容为:3

4、编辑节点conf/nifi.properties文件,修改内容如下:

1 ####################2 # State Management #3 ####################4 nifi.state.management.configuration.file=./conf/state-management.xml5 nifi.state.management.provider.local=local-provider6 nifi.state.management.provider.cluster=zk-provider7 # 指定此NiFi实例是否应运行嵌入式ZooKeeper服务器,默认是false8 nifi.state.management.embedded.zookeeper.start=true9 nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties10

11 # web properties #12 nifi.web.war.directory=./lib13 # HTTP主机。默认为空白14 nifi.web.http.host=127.0.0.115 # HTTP端口。默认值为808016 nifi.web.http.port=1800117

18 # cluster node properties (only configure for cluster nodes) #19 # 如果实例是群集中的节点,请将此设置为true。默认值为false20 nifi.cluster.is.node=true21 # 节点的完全限定地址。默认为空白22 nifi.cluster.node.address=127.0.0.123 # 节点的协议端口。默认为空白24 nifi.cluster.node.protocol.port=2800125

26 # 指定在选择Flow作为“正确”流之前等待的时间量。如果已投票的节点数等于nifi.cluster.flow.election.max.candidates属性指定的数量,则群集将不会等待这么长时间。默认值为5 mins27 nifi.cluster.flow.election.max.wait.time=1 mins28 # 指定群集中所需的节点数,以便提前选择流。这允许群集中的节点避免在开始处理之前等待很长时间,如果我们至少达到群集中的此数量的节点29 nifi.cluster.flow.election.max.candidates=130

31 # cluster load balancing properties #32 nifi.cluster.load.balance.host=33 nifi.cluster.load.balance.port=1634234

35 # zookeeper properties, used for cluster management #36 # 连接到Apache ZooKeeper所需的连接字符串。这是一个以逗号分隔的hostname:port对列表37 nifi.zookeeper.connect.string=127.0.0.1:12181,127.0.0.1:12182,127.0.0.1:1218338 nifi.zookeeper.connect.timeout=3 secs39 nifi.zookeeper.session.timeout=3 secs40 nifi.zookeeper.root.node=/nifi

节点2,节点3内容跟节点1相同,只是nifi.web.http.port,nifi.cluster.node.protocol.port,nifi.cluster.load.balance.port,这三个端口区分开来,避免端口重复

5、编辑实例conf/state-management.xml文件,内容如下:

1

2 zk-provider

3 org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider

4 127.0.0.1:12181,127.0.0.1:12182,127.0.0.1:12183

5 /nifi

6 10 seconds

7 Open

8

6、启动三个实例,浏览器输入:127.0.0.1:18001,访问即可

注意:如果不是在本机上访问,需要把配置中,配置本机IP(Linux命令:ifconfig)

nifi.web.http.host=192.168.1.2

nifi.cluster.node.address=192.168.1.2

使用外部zookeeper

2、准备三个单机NIFI实例

3、实例中,conf/zookeeper.properties文件,可以不用编辑

4、编辑节点conf/nifi.properties文件

1 ####################2 # State Management #3 ####################4 nifi.state.management.configuration.file=./conf/state-management.xml5 nifi.state.management.provider.local=local-provider6 nifi.state.management.provider.cluster=zk-provider7 # 指定此NiFi实例是否应运行嵌入式ZooKeeper服务器,默认是false8 # 连接外部的时候,设置为false9 nifi.state.management.embedded.zookeeper.start=false10 nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties11

12 # web properties #13 nifi.web.war.directory=./lib14 # HTTP主机。默认为空白15 nifi.web.http.host=127.0.0.116 # HTTP端口。默认值为808017 nifi.web.http.port=1800118

19 # cluster node properties (only configure for cluster nodes) #20 # 如果实例是群集中的节点,请将此设置为true。默认值为false21 nifi.cluster.is.node=true22 # 节点的完全限定地址。默认为空白23 nifi.cluster.node.address=127.0.0.124 # 节点的协议端口。默认为空白25 nifi.cluster.node.protocol.port=2800126

27 # 指定在选择Flow作为“正确”流之前等待的时间量。如果已投票的节点数等于nifi.cluster.flow.election.max.candidates属性指定的数量,则群集将不会等待这么长时间。默认值为5 mins28 nifi.cluster.flow.election.max.wait.time=1 mins29 # 指定群集中所需的节点数,以便提前选择流。这允许群集中的节点避免在开始处理之前等待很长时间,如果我们至少达到群集中的此数量的节点30 nifi.cluster.flow.election.max.candidates=131

32 # cluster load balancing properties #33 nifi.cluster.load.balance.host=34 nifi.cluster.load.balance.port=1634235

36 # zookeeper properties, used for cluster management #37 # 连接到Apache ZooKeeper所需的连接字符串。这是一个以逗号分隔的hostname:port对列表38 # 连接外部的时候使用外部ZooKeeper连接地址39 nifi.zookeeper.connect.string=127.0.0.1:12181,127.0.0.1:12182,127.0.0.1:1218340 nifi.zookeeper.connect.timeout=3 secs41 nifi.zookeeper.session.timeout=3 secs42 nifi.zookeeper.root.node=/nifi

5、编辑实例conf/state-management.xml文件,内容如下:

zk-provider

org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider

127.0.0.1:12181,127.0.0.1:12182,127.0.0.1:12183

/nifi

10 seconds

Open

6、启动三个实例,浏览器输入:127.0.0.1:18001,访问即可

注意:如果不是在本机上访问,需要把配置中,配置本机IP(Linux命令:ifconfig)

nifi.web.http.host=192.168.1.2

nifi.cluster.node.address=192.168.1.2

问题排查

1、查看nifi日志

$NIFI_HOME/log/nifi-app.log

2、查看官网文档

http://nifi.apache.org/docs.html  ==》 Admin Guide  ==》 搜索cluster或其他关键字

nifi集群_【NIFI】 Apache NiFI 集群搭建相关推荐

  1. hadoop 多节点集群_设置Apache Hadoop多节点集群

    hadoop 多节点集群 我们正在分享有关在基于Linux的机器(多节点)上安装Apache Hadoop的经验. 在这里,我们还将分享我们在各种故障排除方面的经验,并在将来进行更新. 用户创建和其他 ...

  2. go连接mysql集群_什么是MySQL集群-Go语言中文社区

    一.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committe ...

  3. 多台电脑集群运算_一个分布式服务器集群架构方案

    深圳市添越智创科技有限公司 店铺链接:shop114963t53p883.1688.com 移动互联应用的快速发展和云计算.大数据应用的拓展和深化,数据中心已由传统的大型机.小型机逐步转移到x86服务 ...

  4. innodb 集群_部署MySQL InnoDB集群以实现高可用性

    innodb 集群 In this article, I am going to explain how we can deploy the MySQL InnoDB cluster. InnoDB ...

  5. auot lisp 选择集处理_请教个选择集排序的问题 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    本帖最后由 vlisp2012 于 2013-10-9 16:27 编辑 通过ssget获得的选择集的排序,无法很好的控制,每次下面材的时候,都是通过fence,画线选择板块,很繁琐. 我想编辑一个程 ...

  6. 多目标函数 matlab 粒子群_【LIBSVM】基于群智能优化算法的支持向量机 (SVM) 参数优化...

    前言 支持向量机 (Support Vector Machines,SVM) 有两个重要参数:一个是正则化系数(c),一个是核参数(g,高斯核函数).针对这两个参数的优化,在libsvm工具箱的基础上 ...

  7. pythonqq交流群_使用 Python 获取 QQ 群投票数据

    在浏览器中直接打开会出现"载入中,请稍后..."的字眼.这是因为没有登陆,没有权限 在这里登陆自己的QQ,再访问就可以了 此时的选项是不可点击的,因为网页检测你的浏览环境不是手机界 ...

  8. python发信息给微信群_利用Python转发微信群通知信息

    案例:作为班长需要实时转发年级群发布的有关通知.文件到自己班的微信群,这种无脑的重复性工作适用于编写脚本自动帮忙处理. 准备:服务器(可选择阿里云学生服务器).itchat模块.一颗爱折腾的心 代码: ...

  9. Apache NiFi系统管理员指南 [ 四 ]

    系统属性 核心属性 State管理 H2设置 FlowFile存储库 交换管理(Swap Management) 内容存储库 (Content Repository) 文件系统内容存储库属性 (Fil ...

  10. Apache nifi 集群安装

    原文地址:https://pierrevillard.com/2016/08/13/apache-nifi-1-0-0-cluster-setup/ 文章写的很好了,步骤性的英文写得也比较易懂,原样搬 ...

最新文章

  1. “战狼”无人直升机完成高原靶试
  2. 商汤科技开源DAVIS2017视频目标分割冠军代码
  3. mysql可视化工具-navicat的下载和使用
  4. 【git】【eclipse】 误操作“忽略(ignore)文件”,取消忽略文件操作
  5. 柱状图中最大的矩形—leetcode84
  6. 手把手教你全家桶之React(一)
  7. es6(五):函数的扩展
  8. php集成环境怎么打开,PHP集成开发环境PhpStorm快速入门指南(二):打开一个项目...
  9. 云计算到底是谁发明的?
  10. 手机访问电脑文件_手机直接访问电脑文件,不用数据线,方便快速
  11. 5.7(财务应用程序:计算将来的程序)
  12. 安装neptune-client库
  13. win10 Abaqus2018 血泪备注
  14. 无穷级数求和7个公式_这些的公式是怎么得到的?
  15. C基础:45道练习题汇总(初学者加油)
  16. THUOCL:清华大学开放中文词库
  17. html关于布局的说法错误的是,关于可迁移技能以下说法错误的是
  18. LiveMe x TiDB丨单表数据量 39 亿条,简化架构新体验
  19. 青少年软件编程等级考试 python-青少年软件编程等级考试Python(一级)
  20. 东北大学和西南大学计算机,东北大学、东南大学、中南大学、西南大学、西北大学,哪个最好?...

热门文章

  1. 数据删掉了怎么恢复?数据删除后还能恢复吗
  2. ~《概率论》~贝叶斯公式
  3. Active Boot Disk(windows系统维护工具箱)官方光盘镜像版V19.0 | 电脑维修工具箱软件下载
  4. GPC凝胶色谱理论和应用(三)
  5. 传染病模型SIS及相应的matlab代码
  6. vue 使用ace编辑器
  7. 20款最优秀的JavaScript编辑器 哪家强你说了算!
  8. linux开发板访问互联网 笔记本win10中虚拟机
  9. Eclipse解压后打开报错javaw.exe in your current PATH
  10. 爬取豆瓣电影top250