当前位置:   article > 正文

基于Nifi 1.15.2 集群搭建_nifi更换master

nifi更换master

看了一下网上的文档大多数是基于比较早的版本的 ,把我的经验拿出来分享一下

一、NiFi是什么?

Apache NiFi 是为数据流设计,它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。简单地说,NiFi是为自动化系统之间的数据流而生。 这里的数据流表示系统之间的自动化和受管理的信息流。 基于WEB图形界面,通过拖拽、连接、配置完成基于流程的编程,实现数据采集、处理等功能。

上面这段话,写的很专业、很术语,翻译过来无非就是,Nifi是一个专门用来流转、处理数据的高级分发系统。说白了,就是用来倒腾数据。

举一个例子:当一个企业或者一个组织,大多数业务都采用信息化的时候,势必就要使用各式各样的软件系统(人事管理系统、财务管理系统、报表管理系统、物流管控系统等等),不同的软件系统来自于不同的厂家,它们设计的初衷就是各自为政,只负责自己的业务范围。现在用户需要想把各个业务块的数据整合(比如我想把财务、人事、考勤啥的串起来,方便统一查阅、统计),就必然要经过从各个系统中导出数据、汇总数据、处理数据冲突,这些事如果让人来干,结果可想而知,而Nifi就能充分解决这种场景。

总的来说,Nifi就是一个数据接入、处理、清洗、分发的系统(基于Web方式工作,后台在服务器上进行调度)

二、部署

从NiFi 1.0版本开始,NiFi采用Zero-Master集群模式。NiFi集群中的每个节点都对数据执行相同的任务,但每个节点都运行在不同的数据集上。Apache ZooKeeper选择其中一个节点作为集群协调器,故障转移由ZooKeeper自动处理。所有集群节点都会向集群协调器报告心跳和状态信息。集群协调器负责断开和连接节点。作为DataFlow管理器,您可以通过集群中任何节点的UI与NiFi集群进行交互。您所做的任何更改都会复制到集群中的所有节点,从而允许多个入口点进入集群。

本文不涉及https部分。内网不需要

下载安装包 放置到合适的位置

修改conf 下的nifi.properties

  1. > nifi.remote.input.host=10.0.2.226 #路由输入地址
  2. > nifi.remote.input.secure=false #默认是true
  3. > nifi.remote.input.socket.port=6344 #设置一个路由输入端口 默认没有
  4. > nifi.web.http.host=10.0.2.226 #设置一个web启动ip 也可以设置成0.0.0.0 ,但是这样的话在web界面就会无法分辨节点
  5. > nifi.web.http.port=6343 #默认为空 设置一个web端口
  6. > #nifi.web.https.host=127.0.0.1
  7. > #nifi.web.https.port=8443
  8. > #nifi.web.https.network.interface.default=
  9. > #nifi.web.https.ciphersuites.include=
  10. > #nifi.web.https.ciphersuites.exclude=
  11. 这几个默认打开的 不用https 注释掉
  12. > nifi.cluster.is.node=true #分布式集群中的节点 默认为false
  13. > nifi.cluster.node.address=10.0.2.226 #节点名称
  14. > nifi.cluster.node.protocol.port=6341 #端口
  15. nifi.cluster.load.balance.host=10.0.2.226 # cluster 负载均衡配置 按节点填写,不然会报错 这个似乎有时候可以配的一样,我曾经配置一样也启动过
  16. nifi.zookeeper.connect.string=10.0.3.12:2181 #zk的地址 可以用逗号分开写集群 例如: cdh01:2181,cdh02:2181,cdh03:2181
  17. nifi.kerberos.krb5.file=/etc/krb5.conf #按需填写 我有kerberos

注意有个大坑就是zk必须是3.6以上的新版本 折腾了好久 

还需要修改 state-management.xml

<property name="Connect String">10.0.3.12:2181</property>  # 添加zk的地址,似乎nifi里的配置不生效

修改 bootstrap.conf

  1. > java.arg.2=-Xms10240m
  2. > java.arg.3=-Xmx10240m
  3. 默认2048 太小

分发到所有节点上   需要按节点修改的配置修改成各节点的配置 

启动

nifi.sh start

登录到协调节点  ip:端口  

左上角是集群的节点数量 右上角可以打开查看集群详细信息 

nifi 3节点集群到这就初步搭建完毕 

下面是一些系统级别的最佳实践

最大文件句柄

NiFi 在任何时候都可能打开大量文件句柄。通过编辑/etc/security/limits.conf添加类似的内容来增加限制

* 硬文件 50000
* 软文件 50000

最大分叉进程

NiFi 可以配置为生成大量线程。要增加允许的数量,请编辑/etc/security/limits.conf

* 硬 nproc 10000
* 软 nproc 10000

您的发行版可能需要通过添加来编辑/etc/security/limits.d/90-nproc.conf

* 软 nproc 10000

增加可用 TCP 套接字端口的数量

如果您的流程将在短时间内建立和拆除大量套接字,这一点尤其重要。

sudo sysctl -w net.ipv4.ip_local_port_range="10000 65000"

设置套接字在关闭时保持 TIMED_WAIT 状态的时间

鉴于您希望能够快速设置和拆除新的套接字,您不希望您的套接字停留太久。阅读更多关于它并适应类似的东西是个好主意

对于内核 2.6

sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait="1"

对于内核 3.0

sudo sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait="1"

告诉 Linux 你永远不希望 NiFi 交换

交换对于某些应用程序来说非常棒。对于像 NiFi 这样总是想要运行的东西来说,这并不好。要告诉 Linux 你想换掉,你可以编辑/etc/sysctl.conf添加以下行

vm.swappiness = 0

对于处理各种 NiFi 存储库的分区,请关闭atime. 这样做会导致吞吐量的惊人增长。编辑/etc/fstab文件并为感兴趣的分区添加noatime选项。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/889199
推荐阅读
相关标签
  

闽ICP备14008679号