提示: 本文是安装superset 0.28.1教程,根据360安全发布版本小于0.37.1的有安全漏洞风险,建议安装官网提示安装最新版本
系统自带的是python2.7,此次安装的python环境是python3.6,所以会用到Anaconda
因为安装了之后 用户的python版本会变成 python3.6 ,即在root用户下安装root用户的python -V 就成了3.6,建议新建用户安装或者使用不影响其他服务的用户安装
此博客参考了https://blog.csdn.net/Alongpo/article/details/89316827
1.安装anaconda (Anaconda3-4.4.0-Linux-x86_64.sh)
下载地址 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 放在/home/admin/下
先执行 安装解压工具
yum -y install bzip2
然后执行 bash Anaconda3-4.4.0-Linux-x86_64.sh ,安装过程中输入 y ,使得环境被添加到系统 /.bashrc 中,安装过程中也会让选择安装路径,我就直接默认 /home/admin/ 目录下了,需添加另外一个环境变量 LD_LIBRARY_PATH
注意:执行这个会改变所在用户的python环境,建议新建用户安装或者在不影响其他业务情况下安装(我这边root环境是2.7的,偶然在root下安了这个,导致环境变成python3,引起其他服务异常)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admin/anaconda3/lib
2.在安装Anaconda目录下 创建 .condarc 文件,并添加如下镜像
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
show_channel_urls: true
3.安依赖
yum upgrade python-setuptools
yum install gcc gcc-c++ gcc-devel libffi-devel mysql-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel
4.为了将superset 安装在python3环境中,需要利用virtualenv创建虚拟环境
pip install virtualenv
virtualenv -p /home/admin/anaconda3/bin/python3 superset
virtualenv -p 解释:将会在当前的目录中创建一个名superset的文件夹(跟我们要安装的superset没关系,名字随便起),这是一个独立的python3运行环境,包含了Python可执行文件, 以及 pip 库的一份拷贝,这样就能安装其他包了,不过已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境来。
5. 启动虚拟环境 cd /home/admin/superset
source ./bin/activate
退出使用deactivate
在superset环境中 查看python -V 可以看到python是3.+版本
6. 启动虚拟环境 安装superset
pip install --upgrade pip
pip install mysqlclient (后面连接mysql驱动)
pip install --upgrade setuptools
pip install --upgrade werkzeug==0.16.1
pip install flask-jwt-extended==3.18.1
pip install sqlalchemy==1.2.18
pip install flask==0.12.5 (这几个为了解决初始化报错)
pip install superset==0.28.1 (新版本可能会出现其他安装报错,所以这里指定了版本)
superset默认的元数据保存在sqlite,为了方便后面的迁移升级,建议使用mysql
/superset/lib/python3.6/site-packages/superset/config.py
然后执行数据库的初始化工作
fabmanager create-admin --app superset ( 账号密码一定要记住!!!!)
superset db upgrade (可能报错,看图,这里如果前面版本pip都执行了应该就不会报错了)
superset load_examples # Load some data to play with
superset init # Create default roles and permissions
superset runserver -p 8088 # Start the web server on port 8088
但是一旦退出后就断掉runserver了,上面的只是测试时用的,如果测试通过了,用nohup去启动runserver
nohup superset runserver -p 18081 >log.log 2>&1 & //默认的端口号是8088,这里开的是18081端口
7. sql查询超时问题解决 (默认30s)
路径 /superset/lib/python3.6/site-packages/superset
vim config.py
另外貌似还需要启动superset时设置 -t 我这边的启动是
nohup superset runserver -p 8088 -t 700 >log.log 2>&1 &
8. http://ip:8088即可访问,输入第6步中创建的用户名和密码即可进入,关于superset+presto(hive)请参考
https://blog.csdn.net/Alongpo/article/details/89571606
presto集成hive请参考
https://blog.csdn.net/Alongpo/article/details/89499400
superset权限管控请参考
https://blog.csdn.net/Alongpo/article/details/89210885
这里如果想对表有查询权限,需要在 role 中添加 all datasource access on all_datasource_access
附问题解决方法:
问题1:Was unable to import superset Error: cannot import name '_maybe_box_datetimelike'
解决:pip uninstall pandas
问题2:superset 链接不上clickhouse
https://stackoverflow.com/questions/61117610/sqlalchemy-shows-code-516-authentication-failed-when-trying-to-connect-to-clic/61722790#61722790 或者 https://blog.csdn.net/m0_47467356/article/details/105844252
最新版本好像连接没问题