一、安装
Superset官网地址:http://superset.apache.org/
一)安装Miniconda
1)下载Miniconda(Python3版本)
下载地址:https://repo.anaconda.com/miniconda/
Miniconda3-latest-Linux-x86_64.sh
2)安装Miniconda
将安装包Miniconda3-latest-Linux-x86_64.sh和base.txt依赖文件,导入虚拟机环境
执行安装语句
bash Miniconda3-latest-Linux-x86_64.sh
长按回车,直到出现
输入yes回车后出现
指定安装路径 /opt/module/miniconda3(这里如果输错了可以CTRL+u清空再重新输入)
再输入一个yes并回车,直到出现
3)加载环境变量配置文件,使之生效
source ~/.bashrc
4)取消激活base环境
Miniconda安装完成后,每次打开终端都会激活其默认的base环境,通过以下命令,禁止激活默认base环境
conda config --set auto_activate_base false
二)创建Python3.8环境
1)配置conda国内镜像(安装速度慢可配置)
依次执行,修改镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes
注:1.查看conda的镜像channel配置(默认即为defaults)
conda config --show channels
2.删除清华镜像
conda config --remove-key channels
2)创建Python3.8环境
conda create --name superset python=3.8.16
说明:conda环境管理常用命令
- 创建环境:conda create -n env_name
- 查看所有环境:conda info --envs
- 删除一个环境:conda remove -n env_name --all
按回车继续
3)激活superset环境
conda activate superset
base-->superset
注:退出当前环境命令
conda deactivate
4)执行python -V命令查看python版本
python -V
版本为Python 3.8.16
三)Superset部署
1)安装依赖
sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
2)安装Superset
更新pip
base.txt可用于指定superset依赖组件及版本
下载路径:https://raw.githubusercontent.com/apache/superset/2.0.0/requirements/base.txt
在base.txt所在目录下执行命令,安装SuperSet
pip install apache-superset==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple -r base.txt
说明:
-i:指定镜像,这里选择国内镜像
-r:指定superset依赖组件及相应版本,指向base.txt文件即可
3)配置Superset元数据库
在MySQL中创建superset元数据库或直接创建数据库
CREATE DATABASE superset DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
在MySQL中创建superset用户
create user superset@'%' identified WITH mysql_native_password BY 'superset';
grant all privileges on *.* to superset@'%' with grant option;
flush privileges;
在虚拟环境中修改superset配置文件(第184、185行--184+shift+g直接跳转到指定行)
vim /opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/config.py
SQLALCHEMY_DATABASE_URI = 'mysql://superset:superset@hadoop102:3306/superset?charset=utf8'
安装python msyql驱动并初始化superset元数据
conda install mysqlclient
export FLASK_APP=superset
superset db upgrade
四)Superset初始化
1)创建管理员用户admin
superset fab create-admin
用户名admin 密码admin123
2)初始化superset
superset init
五)启动Superset(conda环境为superset)
1)安装gunicorn
pip install gunicorn -i https://pypi.douban.com/simple/
2)启动Superset
gunicorn --workers 5 --timeout 120 --bind hadoop102:8787 "superset.app:create_app()" --daemon
说明:
--workers:指定进程个数
--timeout:worker进程超时时间,超时会自动重启
--bind:绑定本机地址,即为Superset访问地址
--daemon:后台运行
3)登录Superset
先使用admin管理员账号进行登录(admin--admin123)
4)停止Superset
停掉gunicorn进程
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
退出superset环境
conda deactivate
补充:
superset启停脚本superset.sh
#!/bin/bash
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 5 --timeout 120 --bind hadoop102: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
;;
stop )
echo "停止Superset"
superset_stop
;;
restart )
echo "重启Superset"
superset_stop
superset_start
;;
status )
superset_status >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "superset未在运行"
else
echo "superset正在运行"
fi
esac
添加执行权限
chmod +x superset.sh
或
chmod 777 superset.sh
启动superset
superset.sh start
停止superset
superset.sh stop
二、使用
一)对接MySQL数据源
1)安装依赖(前面步骤已安装,可直接跳过)
conda install mysqlclient
说明:对接不同的数据源,需安装不同的依赖
Installing Database Drivers | Superset
二)数据源配置(database --> table)
点击Data/Databases --> 点击+DATABASE -> 点击填写Database及SQL Alchemy URI --> MySQL
连接方式一:通过URL连接
点击最下方Connect this database with a SQLAlchemy URl string instead
填写:mysql://superset:superset@hadoop102:3306/gmall_report?charset=utf8
连接方式二:逐个输入认证信息
点击Test Connection,出现“Connection looks good!”提示即表示连接成功 --> 点击CONNECT
完成database配置
接下来配置table
点击Data/Datasets --> 点击+DATASET --> 配置Table
三)制作可视化界面
点击Dashboards/+DASHBOARDS --> 点击Charts/+CHART
出现的问题:
1)conda activate superset
EnvironmentNameNotFound: Could not find conda environment: superset
You can list all discoverable environments with `conda info --envs`.
conda info --envs查看所有环境发现只有base,激活superset环境失败
出现原因:未创建完成python3.8环境
解决方式:重新创建python3.8环境
conda create --name superset python=3.8.16
2)superset fab create-admin
Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
出现原因:必须为admin进入创建用户
解决方式:检查命令