一、nifi基本配置

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

192.168.0.120 master
192.168.0.121 slave1
192.168.0.122 slave2

具体请参考《Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。

2. 安装zookeeper分布式集群

具体请参考《Kafka:ZK+Kafka+Spark Streaming集群环境搭建(八)安装zookeeper-3.4.12

3. 下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/nifi/1.7.1/nifi-1.7.1-bin.tar.gz
到/opt下

tar -zvxf nifi-1.7.-bin.tar.gz
cd nifi-1.7.
chown -R spark:spark /opt/nifi-1.7.1

4. jdk配置:nifi新版本要求jdk版本必须1.8以上
目录:bin/nifi.env.sh
export JAVA_HOME=/home/user/opt/jdk1.8.0_144

注意:忽略此项配置,nifi将使用系统默认Java环境启动。

5. nifi运行内存配置
目录:conf/bootstarp.conf
java.arg.2=-Xms512m
java.arg.3=-Xmx20480m

备注:
1)根据服务器性能合理设置nifi内存

2)这里是虚拟机内存较小,就没有设置

6. nifi日志配置
目录:conf/logback.xml
7. nifi端口配置
目录:conf/nifi.properties
nifi.web.http.port=18083

默认为8080端口。

8. nifi基本命令
nifi.sh start 启动
nifi.sh stop 关闭
nifi.sh restart 重启
nifi.sh status 状态
以上基本配置完成,可单节点模式启动nifi。

二、nifi集群配置

基于上边的配置基础之上,修改nifi配置:./conf/nifi.properties

1. 首先在master节点上配置./conf/nifi.properties

》》》》》》》》》》》》》Master配置》》》》》》》》》》》》》》

#设置WEB UI横幅文字
nifi.ui.banner.text=Nifi-1.7.-Cluster
#是否启动内置的zk
nifi.state.management.embedded.zookeeper.start=false
#配置zk节点
nifi.zookeeper.connect.string=master:,slave1:,slave2:
#这里配置为非安全性的nifi
nifi.cluster.protocol.is.secure=false
nifi.cluster.is.node=true
nifi.cluster.node.address=master
nifi.cluster.node.protocol.port=
nifi.cluster.node.protocol.threads=
nifi.cluster.node.event.history.size=
nifi.cluster.node.connection.timeout= sec
nifi.cluster.node.read.timeout= sec
nifi.cluster.firewall.file= #各节点Site2Site协议接口配置
nifi.remote.input.host=master
nifi.remote.input.secure=false
nifi.remote.input.socket.port=
nifi.remote.input.http.enabled=true
nifi.remote.input.http.transaction.ttl= sec #web ui
nifi.web.http.host=master
nifi.web.http.port=

》》》》》》》》》》》》》Master配置》》》》》》》》》》》》》》

2. 然后在slave1,slave2节点上配置./conf/nifi.properties

scp -r /opt/nifi-1.7./* root@slave1:/opt/nifi-1.7.1/
scp -r /opt/nifi-1.7.1/* root@slave2:/opt/nifi-1.7.1/

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

3.启动

./bin/nifi.sh start

三个节店(master、slave1、slave2)都要执行。

执行完后验证是否都正常启动方式:

1)JPS查看是否三台服务器都包含进程:

[spark@master bin]$ jps
RunNiFi
NiFi
QuorumPeerMain
Jps

2)同时查看三台服务器的NIFI运行状态:

master:

[spark@master bin]$ ./nifi.sh status

Java home: /opt//jdk1.8.0_171
NiFi home: /opt/nifi-1.7. Bootstrap Config File: /opt/nifi-1.7./conf/bootstrap.conf -- ::, INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port , PID=

slave1:

[spark@slave1 bin]$ ./nifi.sh status

Java home: /opt//jdk1.8.0_171
NiFi home: /opt/nifi-1.7. Bootstrap Config File: /opt/nifi-1.7./conf/bootstrap.conf -- ::, INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port , PID= [spark@slave1 bin]$

slave2:

[spark@slave2 bin]$ ./nifi.sh status

Java home: /opt//jdk1.8.0_171
NiFi home: /opt/nifi-1.7. Bootstrap Config File: /opt/nifi-1.7./conf/bootstrap.conf -- ::, INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port , PID= [spark@slave2 bin]$

3)此时,如果正常运行集群模式,在通过UI在一个IP下创建一个Process,则在另外两个节店也可以查看到该节店创建的内容。

master

slave1

slave2

参考:《https://blog.csdn.net/qq_19397397/article/details/80007806》

三、开发资料

nifi中配置的表达式用法规则,参考官网:https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html

Nifi表达式和自定义处理器(基于HDP):https://my.oschina.net/u/2306127/blog/858960

nifi官网Blog(文章不多,但内容比较实用):https://blogs.apache.org/nifi/

nifi官网Doc(用户[user,admin,developer]向导,用法):https://nifi.apache.org/docs.html别人个人博客(介绍了个别组件用法):https://bryanbende.com/categories.html,https://www.nifi.rocks/archives/

最新文章

  1. [C]遍历目录下所有文件
  2. 获取Python安装目录
  3. Linux设计准则
  4. 套路!从Ruby 到 Cocoapods的发布
  5. 菜鸟学sql,Oracle数据库结构比较
  6. POJ 1300 Door Man(欧拉回路的判定)
  7. [LeetCode] Missing Number (A New Questions Added Today)
  8. (转载)一步一步学Linq to sql系列文章
  9. Struts2中ActionContext及ServletActionContext介绍(转载)
  10. async/await的多线程问题
  11. Ubuntu下的iptux和Windows下的飞秋互传文件
  12. DOM 节点 课程表
  13. 网页静态化技术Freemarker的详细介绍
  14. hdu 5636 搜索 BestCoder Round #74 (div.2)
  15. C++ DWORD 转byte char 数组、指针
  16. ipython介绍及使用
  17. WMware虚拟机中连接ios真机
  18. 剑指offer(1)二维数组的查找
  19. 纯css loading动效
  20. 使用Ztree新增角色和编辑角色回显

热门文章

  1. oracle切割以,隔开的数字字符串
  2. Reveal逆向工程:分析任意iOS应用的UI界面
  3. 如果想使用GIT Extentions的解决冲突窗口,安装时必须勾选KDIFF3
  4. android应用程序签名(转)
  5. PL/SQL Developer中调试oracle的存储过程
  6. One-wire Demo on the STM32F4 Discovery Board
  7. Go Session 使用简介
  8. 调试工具BTrace 的使用--例子
  9. Running Jenkins behind Nginx
  10. Java 获取客户端IP