Apache-Superset-1.4.2安装包tar包安装(离线,但不完全离线)

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://www.freesion.com/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://www.anaconda.com/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.0

2.ModuleNotFoundError: No module named 'MySQLdb'
python3.8需要安装如下:

pip install mysqlclient

3.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软件,这里基本也是大同小异的。这里也有点小技巧,因为导入了很多官方提供的样例,我们都是可以拿来参考的。
完结!
<( ̄▽ ̄)/

<think>好的,我现在需要回答用户的问题:使用Docker部署Superset是否需要额外安装pip install apache-superset[cors]。首先,我需要了解Superset在Docker环境中的安装流程,以及官方Docker镜像是否已经含了CORS支持。 首先,我记得Superset的Docker部署通常是通过官方的Docker镜像或者docker-compose文件来进行的。用户可能已经按照官方文档的步骤操作,但确定是否需要额外安装CORS插件。 接下来,我需要确认CORS(跨源资源共享)在Superset中的作用。CORS允许同域的客户端访问资源,通常用于API或前端应用跨域请求。如果用户需要启用CORS,Superset可能需要相关配置。 然后,查阅官方Docker镜像的Dockerfile或相关文档,看看是否已经含了apache-superset[cors]这个额外依赖。通常,官方镜像可能会预先安装一些常用插件,或者通过环境变量启用某些功能。 如果官方镜像默认没有安装CORS支持,用户可能需要自己构建镜像,在Dockerfile中添加pip install apache-superset[cors]的步骤。或者,在docker-compose.yml中覆盖安装命令,添加该依赖。 另外,可能还需要在Superset的配置文件中设置ENABLE_CORS等参数,确保功能生效。因此,除了安装依赖,配置步骤也是必要的。 总结一下,用户的问题核心在于是否需要手动安装CORS依赖。如果官方镜像已经含,则需要;否则需要修改Dockerfile或使用其他方法安装。需要验证官方镜像的情况,并给出明确的步骤建议。</think>使用Docker部署Apache Superset时,是否需要额外安装 `apache-superset[cors]` 取决于你选择的Docker镜像版本和部署方式。以下是具体分析: --- ### **1. 官方镜像的默认情况** - **官方Docker镜像**(如 `apache/superset`)通常已含基础依赖(括CORS支持)。 - 若镜像基于完整版Superset构建(如 `apache-superset[all]`),则无需手动安装CORS插件。 - **验证方法**: 查看镜像的Dockerfile或文档,确认是否含类似以下内容: ```Dockerfile RUN pip install apache-superset[all] ``` --- ### **2. 自定义镜像或特殊需求** 若需以下操作,**需要手动安装**: - **使用精简版镜像**(如未预装CORS的镜像): 在Dockerfile中添加: ```Dockerfile RUN pip install apache-superset[cors] ``` - **临时启用CORS**: 在容器启动时通过命令安装: ```bash docker exec -it superset pip install apache-superset[cors] ``` --- ### **3. 配置CORS** 即使安装了CORS依赖,仍需在Superset配置文件(`superset_config.py`)中启用相关参数: ```python ENABLE_CORS = True CORS_OPTIONS = { "supports_credentials": True, "allow_headers": ["*"], "resources": ["*"], "origins": ["http://your-domain.com"] } ``` --- ### **4. 推荐做法** - **使用官方镜像**:直接通过环境变量或配置文件启用CORS,无需额外安装- **自定义构建**:在Dockerfile中明确添加 `apache-superset[cors]` 以确保兼容性。 --- ### **总结** - **默认情况下**:官方Docker镜像已支持CORS,无需手动安装- **特殊情况**:若镜像未含CORS,需通过Dockerfile或容器内命令补充安装- **必须配置**:无论是否安装依赖,均需在配置文件中启用CORS参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值