1.背景
最近在调研一些开源的BI工具,像superset/datart/MetaBase之类的。因为公司业务需求,想要把BI嵌入到已有的系统中去,这就需要使用开源支持。经过实际的安装使用,最终确定使用superset。 apache-superset官网 superset是一个轻量级的BI产品,支持CSV、MySQL、Oracle、Redshift、Drill、Hive、Impala、Elasticsearch等27种数据源。而且提供众多图表类型,在集成Echarts后支持近百种图表。
但是在安装中遇到很多问题,尤其是离线安装,这里将本人安装过程简单分享一下,希望对有需要的同学提供一点帮助。
2.主要参考编译方式目前有三种: 官网提供两种#参考链接#:docker镜像、Installing from Scratch 第二种方式尝试最高只能安装0.38版本,可能是没有最新版的镜像。 离线安装:
参考链接 https://·/article/46551320802/
这里离线安装0.37版本,但是安装方式可以做参考。
注:本文章主要讲利用tar包离线或半离线安装!
3.环境系统:CentOS Linux release 7.5.1804 (Core) python:3.7+
4.安装及部署 4.1.安装python3.8编译安装即可(略)
4.2.安装依赖 sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel升级安装其他包:
pip3 install --upgrade pip pip3 install --upgrade setuptools pip3 install setuptools_scm不升级可能报错:Could NOT find Arrow (missing: Arrow_DIR) 、 No package ‘arrow‘ found
yum -y install python3-devel yum -y install libsass yum -y install libsass-devel不安装可能报错:Running setup.py install for python-geohash ... error
4.3.下载superset安装包下载地址:https://pypi.org/project/apache-superset/#files
mkdir /home/software tar -zxvf apache-superset-1.4.2.tar.gz -C /home/software cd /home/software 4.4.构建Python Virtual Environment安装virtualenv用于构建环境:
pip install virtualenv注:如果没有网络可以下载安装Anaconda用于构建虚拟环境:
下载地址:https://·/products/individual#macos
创建虚拟环境:
python3 -m venv seperset . seperset/bin/activate创建好并启动后如下:
4.5.开始安装 4.5.1.安装依赖进入superset解压目录:
cd /home/software/apache-superset-1.4.2如果有网络可以直接执行安装命令,会自动下载依赖包并安装:
python setup.py install注:如果没有网络,需要查看apache-superset-1.4.2/apache_superset.egg-info/requires.txt文件,查看需要那些依赖进行手动下载: 找一台有网络的机器,拷贝requires.txt文件,注释掉文件中[]行(不然会报错),运行以下命令下载:
pip3 download -r ./requires.txt -d 【下载目录】下载完成将依赖拷贝回安装机器,然后安装依赖:
pip install <目录>/<文件名>` 或 `pip install --use-wheel --no-index --find-links=wheelhouse/ <包名>注:安装过程中可能报错 ModuleNotFoundError: No module named 'xxxx' 一般缺少对应依赖,运行:pip install xxxx安装即可 特殊情况: 1.superset async-timeout 4.0.2 is installed but requires async-timeout<4.0,>=3.0 需要降级aiohttp
pip3 install --upgrade aiohttp==3.8.1 4.5.2.初始化数据库初始化前修改库为mysql:
创建数据库superset,添加superset用户(略)
vim /home/software/superset/lib/python3.8/site-packages/apache_superset-1.4.2-py3.8.egg/superset/config.py SQLALCHEMY_DATABASE_URI = 'mysql://superset:superset@127.0.0.1/superset'运行初始化命令:
superset db upgrade注:初始化过程中可能报错 1.ModuleNotFoundError: No module named '_bz2' 原因:python3.8 缺少文件_bz2.cpython-36m-x86_64-linux-gnu.so 解决方式:下载该文件,或者python3.6安装包找到该文件
cd /usr/lib/python3.8/lib-dynload/ cp /usr/lib/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./ chmod 755 _bz2.cpython-36m-x86_64-linux-gnu.so mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-38-x86_64-linux-gnu.so还可能报错: ImportError: libbz2.so.1.0: cannot open shared object file: No such file or directory 解决方式:
yum install -y bzip2* cd /usr/lib64/ ln -s libbz2.so.1.0.6 libbz2.so.1.02.ModuleNotFoundError: No module named 'MySQLdb' python3.8需要安装如下:
pip install mysqlclient3.superset ImportError: cannot import name 'soft_unicode' from 'markupsafe 或 ImportError: cannot import name 'url_encode' from 'werkzeug'' markupsafe版本过高:
pip3 install --upgrade markupsafe==2.0.1 pip3 install werkzeug==0.16.0 4.5.3.创建用户 $ export FLASK_APP=superset superset fab create-admin 4.5.4.加载用例加载用例需要githup下载,下载慢或者报错建议修改为本地加载:
参考链接:https://blog.csdn.net/yan15625123250/article/details/121077103
修改后运行以下命令加载:
superset load_examples注:加载过程中可能还会报错,建议多长尝试几次!
4.5.5.创建默认角色及权限 superset init 4.6.运行及启动前台启动:不指定好 -h 会访问不到
superset run -p 8088 --with-threads --debugger -h 0.0.0.0后台启动:
nohup superset run -p 8088 --with-threads --debugger -h 0.0.0.0 &退出虚拟环境:
deactivate 5.汉化这里只说简单汉化,深度汉化没去研究。 在1.4.2中已经有汉语支持,不过不够全面,这里只需要修改以下参数: 修改config.py文件:
vim /home/software/superset/lib/python3.8/site-packages/apache_superset-1.4.2-py3.8.egg/superset/config.py BABEL_DEFAULT_LOCALE = "zh" 6.总结好了,以上基本就安装完成,过程中如果还有其他错误欢迎交流。 关于superset的使用,如果用过其他的BI软件,这里基本也是大同小异的。这里也有点小技巧,因为导入了很多官方提供的样例,我们都是可以拿来参考的。 完结! <( ̄▽ ̄)/
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |