centos7.2安裝superset

1. 容器方式,按照官網挨步執行即可,沒什麼坑

好處:無需採環境的坑,一鍵安裝 壞處:需要root,網絡是映射的,容器內不能訪問localhost

2. 源碼方式,按照官網從GitHub下載源碼,編譯安裝(我沒試過)

好處:源碼隨便改 壞處:需要root安裝python環境(N多坑要踩)

3. pypi方式(以下講解該方式安裝)

好處:通過pip包管理器稍微簡化流程,py3.x直接在虛擬環境內,不影響主機py2.7 壞處:需要root安裝基本依賴,虛擬環境和主機環境有微小差別

pypi方式安裝

服務器:centos7.2(自帶python2.7)
未註明root用戶的命令默認使用普通用戶執行

  1. 安裝運行依賴包
# root用戶
yum install gcc gcc-c++ libffi-devel openssl-devel cyrus-sasl-devel openldap-devel python36-devel cyrus-sasl-plain
  1. 升級pip版本
pip install --upgrade setuptools pip
  1. 安裝python虛擬環境,以便不破壞本機的python2.7(yum等命令依賴python2.7)
pip install virtualenv
# 這裏請先安裝python3任意版本(python3.7和python3.9親測沒問題),我這裏的python3是軟鏈,也可以直接使用絕對路徑
# 通過自行安裝的python3.x版本創建虛擬環境
python3 -m venv venv
# 進入虛擬環境(使用deactivate退出虛擬環境)
. venv/bin/activate
# 進入虛擬環境後,終端前面會有(venv)字樣,在虛擬環境執行的pip命令其實是pip3(因爲你是通過python3.x創建的虛擬環境),安裝的任何包不會影響主機本身的pip和python2.7
  1. 在虛擬環境內安裝superset並初始化並啓動
# 安裝superset
# !!!特別說明!!!執行這句命令需要安裝很多東西(請耐心),經常報莫名其妙的錯誤,並且每次報的錯誤還不一樣,請根據報錯信息安裝缺少的包,如果不是缺少包問題,請重試。。。
# 報缺少Rust環境錯誤,請直接重試(我就是重試了4次然後成功了)
pip install apache-superset
# 初始化superset
superset db upgrade
# 創建admin用戶
export FLASK_APP=superset
superset fab create-admin
# 始化角色和用戶信息
superset init
# 啓動(後臺啓動,請使用nohupt 該mingl &)
superset run -p 8088 -h 0.0.0.0 --with-threads --reload --debugger

相關問題

1. superset日誌在哪?

如果是前臺啓動,直接看控制檯。
如果是nohup啓動,在nohup.out(或者你重定向的文件)

2. 忘記密碼怎麼辦?

要麼努力回憶。。。要麼重新初始化(也就是從superset db upgrade這句開始)但是之前配置的數據庫信息和查詢歷史和圖表信息都會沒了。

3. 如何外置數據庫?比如不用自帶的sqlite存儲改爲用mysql存儲

默認內置的sqlite:~/.superset/superset.db
!!!如需保留元數據(比如數據庫配置、查詢歷史、用戶信息、圖表配置信息等)則需要自己把sqlite的內容修改後導入到mysql中對應的表 需要連mysql,就要安裝mysql的驅動

# 以下兩種方式,都需要在venv虛擬環境內執行
# 在線方式(需要在虛擬環境外,用root用戶,yum安裝好基礎依賴:yum install mysql-devel gcc gcc-devel python-devel)
pip install mysqlclient
# 離線安裝
wget https://files.pythonhosted.org/packages/3c/df/59cd2fa5e48d0804d213bdcb1acb4d08c403b61c7ff7ed4dd4a6a2deb3f7/mysqlclient-2.0.3.tar.gz
pip install --no-index --find-links=`pwd` mysqlclient

修改superset配置文件config.py中的數據庫連接地址(文件位置:lib/python3.7/site-packages/superset/config.py)

SQLALCHEMY_DATABASE_URI = 'sqlite:///' +  os.path.join(DATA_DIR, 'superset.db')
# 改爲
SQLALCHEMY_DATABASE_URI = 'mysql://root:xxxx@host:port/superset?charset=utf8'
# 進入虛擬環境初始化數據庫
source venv/bin/activate
superset db upgrade
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章