跳轉至

部署和維護 / 單機部署

本文主要介紹如何在服務器上直接安裝、部署單機版 DataFlux Func。

有關在 k8s 中使用 Helm 安裝 DataFlux Func,請參考 部署和維護 / 安裝部署 / Helm 部署

1. 下載安裝包

DataFlux Func 支持將所需安裝文件下載後,通過 U 盤等移動設備帶入無公網環境安裝的「安裝包」。

下載的「安裝包」本身附帶了自動安裝腳本、Docker 等,執行即可進行安裝(詳情見下文)

1.1 一鍵命令下載

對於 Linux、macOS 等系統,推薦使用官方提供的 shell 命令下載安裝包。

運行以下命令,即可自動下載 DataFlux Func 所需安裝文件,下載腳本會自動根據當前環境選擇下載 x86_64aarch64 架構版本:

安裝前請確認系統要求和服務器配置

Bash
1
/bin/bash -c "$(curl -fsSL docs.dataflux-func.com/download)"

如需要下載架構與最終安裝的服務器架構不相同,可以增加架構選項指定架構:

Bash
1
/bin/bash -c "$(curl -fsSL docs.dataflux-func.com/download)" -- --arch=x86_64
Bash
1
/bin/bash -c "$(curl -fsSL docs.dataflux-func.com/download)" -- --arch=aarch64

命令執行完成後,所有安裝文件都保存在自動創建的 dataflux-func-portable-{架構}-{版本號} 目錄下。

  • 對於需要將 DataFlux Func 安裝到無公網的服務器時,可以先在本機下載,之後將整個目錄通過 U 盤等移動存儲設備,或 scp 工具等複製到目標機器中
  • 對於需要將 DataFlux Func 安裝到可以訪問公網的服務器,直接在服務器上下載即可

1.2 手工下載

對於不便使用 shell 命令的系統,可手工下載所需安裝文件。

如需要手工下載,以下是所有的文件列表:

# 內容 文件名 x86_64 架構(原版) aarch64 架構(原版)
1 Docker 二進制程序 docker-24.0.9.tgz 下載 下載
2 DataFlux Func 鏡像 dataflux-func.tar.gz 下載 下載
3 MySQL/MariaDB 鏡像 mysql.tar.gz 下載 下載
4 Redis 鏡像 redis.tar.gz 下載 下載
5 Docker 服務配置文件 docker.service 下載 下載
6 DataFluxFunc 安裝腳本 run-portable.sh 下載 下載
7 Docker Stack 配置文件模板 docker-stack.example.yaml 下載 下載
8 鏡像列表 image-list 下載 下載
9 版本信息 version 下載 下載

手工下載所有安裝文件後,放入同一個目錄下即可。

1.3 下載選項

在執行下載腳本時,可以指定下載選項以滿足個性化需求。

示例如下:

注意:在指定的下載選項之前,存在一個 --(兩個中橫線)

Bash
1
/bin/bash -c "$(curl -fsSL docs.dataflux-func.com/download)" -- --download-dir=func-download

支持的下載選項如下:

--arch={架構} 指定架構

下載腳本默認下載與本機相同架構的安裝包文件,如果需要下載不同架構的安裝文件,可以指定此參數。

可選的架構如下:

架構 説明 參數示例
Intel Intel / AMD 64 位處理器 --arch=x86_64
ARM ARM64v8 處理器 --arch=aarch64

--download-dir={下載目錄} 指定下載目錄

於 2.6.1 版本新增

本參數適合用於自動化腳本方式部署 DataFlux Func

下載腳本默認會新建 / 清空當前目錄下的 dataflux-func-portable-{架構}-{版本號} 目錄,並將安裝文件下載至此。

如果需要下載到指定的目錄,可以指定此參數,如:

Bash
1
/bin/bash -c "$(curl -fsSL docs.dataflux-func.com/download)" -- --download-dir=func-download

2. 執行安裝

進入在上文中下載的安裝包目錄,運行一鍵安裝腳本 run-portable.sh 即可:

安裝前請確認系統要求和服務器配置

DataFlux Func 不支持 macOS、Windows,請拷貝到 Linux 系統下再運行安裝

Bash
1
sudo /bin/bash {安裝文件所在目錄}/run-portable.sh

使用自動安裝腳本可以實現幾分鐘內快速安裝運行,自動配置的內容如下:

  • 運行 MySQL、Redis、DataFlux Func(包含 Server,Worker,Beat)
  • 自動創建並將所有數據保存於 /usr/local/dataflux-func/ 目錄下(包括 MySQL 數據、Redis 數據、DataFlux Func 配置、日誌等文件)
  • 隨機生成 MySQL root 用户密碼、系統 Secret,並保存於 DataFlux Func 配置文件中
  • Redis 不設密碼
  • MySQL、Redis 不提供外部訪問

執行完成後,可以使用瀏覽器訪問 http://{服務器 IP 地址/域名}:8088 進行初始化操作界面。

如果運行環境性能較差,應當使用 docker ps 命令確認所有組件成功啓動後,方可訪問(見以下列表)

  1. dataflux-func_server
  2. dataflux-func_worker-0
  3. dataflux-func_worker-1
  4. dataflux-func_worker-2
  5. dataflux-func_worker-3
  6. dataflux-func_worker-5
  7. dataflux-func_worker-6
  8. dataflux-func_beat
  9. dataflux-func_mysql
  10. dataflux-func_redis
  1. dataflux-func_server
  2. dataflux-func_worker-0
  3. dataflux-func_worker-1-6
  4. dataflux-func_worker-7
  5. dataflux-func_worker-8-9
  6. dataflux-func_beat
  7. dataflux-func_mysql
  8. dataflux-func_redis

2.1 安裝選項

在執行安裝腳本時,可以指定安裝選項以滿足個性化需求,如:

Bash
1
sudo /bin/bash run-portable.sh --port=80

--mini 安裝迷你版

針對低配置環境下,需要節約資源時的安裝模式。

開啓後:

  • 僅啓動單個 Worker 監聽所有隊列
  • 遇到重負載任務更容易導致隊列阻塞和卡頓
  • 系統任務和函數任務共享處理隊列,相互會受到影響
  • 系統要求降低為:
    • CPU 核心數 >= 1
    • 內存容量 >= 2GB
  • 如不使用內置的 MySQL、Redis,系統要求可以進一步降低

--port={端口號} 指定監聽端口號

DataFlux Func 默認使用 8088 端口訪問,如果此端口被其他程序佔用,可以選擇其他端口,如:9000

--install-dir={安裝目錄} 指定安裝目錄

需要安裝到與默認路徑 /usr/local/dataflux-func 不同的路徑下時,可指定此參數

--no-mysql 禁用內置 MySQL

需要使用已有的 MySQL 數據庫時,可指定此參數,禁止在本機啓動 MySQL。

啓用此選項後,需要在安裝完成後的配置頁面指定正確的 MySQL 連接信息

--no-redis 禁用內置 Redis

需要使用已有的 Redis 數據庫時,可指定此參數,禁止在本機啓動 Redis。

啓用此選項後,需要在安裝完成後的配置頁面指定正確的 Redis 連接信息

--auto-setup 自動執行配置

於 2.6.0 版本新增

本參數適合用於自動化腳本方式部署 DataFlux Func

啓用後,自動進行配置、初始化數據庫,不再會有配置頁面,如:

Bash
1
sudo /bin/bash run-portable.sh --auto-setup

此外,在開啓 --auto-setup 選項後,還可以加入其他 --auto-setup-* 對自動配置進行調整。自動配置的額外選項如下:

自動配置額外選項 默認值 説明
--auto-setup-admin-username={用户名} admin 指定管理員用户名
--auto-setup-admin-password={密碼} admin 指定管理員密碼
--auto-setup-ak-secret={AK Secret} 自動生成 自動創建 AK
且使用指定值作為 AK Secret
--auto-setup-ak-id={AK ID} ak-auto-setup 自動創建 AK 時的 AK ID
(需要配合 --auto-setup-ak-secret 選項使用)

如需要自動配置並指定管理員密碼為AdminPass,那麼完整命令如下:

Bash
1
sudo /bin/bash run-portable.sh --auto-setup --auto-setup-admin-password='AdminPass'

3. 驗證安裝

DataFlux Func 默認安裝完成後,就已經附帶了一些示例腳本。

依次執行以下操作,即可驗證安裝:

  1. 點擊頂部導航條的「腳本編輯器」,在左側欄依次選擇「腳本庫」-「示例」-「基礎演示」
  2. 在右側腳本編輯器頂部,點擊「編輯」進入編輯模式,選擇「hello_world」函數並點擊「執行」按鈕執行函數
  3. 此時,如果在底部「腳本輸出」中,能夠正常看到函數的返回值

至此,驗證安裝完畢

3.1 各服務説明

默認情況下,DataFlux Func 正常啓動後,共有如下服務運行:

隊列 #7, #8, #9 為數據平台附屬版 Func 專用隊列,在獨立部署版 Func 中作為預留隊列

名稱 説明
dataflux-func_server DataFlux Func 的前端服務。
主要用於提供 Web 界面、API 接口等
dataflux-func_worker-0 監聽 #0, #4, #7, #8, #9 隊列的 Python 工作單元。
主要處理 DataFlux Func 的內部任務(#0 隊列)以及其他誤入預留隊列的任務
dataflux-func_worker-1 監聽 #1 隊列的 Python 工作單元。
主要處理同步執行的函數 API
dataflux-func_worker-2 監聽 #2 隊列的 Python 工作單元。
主要處理定時任務
dataflux-func_worker-3 監聽 #3 隊列的 Python 工作單元。
主要處理異步執行的函數 API
dataflux-func_worker-5 監聽 #5 號隊列的 Python 工作單元。
主要處理在 Web 界面中運行腳本的調試任務
dataflux-func_worker-6 監聽 #6 號隊列的 Python 工作單元。
主要處理連接器訂閲消息執行的任務
dataflux-func_beat 定時任務任務的觸發器,全局只能開啓 1 個
dataflux-func_mysql DataFlux Func 自帶的內置 MySQL
dataflux-func_redis DataFlux Func 自帶的內置 Redis
名稱 説明
dataflux-func_server DataFlux Func 的前端服務。
主要用於提供 Web 界面、API 接口等
dataflux-func_worker-0 監聽 #0 隊列的 Python 工作單元。
主要處理 DataFlux Func 的內部任務
dataflux-func_worker-1-6 監聽 #1, #2, #3, #4, #5, #6 隊列的 Python 工作單元。
主要處理同步執行的函數 API
dataflux-func_worker-7 監聽 #7 隊列的 Python 工作單元。
主要處理在 Web 界面中運行腳本的調試任務
dataflux-func_worker-8-9 監聽 #8, #9 隊列的 Python 工作單元。
主要處理異步任務(定時任務等)
dataflux-func_beat 定時任務的觸發器,全局只能開啓 1 個
dataflux-func_mysql DataFlux Func 自帶的內置 MySQL
dataflux-func_redis DataFlux Func 自帶的內置 Redis

3.2 數據保存位置

DataFlux Func 運行需要存儲各種不同的數據,大致內容及存儲位置如下:

存儲 保存路徑 存儲內容
MySQL {安裝目錄}/mysql/ 絕大部分在 UI 操作中產生的數據,包括且不限於:
1. 腳本、連接器配置、環境變量
2. 用户信息、函數 API、定時任務
3. 操作記錄、腳本運行記錄、導入導出記錄等
Redis {安裝目錄}/redis/ 主要用於緩存和隊列,包括且不限於:
1. 用户登錄信息
2. 腳本運行時建立的各種緩存
3. 腳本執行任務隊列
4. Func 自身監控數據等
目錄 {安裝目錄}/data/ 主要用於必須以文件形式存在的數據,詳見下文
目錄 {安裝目錄}/data/resources/ 資源文件夾(即「文件管理器」根目錄)
目錄 {安裝目錄}/data/resources/extra-python-packages/ PIP 工具安裝的第三方包
目錄 {安裝目錄}/data/resources/script-market/ 腳本市場下載數據
目錄 {安裝目錄}/data/sqldump/ 數據庫自動備份
目錄 {安裝目錄}/data/logs/ 系統日誌
文件 {安裝目錄}/data/user-config.yaml DataFlux Func 系統配置
文件 /etc/dataflux-func DataFlux Func 安裝目錄記錄
用於升級時正確獲取當前 DataFlux Func 的安裝位置

4. 使用外部數據庫

在全新安裝 DataFlux Func 時,如果需要使用外部數據庫(MySQL、Redis),可以在執行安裝腳本時,指定禁用內置的 MySQL、Redis,如:

Bash
1
sudo /bin/bash {安裝文件所在目錄}/run-portable.sh --no-mysql --no-redis

安裝完成後,在首次運行界面,點擊「顯示更多配置」,修改 MySQL、Redis 配置即可。

有關 MySQL、Redis 的配置要求,請參考 部署和維護 / 系統要求

如果需要將現有 DataFlux Func 的數據庫遷移至外部,請參考 部署和維護 / 日常維護 / 遷移數據庫