SuperSet 最新 Docker 部署文档(含元数据库切换、汉化、镜像导出)

本文详细介绍使用Docker部署Apache Superset的过程,并提供汉化、Logo更换及解决CSV导出乱码等定制方法。此外还介绍了如何将元数据库从SQLite切换到MySQL,以及配置本地MySQL作为测试数据源的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上大部分文档还是 Python2 的部署方式,尤其是汉化,坑还有不少,使用最新docker镜像重新整理了一下。

一、安装开源标准版: 能够访问互联网
(1)安装 docker
(2)下载官方 docker 镜像
docker pull apache/superset
(3)启动 docker 容器: 
docker run -d -p 8080:8088 apache/superset
(4)初始化并启动系统系统(元数据库默认使用SQLITE)
docker exec -it -u root be1c60109292 flask fab create-admin
docker exec -it be1c60109292 superset db upgrade
docker exec -it be1c60109292 superset init
docker exec -it be1c60109292 superset run
http://127.0.0.1:8080 查看服务是否正常
(5)汉化 
docker exec -it -u root be1c60109292 /bin/bash
sed -i "s/BABEL_DEFAULT_LOCALE = \"en/BABEL_DEFAULT_LOCALE = \"zh/g" superset/config.py
sed -i "s/LANGUAGES = {}/# LANGUAGES = {}/g" superset/config.py
apt-get update
apt-get install python3-babel
cd superset
pybabel compile -d translations
docker restart 567f18b60d9e 
(6)解决导出csv文件汉字乱码问题 
docker exec -it -u root be1c60109292 /bin/bash
sed -i "s/CSV_EXPORT = {\"encoding\": \"utf-8/CSV_EXPORT = {\"encoding\": \"gbk/g" superset/config.py
(7)查看/编辑后台的 sqlite 数据库
docker exec -it -u root be1c60109292 /bin/bash
apt-get install sqlite3
sqlite3 superset.db 
.tables
.schema dbs
select sqlalchemy_uri from dbs;
(8)默认数据库从sqlite更改为mysql
docker exec -it -u root be1c60109292 /bin/bash
superset/config.py
SQLALCHEMY_DATABASE_URI = 'mysql://root:123456@192.168.150.17:3306/superset?charset=utf8'
# 细节参考[https://blog.youkuaiyun.com/xianhai_teng/article/details/118547112]
# 注意: 转义字符「 \ 」问题
(9)换 Logo 
docker exec -it -u root be1c60109292 /bin/bash
cd /app/superset/static/assets/images
s.png favicon.png superset.png superset-logo-horiz.png
docker cp /Users/zhendong/Desktop/SuperSet_Logo be1c60109292:/app
cp -f SuperSet_Logo/* /app/superset/static/assets/images/

二、使用已有镜像:
(1)导出
docker commit be1c60109292 superset_szzz_220118
docker save -o ~/superset20220118.tar superset_szzz_220118 
(2)导入
docker load -i superset20220118.tar
(3)重新运行
docker run --name superset_szzz_220118 -d -p 8080:8088 superset_szzz_220118 
docker exec -it -u root 2c634cfddb6e /bin/bash
(4)迁移元数据库
1. SQLite 拷贝 superset.db 文件
2. MySQL 数据备份迁移,注意字符集(GBK -> UTF8)

三、本地MySQL作为测试数据源:
docker pull mysql:5.7   # 拉取 mysql 5.7
docker images
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
<think>好的,我现在需要在CentOS 7上使用Docker部署Apache Superset。首先,我应该回顾一下用户提供的参考信息。引用[1]提到启动Docker的命令是sudo systemctl start docker,然后拉取hello-world镜像来验证安装是否正确。引用[2]和[3]都提到了使用Docker Compose来部署Superset,并且需要安装cpolar进行内网穿透,不过用户可能暂时不需要远程访问部分,先专注于部署。 首先,我需要确认CentOS 7上已经安装了DockerDocker Compose。根据引用[1],安装Docker后需要启动服务并验证。CentOS 7的Docker安装步骤可能包括添加仓库、安装docker-ce,然后启动服务。接下来,安装Docker Compose可能需要从GitHub下载二进制文件。 然后,克隆Superset的代码仓库,使用docker compose启动。引用[2]和[3]都提到了这一点,但具体的仓库地址可能需要确认。通常,Superset的官方文档可能推荐使用他们的GitHub仓库中的docker-compose.yml文件。 在步骤中,需要注意权限问题,比如使用sudo或者在docker命令前加上sudo。另外,初始化Superset时可能需要创建管理员账户、迁移数据库、初始化角色等步骤,这些在官方Docker部署流程中常见。 用户的问题是如何在CentOS 7上部署,所以步骤需要针对CentOS的环境调整。例如,安装依赖包时可能使用yum而不是apt,防火墙设置可能需要用到firewalld而不是ufw。 最后,确保所有步骤正确无误,并且检查Superset是否在本地可以通过浏览器访问,比如http://localhost:8088。如果有问题,可能需要检查Docker容器日志,或者端口是否正确映射。 现在需要将这些步骤整理成一个清晰的指南,确保每个步骤都正确,并符合用户提供的引用中的方法,同时适用于CentOS 7。</think>### 在 CentOS 7 上使用 Docker 部署 Apache Superset 的详细步骤 #### 1. **安装 DockerDocker Compose** - **安装 Docker** 执行以下命令: ```bash sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ``` 验证 Docker 是否安装成功: ```bash sudo docker run hello-world ``` 若显示 `Hello from Docker!` 表示安装成功[^1]。 - **安装 Docker Compose** 下载二进制文件并赋予执行权限: ```bash sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 验证版本: ```bash docker-compose --version ``` --- #### 2. **部署 Apache Superset** - **克隆 Superset 代码库** 使用官方提供的 `docker-compose.yml`: ```bash git clone https://github.com/apache/superset.git cd superset ``` - **启动 Superset 服务** 使用 Docker Compose 启动容器: ```bash docker-compose -f docker-compose-non-dev.yml up -d ``` 此过程会拉取镜像并启动数据库、Redis、Superset 等组件[^3]。 --- #### 3. **初始化 Superset** - **创建管理员账户** 执行以下命令进入 Superset 容器: ```bash docker exec -it superset_app bash ``` 在容器内初始化账户: ```bash superset fab create-admin \ --username admin \ --firstname John \ --lastname Doe \ --email admin@example.com \ --password admin ``` - **迁移数据库并初始化角色** 在容器内执行: ```bash superset db upgrade superset init ``` --- #### 4. **访问 Superset** - 在浏览器中访问 `http://localhost:8088`,使用账号 `admin` 和密码 `admin` 登录[^2]。 - 若需远程访问,需配置防火墙开放端口: ```bash sudo firewall-cmd --permanent --add-port=8088/tcp sudo firewall-cmd --reload ``` --- #### 5. **验证服务状态** - 查看容器运行状态: ```bash docker-compose -f docker-compose-non-dev.yml ps ``` - 若容器异常,检查日志: ```bash docker logs superset_app ``` --- ### 常见问题解决 - **端口冲突**:若 `8088` 端口被占用,修改 `docker-compose-non-dev.yml` 中的端口映射,如 `8080:8088`。 - **数据库初始化失败**:确保 PostgreSQL 和 Redis 容器正常启动,尝试重新执行 `superset db upgrade`。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值