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