安装Apache Superset--基于Docker的安装配置

本文详细介绍了如何使用Docker安装Apache Superset,包括下载镜像、创建容器、初始化设置、访问Superset、解决汉化和CSV乱码问题,以及如何将内置数据库迁移至MySQL,并添加用户及权限分配。

1、下载Superset镜像

查找星最多的镜像:

docker search superset

下载镜像(选择 amancevice/superset):

docker pull amancevice/superset

查看镜像是否下载成功:

docker images

 

2、创建Superset容器

创建挂载的目录:

mkdir /opt/superset

创建superset容器:

docker run --name my_superset -d -p 8088:8088 -v /opt/superset:/home/superset amancevice/superset

查看进程:

docker ps -a

进入docker镜像:

docker exec -it my_superset /bin/bash

 

3、在Superset容器中初始化

superset安装目录:/usr/local/lib/python3.8/site-packages/superset

数据库初始化:(进入容器后执行命令)

superset db upgrade

superset初始化:(进入容器后执行命令)

superset init

设置管理员账号:(进入容器后执行命令)

export FLASK_APP=superset
flask fab create-admin

用户名:admin,密码:123456

 

加载superset样例命令:(进入容器后执行命令)(由于网络的原因可能会报错,但是不影响正常使用,可以多执行几次加载更多的测试样例)

superset load_examples

启动superset命令:(进入容器后执行命令)一般不使用,初始化init后,就可以访问了

superset run -p 8088

 

4、访问superset

我这里是VM虚机的访问地址:http://192.168.171.126:8088/login/

 

注意事项

1)老版本使用  docker exec -it my_superset fabmanager create-admin --app superset命令创建管理员会报错

2)不执行 export FLASK_APP=superset 命令,也可能会报错,You did not provide the "FLASK_APP" environment variable

 

5、停止与开启superset服务

停止superset服务

docker stop my_superset

查找运行superset的容器ID

docker ps -a

开启superset服务

docker start my_superset

 

 

6、superset汉化

1)进入superset容器

docker exec -it --user root my_superset /bin/bash

 

2)修改配置文件/usr/local/lib/python3.8/site-packages/superset/config.py,修改BABEL_DEFAULT_LOCALE的取值从"en"为"zh"

修改后显示:

cat /usr/local/lib/python3.8/site-packages/superset/config.py | grep BABEL_DEFAULT_LOCALE

 

3)重新编译设计到国际化的文件(有报错也没关系)

pybabel compile -d /usr/local/lib/python3.8/site-packages/superset/translations

 

4)退出superset容器后,重启superset容器

docker restart my_superset

 

5)再登录superset,就是中文版本了

 

github上关于中文的源码:https://github.com/apache/superset/tree/master/superset/translations/zh/LC_MESSAGES

 

7、superset导出csv中文乱码问题

 

 

8、内置数据库转为mysql数据库

进入superset容器:root用户进入

docker exec -it --user root my_superset /bin/bash

在容器中执行命令:

pip install mysqlclient

 

SQLAlchemy URI 填写连接字符串:

mysql://root:123456@192.168.171.126:3306/supersetdb?charset=utf8
  • root:数据库用户名
  • 123456:数据库密码
  • 192.168.171.126: 数据库所在机器IP
  • 3306:数据库端口号
  • supersetdb:数据库名称
  • charset=utf8:设置字符集编码格
  • 点击Test Connection,出现以下提示代表连接mysql数据库成功

 

superset中的配置操作:转为mysql数据库

添加成功后:

 

如果将Superset内置数据库换成其他的数据库,首先要安装对应的包,然后到superset上添加database,重启即可;

常用的安装命令如下:

 

9、添加其他用户,给其他用户赋权限

在superset页面,Setting--List User新增用户test

 

在superset页面,Setting--List Roles修改Public角色,配置Public角色的权限,将新增的用户test加为Public角色,这样test用户就有了Public角色的权限能力

 如:给Public角色添加以下权限:  [can explore on Superset, all database access on  all_database_access, can explore json on Superset]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker compose down --volumes --remove-orphans [+] Running 7/7 ✔ Container superset-web Removed 0.0s ✔ Container superset-prod-superset-init-1 Removed 1.3s ✔ Container superset-prod-redis-1 Removed 0.3s ✔ Container superset-prod-mysql-1 Removed 1.0s ✔ Volume superset-prod_mysql_data Removed 0.0s ✔ Network superset-prod_superset-net Removed 0.4s ✔ Volume superset-prod_redis_data Removed 0.0s gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker system prune -f Total reclaimed space: 0B gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker compose down -v gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker compose up -d [+] Running 7/7 ✔ Network superset-prod_superset-net Created 0.0s ✔ Volume superset-prod_mysql_data Created 0.0s ✔ Volume superset-prod_redis_data Created 0.0s ✔ Container superset-prod-redis-1 Healthy 6.0s ✔ Container superset-prod-mysql-1 Healthy 16.0s ✔ Container superset-prod-superset-init-1 Started 16.1s ✔ Container superset-web Started 16.2s gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker logs -f superset-init Error response from daemon: No such container: superset-init gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS superset-prod-mysql-1 mysql:8.0 "docker-entrypoint.s…" mysql 40 seconds ago Up 39 seconds (healthy) 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp superset-prod-redis-1 redis:7-alpine "docker-entrypoint.s…" redis 40 seconds ago Up 39 seconds (healthy) 6379/tcp superset-prod-superset-init-1 apache/superset:latest "bash -c '\n echo '…" superset-init 40 seconds ago Up 24 seconds (health: starting) 8088/tcp superset-web apache/superset:latest "bash -c '\n pip ins…" superset 40 seconds ago Restarting (2) 3 seconds ago gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ 没有成功,到底是哪里的问题导致的呢
10-22
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值