1 Superset概述
- Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接 各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义 仪表盘。
2 Superset安装
-
Superset 是由 Python 语言编写的 Web 应用,要求 Python3.7 的环境。
-
python安装步骤:
(1)安装Miniconda。conda 是一个开源的包、环境管理器,可以用于在同一个机器上安装不同 Python 版本的 软件包及其依赖,并能够在不同的 Python 环境之间切换,Anaconda 包括 Conda、Python 以 及一大堆安装好的工具包,比如:numpy、pandas 等,Miniconda 包括 Conda、Python。 此处,我们不需要如此多的工具包,故选择 MiniConda。Miniconda下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh
运行后指定安装路径后安装成功
(2)加载环境变量配置文件,使之生效
source ~/.bashrc
(3)Miniconda 安装完成后,每次打开终端都会激活其默认的 base 环境,我们可通过以下命 令,禁止激活默认 base 环境。
conda config --set auto_activate_base false
(4)配置 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
(5)创建 Python3.8 环境
conda create --name superset python=3.8
-
superset安装部署步骤
(1)安装依赖sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-developenldap-devel
(2)安装(更新)setuptools 和 pip
pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
(3)安装superset
pip install apache-superset -i https://pypi.douban.com/simple/
(4)初始化 Supetset 数据库(元数据库),报错的话安装pip install wtforms==2.3.3
superset db upgrade
(5)创建管理员用户,输入用户名superset、个人信息(可回车跳过)、密码superset,报错的话安装pip install pillow
export FLASK_APP=superset superset fab create-admin
(6)Superset 初始化
superset init
-
启动superset步骤,将superset部署到web容器中
(1)安装gunicorn,gunicorn 是一个 Python Web Server,可以和 java 中的 TomCat 类比
pip install gunicorn -i https://pypi.douban.com/simple/
(2)确保当前 conda 环境为 superset,启动superset,–workers:指定进程个数, --timeout:worker 进程超时时间,超时会自动重启, --bind:绑定本机地址,即为 Superset 访问地址, --daemon:后台运行
gunicorn --workers 5 --timeout 120 --bind hadoop102:8787 "superset.app:create_app()" --daemon
(3)访问hadoop102:8787,输入账号密码即可登录
-
关闭superset,没有现成的命令,需要手动关闭进程,过滤出所有包含superset的进程并kill
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
-
superset启停脚本
#!/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
3 Superset使用
3.1 配置数据源
-
要对接不同的数据源,需要安装不同的依赖,https://superset.apache.org/docs/databases/installing-database-drivers,这里安装对接mysql的依赖,然后重启superset
conda install mysqlclient
-
配置数据源步骤
(1)点击 Data/Databases
(2)点击+DATABASE
(3)点击填写 Database 相关信息进行连接 -
配置表步骤
(1)点击 Data/Datasets
(2)点击+DATASET
(3)选择要配置的数据库以及表进行添加
3.2 制作仪表盘
-
创建空白仪表盘步骤
(1)点击 Dashboards/+DASHBOARDS
(2)命名并保存 -
创建图表步骤
(1)点击 Charts/+CHART
(2)选则数据源及图表类型
(3)对图表进行配置后创建,配置界面分为三块,分别是表的信息区、表的配置区、表的预览区;其中TIME COLUMN指明数据源表中代表时间的字段,后面它的值会作为横轴;TIME GRAIN代表时间粒度,TIME RANGE代表时间范围,可以设置要展示的时间范围;METRICS则代表衡量指标,可以选择一个数据源表的字段,后面它的值会作为纵轴,同时还需要选择一个聚合函数AGGREGATE,该聚合函数会按照前面选择的时间粒度进行数据的聚合;
(4)点击右上角保存生成的图表,选择要添加到的仪表盘
(5)可在相应的仪表盘中看到刚刚创建的图表,如果有多个图表的话,可以点击编辑按钮,使用行列组件预先布局,然后再把图表拖到对应的位置上
(6)在仪表盘右上角可以选择设置自动刷新时间间隔