部署superset_ubuntu16下部署apache superset趟坑指南(内有福利)
Apache superset是一個(gè)輕量級(jí)的BI,為了驗(yàn)證下kylin搭配superset的效果,在ubuntu16.04.6下安裝了superset,superset安裝部署的主要問(wèn)題在于其對(duì)python環(huán)境及相關(guān)組件的版本要求較高,版本對(duì)不上就會(huì)導(dǎo)致出現(xiàn)種種問(wèn)題,所以安裝的時(shí)候采用了在python虛擬環(huán)境下進(jìn)行安裝,先后測(cè)試了python-3.9.0a3和python-3.5.2兩個(gè)虛擬環(huán)境,安裝都遇到了問(wèn)題,最后采用python-3.7.6版本的虛擬環(huán)境安裝成功,具體步驟如下:
一、提前準(zhǔn)備
1、系統(tǒng)上需要安裝的組件
(1)libffi-dev
執(zhí)行apt install libffi-dev 命令,如果缺少該庫(kù)安裝superset的過(guò)程會(huì)報(bào)"No module named '_ctypes'"的錯(cuò)誤。
(2)openssl
未安裝openssl會(huì)報(bào)“找不到_ssl模塊的錯(cuò)誤 Was unable to import superset Error: No module named '_ssl'”。先下載openssl:
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
然后解壓縮openssl
tar -zxvf openssl-1.1.1d.tar.gz
最后在openssl-1.1.1d的文件夾中執(zhí)行如下命令:
./config --prefix=/usr/local/openssl shared zlib
執(zhí)行后如下圖:
最后再執(zhí)行:
make && make install,即可完成openssl的安裝。
(3)安裝python-dev libsasl2-dev gcc三個(gè)庫(kù)
執(zhí)行apt-get install python-dev libsasl2-dev gcc,這里主要是sasl庫(kù)不安裝會(huì)有問(wèn)題;
(4)安裝sqlite
不安裝sqlite會(huì)報(bào)“ModuleNotFoundError: No module named '_sqlite3"的異常,安裝sqlite執(zhí)行命令如下:
apt-get install libsqlite3-dev
2、虛擬環(huán)境準(zhǔn)備
下載python-3.7.6對(duì)應(yīng)的安裝包,解壓縮,然后在解壓縮之后的目錄中執(zhí)行:
./configure prefix=/usr/local/python3.7.6 --with-openssl=/usr/local/openssl --enable-loadable-sqlite-extensions
make && make install
最后進(jìn)入根目錄,使用virtualenv執(zhí)行:
virtualenv -p /usr/local/python3.7.6/bin/python3 python3.7.6
建立好python3.7.6版本的虛擬環(huán)境,執(zhí)行:
source /python3.7.6/bin/activate 進(jìn)入對(duì)應(yīng)的環(huán)境,進(jìn)行下面python下的組件安裝。
3、python下需要安裝的組件
(1)安裝requests包
先安裝requests,執(zhí)行:
pip install requests -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com/
(2)安裝flask-appbuilder,執(zhí)行命令:pip install flask-appbuilder -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com/
安裝完成之后就可以使用fabmanager命令了,如下圖:
(3)安裝wtforms_json、flask_compress、celery、flask_migrate、flask_talisman、flask_caching、sqlparse、bleach、markdown、numpy、pandas、parsedatetime、pathlib2、simplejson,humanize,geohash,polyline,geopy,cryptography,backoff,msgpack,pyarrow,contextlib2,croniter,retry,selenium,isodate
這些組件本著缺啥補(bǔ)啥的原則,一律執(zhí)行pip install xxx即可,否則報(bào)如下異常:
Was unable to import superset Error: No module named 'wtforms_json'
Was unable to import superset Error: No module named 'flask_compress'
Was unable to import superset Error: No module named 'celery'
Was unable to import superset Error: No module named 'flask_migrate'
Was unable to import superset Error: No module named 'flask_talisman'
Was unable to import superset Error: No module named 'flask_caching'
Was unable to import superset Error: No module named 'sqlparse'
Was unable to import superset Error: No module named 'bleach'
Was unable to import superset Error: No module named 'markdown'
Was unable to import superset Error: No module named 'numpy'
Was unable to import superset Error: No module named 'pandas'
Was unable to import superset Error: No module named 'parsedatetime'
ModuleNotFoundError: No module named 'pathlib2'
ModuleNotFoundError: No module named 'simplejson'
ModuleNotFoundError: No module named 'humanize'
ModuleNotFoundError: No module named 'geohash'
ModuleNotFoundError: No module named 'polyline'
ModuleNotFoundError: No module named 'geopy'
sqlalchemy_utils.exceptions.ImproperlyConfigured: 'cryptography' is required to use EncryptedType
ModuleNotFoundError: No module named 'backoff'
ModuleNotFoundError: No module named 'msgpack'
ModuleNotFoundError: No module named 'pyarrow'
ModuleNotFoundError: No module named 'contextlib2'
ModuleNotFoundError: No module named 'croniter'
ModuleNotFoundError: No module named 'retry'
ModuleNotFoundError: No module named 'selenium'
ModuleNotFoundError: No module named 'isodate'
ImportError: cannot import name 'ImmutableDict' from 'werkzeug'
這里geohash這個(gè)要特別說(shuō)一下,這個(gè)組件安裝之后再python的site-packages下其目錄是大寫(xiě)的"Geohash",這導(dǎo)致geohash這個(gè)組件pip install之后,仍然報(bào)找不到,需要修改下其名字,如下:
再將geohash文件夾下_init_.py文件中得 from geohash修改成 from .geohash,如下圖:
(3)要特別注意版本號(hào)的組件
pip install --upgrade werkzeug==0.16.1
pip install flask-jwt-extended==3.18.1
pip install flask==0.12.5
pip install superset==0.28.1
pip install sqlalchemy==1.2.18
二、安裝superset的過(guò)程
最后安裝superset,注意superset的版本要選擇0.28.1,版本選擇不對(duì)會(huì)在后邊報(bào):
auth_type.get(_appbuilder.sm.auth_type, "No Auth method")的異常;
superset安裝完成后如上圖所示。
讓我們來(lái)用fabmanager為superset創(chuàng)建用戶(hù),執(zhí)行命令:
fabmanager create-admin --app superset,這個(gè)過(guò)程會(huì)提示輸入用戶(hù)名,密碼等;
接著執(zhí)行:
superset db upgrade,成功后如下圖:
superset init成功后如下圖:
superset runserver -p 5000 & (注意最新的superset-0.30.1版本沒(méi)有runserver這個(gè)命令)
這樣,superset就運(yùn)行起來(lái)了,通過(guò)http://127.0.0.1:5000就可以訪問(wèn)superset了,安裝好之后的界面如下:
三、其他異常
1、cannot import name 'Mapping' from 'collections'報(bào)這種錯(cuò)誤基本就是python版本得問(wèn)題,換版本吧;
四、所有組件的版本情況
1、
其他問(wèn)題可以關(guān)注公號(hào):【開(kāi)心感恩】咨詢(xún),如果有用記得點(diǎn)贊關(guān)注哦!
總結(jié)
以上是生活随笔為你收集整理的部署superset_ubuntu16下部署apache superset趟坑指南(内有福利)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 交强险赔付18000理赔详解 什么是交强
- 下一篇: 抄税怎么操作流程