Superset部署+连接MySQL8+省份地图可视化

Superset部署

  • Apache Superset是一个轻量级的数据可视化平台
    Superset的Web框架用的是Flask
    官网:http://superset.apache.org/

1、创建具有sudo权限的用户,并切换到该用户,本文为miniconda

su - miniconda

2、安装MiniConda,然后创建虚拟环境,名为superset,Python版本3.7,选y

conda create --name superset python=3.7

3、进入虚拟环境

conda activate superset

4、安装SuperSet依赖

sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel

5、安装(更新)setuptoolspip

pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/

6、安装Superset(-i作用是指定镜像)

pip install apache-superset -i https://pypi.douban.com/simple/

7、初始化Superset数据库

export FLASK_APP=superset
superset db upgrade

8、创建管理员用户,主要是填写UsernamePassword记住,其它随意

superset fab create-admin

9、Superset初始化

superset init

10、安装 Gunicorn

pip install gunicorn -i https://pypi.douban.com/simple/

11、Superset启停

gunicorn --workers 6 --timeout 90 --bind hadoop107:8787 "superset.app:create_app()" --daemon
参数 说明
--workers 进程个数
--timeout worker进程超时时间,超时会自动重启
--bind 绑定地址,即Superset访问地址,端口号建议8787
--daemon 后台运行
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9

12、superset启停脚本

touch superset.sh
chmod 777 superset.sh
vim superset.sh
#!/bin/bash

HOST=hadoop107

superset_status(){
   
    result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`
    if [[ $result -eq 0 ]]; then
        return 0
    else
        return 1
    fi
}

superset_start(){
   
    source ~/.bashrc
    superset_status >/dev/null 2>&1
    if [[ $? -eq 0 ]]; then
        conda activate superset;gunicorn --workers 6 --timeout 90 --bind $HOST:8787 --daemon 'superset.app:create_app()'
    else
        echo "superset正在运行"
    fi
}

superset_stop(){
   
    superset_status >/dev/null 2>&1
    if [[ $? -eq 0 ]]; then
        echo "superset未在运行"
    else
        ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
    fi
}

case $1 in
    start )
        echo "启动Superset"
        superset_start
 
在 k8s 上部署 superset 连接 mysql 可以通过以下步骤实现: 1. 创建一个 ConfigMap,将 superset 的配置文件放入其中。 ```yaml apiVersion: v1 kind: ConfigMap metadata: name: superset-config data: superset_config.py: | SQLALCHEMY_DATABASE_URI = 'mysql://<db_user>:<db_password>@<db_host>:<db_port>/<db_name>' ``` 2. 创建一个 Deployment,用于部署 superset。 ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: superset spec: replicas: 1 selector: matchLabels: app: superset template: metadata: labels: app: superset spec: containers: - name: superset image: amancevice/superset env: - name: SUPERSET_CONFIG valueFrom: configMapKeyRef: name: superset-config key: superset_config.py ports: - containerPort: 8088 volumeMounts: - name: data mountPath: /app/superset/data volumes: - name: data emptyDir: {} ``` 3. 创建一个 Service,用于将 superset 暴露出来。 ```yaml apiVersion: v1 kind: Service metadata: name: superset spec: selector: app: superset ports: - name: http port: 8088 targetPort: 8088 type: NodePort ``` 4. 创建一个 MySQL 的 Service,用于将 MySQL 暴露出来。 ```yaml apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - name: mysql port: 3306 targetPort: 3306 type: ClusterIP ``` 5. 在 superset 中配置 MySQL 数据库连接。 访问 superset 的 web 界面,点击 "Sources" -> "Databases" -> "Add Database",填写以下信息: - Name: MySQL - SQLAlchemy URI: mysql://<db_user>:<db_password>@mysql:3306/<db_name> - Click "Test Connection",确认连接成功后保存。 至此,就完成了在 k8s 上部署 superset 连接 mysql 的过程。需要注意的是,在使用 k8s 部署时,需要将 MySQL 的 IP 地址改为 Service 的名称。另外,需要将 Superset 的配置文件放入 ConfigMap 中,并在 Deployment 中将其挂载到容器中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值