zoukankan      html  css  js  c++  java
  • 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.1-bin.tar.gz
    cd nifi-1.7.1
    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.1-Cluster
    #是否启动内置的zk
    nifi.state.management.embedded.zookeeper.start=false 
    #配置zk节点
    nifi.zookeeper.connect.string=master:2181,slave1:2181,slave2:2181
    #这里配置为非安全性的nifi
    nifi.cluster.protocol.is.secure=false 
    nifi.cluster.is.node=true
    nifi.cluster.node.address=master
    nifi.cluster.node.protocol.port=9999
    nifi.cluster.node.protocol.threads=10
    nifi.cluster.node.event.history.size=25
    nifi.cluster.node.connection.timeout=5 sec
    nifi.cluster.node.read.timeout=5 sec
    nifi.cluster.firewall.file=
    
    #各节点Site2Site协议接口配置
    nifi.remote.input.host=master
    nifi.remote.input.secure=false
    nifi.remote.input.socket.port=10443
    nifi.remote.input.http.enabled=true
    nifi.remote.input.http.transaction.ttl=30 sec
    
    #web ui
    nifi.web.http.host=master
    nifi.web.http.port=18083

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

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

    scp -r /opt/nifi-1.7.1/* 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
    2162 RunNiFi
    2178 NiFi
    1413 QuorumPeerMain
    2330 Jps

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

    master:

    [spark@master bin]$ ./nifi.sh status
    
    Java home: /opt//jdk1.8.0_171
    NiFi home: /opt/nifi-1.7.1
    
    Bootstrap Config File: /opt/nifi-1.7.1/conf/bootstrap.conf
    
    2018-08-06 22:46:44,950 INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port 45484, PID=2178

    slave1:

    [spark@slave1 bin]$ ./nifi.sh status
    
    Java home: /opt//jdk1.8.0_171
    NiFi home: /opt/nifi-1.7.1
    
    Bootstrap Config File: /opt/nifi-1.7.1/conf/bootstrap.conf
    
    2018-08-06 22:46:17,152 INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port 37934, PID=1870
    
    [spark@slave1 bin]$ 

    slave2:

    [spark@slave2 bin]$ ./nifi.sh status
    
    Java home: /opt//jdk1.8.0_171
    NiFi home: /opt/nifi-1.7.1
    
    Bootstrap Config File: /opt/nifi-1.7.1/conf/bootstrap.conf
    
    2018-08-06 22:46:26,521 INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port 41473, PID=1689
    
    [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/

  • 相关阅读:
    python 时间差计算
    NET Framework 4.5新特性 (一) 数据库的连接加密保护。
    某表含有N个字段超精简模糊查询方法
    清空javascript数组数据
    IIS无法连接LocalDb,怎么办?
    jquery 模糊查询对象属性
    解释杨中科随机数为什么会骗人?
    前端Js传递数组至服务器端
    javascript获取客户端默认打印机
    水晶报表注意的问题
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/9431834.html
Copyright © 2011-2022 走看看