欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

部署superset_ubuntu16下部署apache superset趟坑指南(内有福利)

发布时间:2023/12/15 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 部署superset_ubuntu16下部署apache superset趟坑指南(内有福利) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Apache superset是一个轻量级的BI,为了验证下kylin搭配superset的效果,在ubuntu16.04.6下安装了superset,superset安装部署的主要问题在于其对python环境及相关组件的版本要求较高,版本对不上就会导致出现种种问题,所以安装的时候采用了在python虚拟环境下进行安装,先后测试了python-3.9.0a3和python-3.5.2两个虚拟环境,安装都遇到了问题,最后采用python-3.7.6版本的虚拟环境安装成功,具体步骤如下:

一、提前准备

1、系统上需要安装的组件

(1)libffi-dev

执行apt install libffi-dev 命令,如果缺少该库安装superset的过程会报"No module named '_ctypes'"的错误。

(2)openssl

未安装openssl会报“找不到_ssl模块的错误 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的文件夹中执行如下命令:

./config --prefix=/usr/local/openssl shared zlib

执行后如下图:

最后再执行:

make && make install,即可完成openssl的安装。

(3)安装python-dev libsasl2-dev gcc三个库

执行apt-get install python-dev libsasl2-dev gcc,这里主要是sasl库不安装会有问题;

(4)安装sqlite

不安装sqlite会报“ModuleNotFoundError: No module named '_sqlite3"的异常,安装sqlite执行命令如下:

apt-get install libsqlite3-dev

2、虚拟环境准备

下载python-3.7.6对应的安装包,解压缩,然后在解压缩之后的目录中执行:

./configure prefix=/usr/local/python3.7.6 --with-openssl=/usr/local/openssl --enable-loadable-sqlite-extensions

make && make install

最后进入根目录,使用virtualenv执行:

virtualenv -p /usr/local/python3.7.6/bin/python3 python3.7.6

建立好python3.7.6版本的虚拟环境,执行:

source /python3.7.6/bin/activate 进入对应的环境,进行下面python下的组件安装。

3、python下需要安装的组件

(1)安装requests包

先安装requests,执行:

pip install requests -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com/

(2)安装flask-appbuilder,执行命令: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

这些组件本着缺啥补啥的原则,一律执行pip install xxx即可,否则报如下异常:

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这个要特别说一下,这个组件安装之后再python的site-packages下其目录是大写的"Geohash",这导致geohash这个组件pip install之后,仍然报找不到,需要修改下其名字,如下:

再将geohash文件夹下_init_.py文件中得 from geohash修改成 from .geohash,如下图:

(3)要特别注意版本号的组件

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的过程

最后安装superset,注意superset的版本要选择0.28.1,版本选择不对会在后边报:

auth_type.get(_appbuilder.sm.auth_type, "No Auth method")的异常;

superset安装完成后如上图所示。

让我们来用fabmanager为superset创建用户,执行命令:

fabmanager create-admin --app superset,这个过程会提示输入用户名,密码等;

接着执行:

superset db upgrade,成功后如下图:

superset init成功后如下图:

superset runserver -p 5000 & (注意最新的superset-0.30.1版本没有runserver这个命令)

这样,superset就运行起来了,通过http://127.0.0.1:5000就可以访问superset了,安装好之后的界面如下:

三、其他异常

1、cannot import name 'Mapping' from 'collections'报这种错误基本就是python版本得问题,换版本吧;

四、所有组件的版本情况

1、

其他问题可以关注公号:【开心感恩】咨询,如果有用记得点赞关注哦!

总结

以上是生活随笔为你收集整理的部署superset_ubuntu16下部署apache superset趟坑指南(内有福利)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。