• nifi从入门到实战(保姆级教程)——环境篇


    背景:

    公司领导决定将各种基础数据的导入从代码中分离出来,用Apache Nifi替换。使开发者们更关注在业务上,而不用关心基础的由来。
    Apache Nifi对于整个团队都是一个全新的工具,之前大家都没有接触过,甚至是第一次听说,我就是其中之一。但是很幸运的是,领导指派我去熟悉这个工具,按实际应用场制作DEMO,并分享给团队。

    环境准备
    • windows:
      1、下载nifi zip包:https://nifi.apache.org/download.html ,选择自己想要的版本。
      注意:1.14版本开始,默认为有身份认证,不允许匿名登陆。
      2、将zip包解压到本地的任意目录。解压后如下图
      image
      注意:路径最好是全英文,否则会出现一些启动不了的异常

    3、修改conf(可选)。为了避免端口冲突,可以将/conf/nifi.properties中https.port修改为你指定的其他端口。默认是8443。
    image
    另一个是/conf/bootstrap.conf,这里主要修改JVM memory settings,
    image
    默认是512M。
    4、启动nifi.双击/bin/run-nifi.bat文件
    image

    出现以下画面即为成功
    image
    注意:如果要退出nifi,千万不要直接点上图右上角的“关闭”按钮。因为这样并不会完全退出nifi,它的进程还在运行,端口还是占用着的,所以下次再次运行时就会出错。只能杀进程,或是重启电脑了。正确的操作是ctrl+c停止它
    image

    5、打开nifi UI.(距离启动nifi大概30秒后)
    image
    打开/logs/nifi-app.log,搜索username,如下图
    image
    输入相应的user和password后就可以登陆成功了
    image

    • Linux
      linux下就用docker compose演示吧
      1、准备好linux和docker环境。这一步大家可以自行搜索
      2、定义docker-compose.yml文件,输入以下内容

      点击查看代码
      version: '3'
      
      services:
        nifi:
          cap_add:
            - NET_ADMIN # low port bindings
          image: apache/nifi:1.16.1
          container_name: nifi-dev
          ports:
            - 18443:18443 # HTTPS interface
          environment:
            NIFI_WEB_HTTPS_PORT: "18443"
          volumes:
            - ./drivers:/opt/nifi/nifi-current/drivers
            - ./database_repository:/opt/nifi/nifi-current/database_repository
            - ./flowfile_repository:/opt/nifi/nifi-current/flowfile_repository
            - ./content_repository:/opt/nifi/nifi-current/content_repository
            - ./provenance_repository:/opt/nifi/nifi-current/provenance_repository
            - ./state:/opt/nifi/nifi-current/state
            - ./logs:/opt/nifi/nifi-current/logs
            - ./nifi-conf:/opt/nifi/nifi-current/conf
      

      这里指定nifi 镜像为官方docker image 1.16.1版本,端口为18443。注意:ports和enviroment两个设置都不能少。然后把容器里的相应目录挂载到了宿主机上docker-compose.yml文件所在目录。这样做的好处就是即使是启动新的镜像实例,原来的数据还是在的,这样也就实现了数据持久化。
      因为nifi启动需要读取conf目录下的各种配置,现在这样conf目录下是空的。所以启动时会报nifi.propeties等文件不存在。
      有两种解决方案:一是把conf目录下的所有文件复制到nifi-conf目录下。二是conf目录挂载方式变下,如下:

      点击查看代码
            
      version: '3'
      
      services:
        nifi:
          cap_add:
            - NET_ADMIN # low port bindings
          image: apache/nifi:1.16.1
          container_name: nifi-dev
          ports:
            - 18443:18443 # HTTPS interface
          environment:
            NIFI_WEB_HTTPS_PORT: "18443"
          volumes:
            - ./drivers:/opt/nifi/nifi-current/drivers
            - ./database_repository:/opt/nifi/nifi-current/database_repository
            - ./flowfile_repository:/opt/nifi/nifi-current/flowfile_repository
            - ./content_repository:/opt/nifi/nifi-current/content_repository
            - ./provenance_repository:/opt/nifi/nifi-current/provenance_repository
            - ./state:/opt/nifi/nifi-current/state
            - ./logs:/opt/nifi/nifi-current/logs
            - nifi-conf:/opt/nifi/nifi-current/conf
      
      volumes:
        nifi-conf:
      
      
      

      这样是把conf目录挂载在/var/lib/docker/volumes目录下,这样可以自动生成相应的文件。
      3、启动nifi.docker-compose up (加上-d 就是后台运行,在终端不会输出日志)
      在日志中nifi-app.log中查找 username,获取相应的user 和password,然后登陆nifi。此步骤与windows相同

    至此,nifi的环境已经准备好了。下一篇来讲讲nifi的身份验证。

  • 相关阅读:
    Linux查看物理CPU个数、核数、逻辑CPU个数
    【完结】利用 Composer 完善自己的 PHP 框架(三)——Redis 缓存
    端口被占用
    选择器
    Css四种样式
    PT与PX,em(%)区别
    tomcat报404
    webservice调用接口,接口返回数组类型
    音频与视频标签
    表单标签2
  • 原文地址:https://www.cnblogs.com/ilyyin/p/16407917.html
Copyright © 2020-2023  润新知