目录
一、Superset入门
1.1 Superset概述
1.2 Superset应用场景
二、 Superset安装及使用
2.1 安装Python环境
2.1.1 安装Miniconda
2.1.2 创建Python3.6环境
2.2 Superset部署
2.2.1 安装Superset
2.2.2 启动Supterset
三、Superset使用
3.1 对接MySQL数据源
3.1.1 安装依赖
3.1.2 数据源配置
3.2 制作仪表盘
3.2.1 创建空白仪表盘
3.2.2 创建图表
3.2.3 编辑仪表盘
四、Superset实战
4.1 制作地图
一、Superset入门
1.1 Superset概述
Apache Superset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。
1.2 Superset应用场景
由于Superset能够对接常用的大数据分析工具,如Hive、Kylin、Druid等,且支持自定义仪表盘,故可作为数仓的可视化工具。
二、 Superset安装及使用
Superset官网地址:http://superset.apache.org/
2.1 安装Python环境
Superset是由Python语言编写的Web应用,要求Python3.6的环境。
2.1.1 安装Miniconda
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python。
此处,我们不需要如此多的工具包,只是用来管理不同版本的Python环境,故选择MiniConda。
一、下载Miniconda(Python3版本)
下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
二、安装Miniconda(需要连网)
(1)将Miniconda3-latest-Linux-x86_64.sh上传到/opt/module/路径
(2)执行以下命令进行安装,并按照提示操作,直到安装完成。
[Mark@hadoop102 module]$ bash Miniconda3-latest-Linux-x86_64.sh
(3)一直按回车键,直到出现Please answer 'yes' or 'no':'
Please answer 'yes' or 'no':'
>>> yes
(4)指定安装路径(根据用户需求指定):/opt/module/miniconda3
[/home/Mark/miniconda3] >>> /opt/module/miniconda3
(5)是否初始化Miniconda3,输入yes
Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
[no] >>> yes
(6)出现以下字样,即为安装完成
Thank you for installing Miniconda3!
三、加载环境变量配置文件,使之生效
(1)配置环境变量
[Mark@hadoop102 miniconda3]$ sudo vim /etc/profile.d/my_env.sh
添加如下内容
export CONDA_HOME=/opt/module/miniconda3
export PATH=$PATH:$CONDA_HOME/bin
(2)source一下环境变量或者重启一下连接虚拟机的客户端
[Mark@hadoop102 miniconda3]$ source /etc/profile.d/my_env.sh
4)取消激活base环境
Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境。
[Mark@hadoop102 ~]$ conda config --set auto_activate_base false
2.1.2 创建Python3.6环境
1)配置conda国内镜像(清华)
[Mark@hadoop102 ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
[Mark@hadoop102 ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
[Mark@hadoop102 ~]$ conda config --set show_channel_urls yes
2)创建Python3.6环境
[Mark@hadoop102 ~]$ conda create --name superset python=3.6
说明:
conda环境管理常用命令
创建环境:conda create -n env_name
查看所有环境:conda info --envs
删除一个环境:conda remove -n env_name --all
3)激活superset环境
[Mark@hadoop102 ~]$ conda activate superset
激活后效果:(superset) [Mark@hadoop102 ~]$
说明:退出当前环境
(superset) [Mark@hadoop102 ~]$ conda deactivate
4)执行python命令查看python版本
2.2 Superset部署
2.2.1 安装Superset
1)安装Superset依赖
(superset) [Mark@hadoop102 ~]$ sudo yum install -y python-setuptools
(superset) [Mark@hadoop102 ~]$ sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel
2)安装(更新)setuptools和pip(豆瓣)
(superset) [Mark@hadoop102 ~]$ pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
说明:pip是python的包管理工具,可以和centos中的yum类比
3)安装Supetset
(superset) [Mark@hadoop102 ~]$ pip install apache-superset -i https://pypi.douban.com/simple/
说明:-i的作用是指定镜像,这里选择国内镜像(豆瓣)
4)初始化Supetset数据库(Supetset是一个web应用,自带数据库,需要初始化)
(superset) [Mark@hadoop102 ~]$ superset db upgrade
5)创建管理员用户
(superset) [Mark@hadoop102 ~]$ export FLASK_APP=superset
(superset) [Mark@hadoop102 ~]$ flask fab create-admin
Username [admin]: Mark
User first name [admin]: Mark
User last name [user]: Mark
Email [admin@fab.org]:
Password:
Repeat for confirmation:
说明:flask是一个python web框架,Superset使用的就是flask
6)Superset初始化
(superset) [Mark@hadoop102 ~]$ superset init
2.2.2 启动Supterset
1)安装gunicorn
(superset) [Mark@hadoop102 ~]$ pip install gunicorn -i https://pypi.douban.com/simple/
说明:gunicorn是一个Python Web Server,可以和java中的TomCat类比
2)启动Superset
第一步:确保当前conda环境为superset,及下图所示
(superset) [Mark@hadoop102 ~]$
第二步:启动
(superset) [Mark@hadoop102 ~]$ gunicorn --workers 5 --timeout 120 --bind hadoop102:8787 "superset.app:create_app()" --daemon
说明:
workers:指定进程个数
timeout:worker进程超时时间,超时会自动重启
bind:绑定本机地址,即为Superset访问地址
daemon:后台运行
3)停止superset
(1)停掉gunicorn进程
(superset) [Mark@hadoop102 ~]$ ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
(2)退出superset环境
(superset) [Mark@hadoop102 ~]$ conda deactivate
4)superset启停脚本
(1)创建superset.sh文件
[Mark@hadoop102 bin]$ vim 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(){
# 该段内容取自~/.bashrc,所用是进行conda初始化
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/module/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/opt/module/miniconda3/etc/profile.d/conda.sh" ]; then
. "/opt/module/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/opt/module/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
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
(2)加执行权限
[Mark@hadoop102 bin]$ chmod +x superset.sh
(3)测试
启动superset
[Mark@hadoop102 bin]$ superset.sh start
停止superset
[Mark@hadoop102 bin]$ superset.sh stop
5)登录Superset
访问http://hadoop102:8787,并使用2.2.1节中第5步创建的管理员账号进行登录。
例如:用户名:Mark密码:000000
三、Superset使用
3.1 对接MySQL数据源
3.1.1 安装依赖
1)安装连接MySQL数据源的依赖
(superset) [Mark@hadoop102 ~]$ conda install mysqlclient
Proceed ([y]/n)? y
说明:对接不同的数据源,需安装不同的依赖,以下地址为官网说明
http://superset.apache.org/installation.html#database-dependencies
2)重启Superset
(superset) [Mark@hadoop102 ~]$ superset.sh restart
3.1.2 数据源配置
1)Database配置
(1)点击Sources/Databases
(2)点击+
(3)点击填写Database及SQL Alchemy URI
Database: gmall_report
SQLAIchemy URI: mysql://root:000000@hadoop102/gmall_report?charset=utf8
注:SQL Alchemy URI编写规范:mysql://账号:密码@IP/数据库名称
(4)点击Test Connection,出现“Seems Ok!”提示即表示连接成功
(5)保存配置
2)Table配置
(1)点击Sources/Tables
(2)点击Sources/Tables
(3)配置Table
3.2 制作仪表盘
3.2.1 创建空白仪表盘
1)点击Dashboards/+
2)配置仪表盘
3)保存仪表盘
3.2.2 创建图表
7)点击“Run Query”
3.2.3 编辑仪表盘
四、Superset实战
4.1 制作地图
1)配置Table