superset的安装和使用--docker

superset是一个非常好用的数据可视化工具。
官网:apache/incubator-superset: Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application


安装方法有2个,推荐使用docker进行安装:

git clone https://github.com/apache/incubator-superset/
cd incubator-superset/contrib/docker
# prefix with SUPERSET_LOAD_EXAMPLES=yes to load examples:
docker-compose run --rm superset ./docker-init.sh
# you can run this command everytime you need to start superset now:
docker-compose up

服务起来后打开网页127.0.0.1:8088进行访问。
如果要连到mysql的数据库,需要安装库,操作如下:

docker ps
docker exec -it CONTAINER_ID/bin/bash
python3 -m  pip install mysqlclient

不安装的话会报错:

ERROR: {
   
   "error": "Connection failed!\n\nThe error message returned was:\nNo module named 'MySQLdb'", "stacktrace": "Traceback (most recent call last):\n  File \"/home/superset/superset/views/core.py\", line 1755, in testconn\n    engine = database.get_sqla_engine(user_name=username)\n  File \"/home/superset/superset/utils/core.py\", line 132, in __call__\n    value = self.func(*args, **kwargs)\n  File \"/home/superset/superset/models/core.py\", line 911, in get_sqla_engine\n    return create_engine(url, **params)\n  File \"/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/__init__.py\", line 435, in create_engine\n    return strategy.create(*args, **kwargs)\n  File \"/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py\", line 87, in create\n    dbapi = dialect_cls.dbapi(**dbapi_args)\n  File \"/usr/local/lib/python3.6/site-packages/sqlalchemy/dialects/mysql/mysqldb.py\", line 118, in dbapi\n    return __import__(\"MySQLdb\")\nModuleNotFoundError: No module named 'MySQLdb'\n"}



不推荐:另一种是通过pip直接安装:

# Install superset
pip install superset

# Initialize the database
superset db upgrade

# Create an admin user (you will be prompted to set a username, first and last name before setting a password)
$ export FLASK_APP=superset
flask fab create-admin

# Load some data to play with
superset load_examples

# Create default roles and permissions
superset init

# To start a development web server on port 8088, use -p to bind to another port
superset run -p 8080 --with-threads --reload --debugger

这种方法在Windows下回报错:

  Building wheel for superset (setup.py) ... error
  ERROR: Complete output from command 'C:\Users\peter\Anaconda3\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\peter\\AppData\\Local\\Temp\\pip-install-60fd31ig\\superset\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\peter\AppData\Local\Temp\pip-wheel-rv2yqmmm' --python-tag cp37:
你遇到的问题是: ```bash -sh: docker-compose: not found ``` 这说明在当前的 WSL 环境中(`docker-desktop` 发行版)**没有安装 `docker-compose` 命令**。 --- ## 🔍 问题分析 你使用的是 **Docker Desktop 自带的轻量级 Linux 虚拟机(称为 `docker-desktop`)**,它并不是一个完整的 Ubuntu/Debian 系统,而是一个极简发行版,**默认不包含 `docker-compose` 可执行文件**。 虽然 Docker 命令可用(如 `docker ps`),但 `docker-compose` 需要单独安装或通过其他方式调用。 --- ## ✅ 解决方案:使用 `docker compose`(V2 插件命令) 现代 Docker 已将 `docker-compose` 升级为内置插件,新语法是: ```bash docker compose ``` 👉 注意:这是两个单词,不是 `docker-compose`(一个单词带横杠)。 所以你应该运行: ```bash docker compose up -d ``` 而不是: ```bash docker-compose up -d # ❌ 这个命令在 docker-desktop 中不可用 ``` --- ### ✅ 正确操作步骤如下: ```bash # 先确认你在项目目录 cd ~/superset-prod # 查看是否有 docker-compose.yml ls docker-compose.yml # 使用新的 V2 语法启动服务 docker compose up -d ``` ✅ 成功! > 💡 提示:这个命令会自动识别 `docker-compose.yml` 文件并启动所有服务。 --- ## 📌 补充知识:`docker-compose` vs `docker compose` | 类型 | 名称 | 是否需要额外安装 | 推荐程度 | |------|------|------------------|----------| | v1 | `docker-compose`(Python 工具) | 需 `pip install docker-compose` | ❌ 已弃用 | | v2 | `docker compose`(Docker 内置插件) | 自动集成在 Docker CLI 中 | ✅ 推荐 | Docker 官方已推荐使用 `docker compose`(无横杠),它是用 Go 编写的,性能更好、更稳定。 --- ## 🛠️ 如果 `docker compose` 也不行?如何修复? 如果连 `docker compose` 都报错,说明你的 Docker CLI 环境有问题。 ### ✅ 解决方法:切换到完整的 WSL 发行版(推荐做法) 不要在 `docker-desktop` 这种临时环境中操作项目! 你应该使用一个完整的 Linux 发行版,比如: - Ubuntu - Debian - Kali Linux ### 步骤如下: #### 1. 安装 Ubuntu(从 Microsoft Store) 打开 [Microsoft Store](https://apps.microsoft.com/) → 搜索 “Ubuntu” → 安装。 #### 2. 启动 Ubuntu 开始菜单 → 打开 “Ubuntu”,设置用户名密码。 #### 3. 安装 Docker CLI(让 Ubuntu 能控制 Docker Desktop) ```bash # 添加 Docker 官方 GPG 密钥 sudo apt update && sudo apt install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 添加仓库 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 更新包索引并安装 Docker CLI sudo apt update sudo apt install docker-ce-cli -y ``` 这样你就有了 `docker` `docker compose` 命令。 #### 4. 将项目移到 Ubuntu 文件系统 建议把项目放在 Ubuntu 的家目录下,例如: ```bash cd ~ mkdir superset-prod # 然后把你之前创建的所有文件复制进来(config/, nginx/, certs/ 等) ``` 或者从 Windows 路径挂载访问: ```bash cd /mnt/c/Users/pc/superset-prod ``` 但注意权限问题,最好复制到 Linux 原生路径。 #### 5. 正常运行命令 ```bash cd ~/superset-prod docker compose up -d ``` 一切正常! --- ## ✅ 总结:你现在应该怎么做? | 目标 | 操作 | |------|------| | 快速启动服务 | 在 `docker-desktop` 中运行:`docker compose up -d`(注意是空格) | | 长期开发部署 | 切换到 **Ubuntu WSL** 并安装 `docker-ce-cli`,获得完整功能 | | 避免错误 | 不要用 `docker-compose`(带横杠),改用 `docker compose`(两个词) | ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值