首頁 雲端運算與程式碼文章正文

Superset手動安裝實踐(非pip安裝)

雲端運算與程式碼 2024年05月08日 11:38 695 品悟

本文摘要

在某些特定環境下,如服務器無法連接外網或需要更精細控制安裝過程的場景,使用pip直接安裝Superset可能變得不現實。本文將詳細介紹在CentOS 7.2.1511操作系統下,Python 2.7.5環境中,如何手動安裝Apache Superset,並對關鍵步驟和代碼進行解釋。

一、引言

在數據分析和數據可視化的領域中,Apache Superset以其強大的功能和易用性贏得了廣泛的關註。然而,在某些特定環境下,如服務器無法連接外網或需要更精細控制安裝過程的場景,使用pip直接安裝Superset可能變得不現實。本文將詳細介紹在CentOS 7.2.1511操作系統下,Python 2.7.5環境中,如何手動安裝Apache Superset,並對關鍵步驟和代碼進行解釋。

Superset手動安裝實踐(非pip安裝) 第1张

二、環境準備

首先,我們需要確認服務器的操作系統版本和Python版本。從給出的信息來看,服務器運行的是CentOS 7.2.1511版本,Python版本為2.7.5。由於Python 2已於2020年初停止支持,且Superset的最新版本可能不再支持Python 2,因此在實際操作中,我們可能需要考慮升級Python版本。但為了符合本文的要求,我們將基於Python 2.7.5進行安裝。

此外,由於服務器無法連接外網,我們需要提前準備好所有必要的安裝包和依賴文件,並確保它們可以通過內部網絡或本地存儲進行訪問。

三、安裝依賴

Superset依賴於多個Python庫和系統庫。在無法連接外網的情況下,我們需要手動下載這些依賴,並使用rpm或yum(如果可用)進行安裝。以下是一些可能需要的依賴項(具體依賴項可能因Superset版本而異):

1. Python開發包:`python-devel`

2. 數據庫驅動(以MySQL為例):`mysql-devel`

3. Python虛擬環境工具:`virtualenv`(可選,但推薦)

4. 其他Python庫:如`flask`、`pandas`、`numpy`等

使用yum或rpm安裝這些依賴項的命令示例如下:

bash

yum install python-devel mysql-devel
# 安裝virtualenv(如果服務器可以訪問內部yum源)
yum install python-virtualenv

如果無法通過yum安裝virtualenv,你可能需要手動下載virtualenv的源碼包,並使用Python進行安裝:

bash

wget https://pypi.org/packages/source/v/virtualenv/virtualenv-x.x.x.tar.gz
tar -xzf virtualenv-x.x.x.tar.gz
cd virtualenv-x.x.x
python setup.py install

四、下載Superset源碼

從Apache Superset的官方GitHub倉庫下載源碼。由於無法直接訪問GitHub,你可能需要預先從其他可訪問外網的機器上下載源碼,並通過內部網絡或USB等方式傳輸到目標服務器上。

bash

wget https://github.com/apache/superset/archive/refs/tags/x.x.x.tar.gz
tar -xzf x.x.x.tar.gz
cd superset-x.x.x

註意:將`x.x.x`替換為你要安裝的Superset版本號。

五、安裝Superset

1. 創建虛擬環境(可選)

如果之前安裝了virtualenv,可以創建一個新的虛擬環境來隔離Superset的依賴項:

bash

virtualenv superset_env

source superset_env/bin/activate

2. 安裝Python依賴

進入Superset源碼目錄,使用pip(如果已安裝)或手動安裝Python依賴項。由於無法連接外網,你需要提前下載這些依賴項的wheel文件,並在本地進行安裝。

bash

pip install /path/to/package1.whl /path/to/package2.whl ...

註意:確保所有依賴項的版本與Superset兼容。

3. 初始化數據庫

Superset使用SQLAlchemy作為ORM框架,支持多種數據庫。你需要創建一個數據庫,並配置Superset以連接到該數據庫。這裏以MySQL為例:

bash

mysql -u root -p
CREATE DATABASE superset;
GRANT ALL PRIVILEGES ON superset.* TO 'superset_user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

然後,在Superset的配置文件(默認為`superset_config.py`)中設置數據庫連接信息:

python

SQLALCHEMY_DATABASE_URI = 'mysql://superset_user:password@localhost/superset'

4. 初始化Superset

使用Superset提供的命令行工具初始化數據庫和創建管理員用戶:

bash

python setup.py fab create-admin --username admin --firstname Admin --lastname User --email [email protected] --password adminpassword
python setup.py db upgrade

六、啟動和配置Superset服務

在完成了Superset的依賴安裝和數據庫配置之後,我們可以啟動Superset的Web服務來訪問其用戶界面。

1. 啟動Superset服務

如果使用的是Python的內置服務器,可以通過以下命令啟動Superset:

bash

# 如果在虛擬環境中,確保先激活虛擬環境
source superset_env/bin/activate
# 啟動Superset服務,默認監聽在8088端口
gunicorn -w 4 --timeout 500 -b 0.0.0.0:8088 "superset.app:create_app()" --log-file -

註意:這裏使用了`gunicorn`作為Web服務器,它是一個高性能的Python WSGI HTTP服務器。如果你沒有安裝`gunicorn`,你需要先手動下載並安裝它,或者選擇使用其他Web服務器如Flask的內置服務器(但性能可能不如`gunicorn`)。

2. 配置Nginx(可選)

為了提高性能和安全性,你可能會想要將Superset部署在Nginx或其他Web服務器上。下面是一個簡單的Nginx配置示例,用於將HTTP請求代理到Superset服務:

nginx

server {
    listen 80;
    server_name your_server_domain_or_ip;
    location / {
        proxy_pass http://127.0.0.1:8088/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

你需要將這個配置保存為一個Nginx的配置文件(例如`superset.conf`),並在Nginx中啟用它。

3. 配置防火墻(可選)

如果你的服務器運行了防火墻(如`firewalld`),確保開放了Superset使用的端口(默認為8088)。使用`firewall-cmd`命令可以配置防火墻規則:

bash

firewall-cmd --zone=public --add-port=8088/tcp --permanent
firewall-cmd --reload

七、訪問和使用Superset

現在,你可以通過Web瀏覽器訪問Superset了。在瀏覽器中輸入服務器的IP地址或域名,後面跟上端口號(如果使用了Nginx,則可能是默認的80端口),你將看到Superset的登錄頁面。使用之前創建的管理員賬號登錄,你就可以開始配置數據源、創建儀表板等操作了。

八、總結

在無法連接外網的環境中手動安裝Apache Superset需要一些額外的步驟和準備工作,但只要你按照上述步驟操作,應該能夠成功安裝並使用Superset。記得在安裝過程中註意檢查依賴項的版本兼容性,並根據你的實際需求進行配置。如果你遇到了任何問題,可以查看Superset的官方文檔或在相關社區尋求幫助。

標籤: Superset CentOS Python Apache 安裝 使用 服務器 依賴

AmupuCopyright Amupu.Z-Blog.Some Rights Reserved.