部署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趟坑指南(内有福利)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 交强险赔付18000理赔详解 什么是交强
- 下一篇: oracle的打开图标,Oracle的S