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的身份驗證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章