Skip to content

Superset部署

1. 环境要求

Superset是由Python语言编写的Web应用,要求Python3.7以上的环境。由于Centos7默认自带的python是2.7版本,如果直接卸载可能导致其他安装的软件运行出现问题。如果需要python版本多个同时在一台机器上的话,需要安装Anaconda软件。

2. 安装Miniconda

conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python。此处,我们不需要如此多的工具包仅仅为了安装Superset,故选择MiniConda。

2.1 下载Miniconda(Python3版本)

下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

sh
[jack@hadoop105 software]$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

2.2 执行安装脚本

  1. 执行以下命令进行安装,并按照提示操作。
sh
[jack@hadoop105 software]$ chmod +X Miniconda3-latest-Linux-x86_64.sh
[jack@hadoop105 software]$ ./Miniconda3-latest-Linux-x86_64.sh
  1. 在安装过程中,出现以下提示时,可以指定安装路径/opt/module/miniconda3 Alt text
  2. 回车后输入yes,再回车出现以下字样,即为安装完成 Alt text
  3. 加载环境变量配置文件,使之生效
sh
[jack@hadoop105 software]$ source ~/.bashrc
  1. 取消激活base环境
    Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境。 Alt text
sh
(base) [jack@hadoop105 ~]$ conda config --set auto_activate_base false

2.4 创建Python3.10环境

  1. 配置conda国内镜像
sh
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

conda环境管理常用命令

  • 创建环境:conda create -n env_name
  • 查看所有环境:conda info --envs
  • 删除一个环境:conda remove -n env_name --all
  1. 创建Python3.10.15环境
sh
[jack@hadoop105 ~]$ conda create --name superset python=3.10.15
  1. 激活superset环境
sh
[jack@hadoop105 ~]$ conda activate superset
(superset) [jack@hadoop105 ~]$ python -V
Python 3.10.15
## 退出当前环境
(superset) [jack@hadoop105 ~]$ conda deactivate

3. Superset部署

3.1 安装依赖

安装Superset之前,需安装以下所需依赖。

sh
(superset) [jack@hadoop105 ~]$ sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel

3.2 更新pip

sh
(superset) [jack@hadoop105 ~]$ pip install --upgrade setuptools pip

3.3 安装Supetset

  1. 使用pip安装Superset和依赖
sh
(superset) [jack@hadoop105 ~]$ pip install apache-superset
Collecting apache-superset
  Downloading apache-superset-4.1.0.tar.gz (55.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.4/55.4 MB 2.0 MB/s eta 0:00:00

说明

-i的作用是指定镜像,这里选择国内镜像。
-r的作用是指定superset依赖组件及相应版本,指向base.txt文件即可。

3.4 配置Superset元数据库

Superset的元数据支持MySQL、PostgreSQL,此处采用MySQL。

  1. 在MySQL中创建superset元数据库
sql
CREATE DATABASE superset DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  1. 创建superset用户
sql
create user superset@'%' identified WITH mysql_native_password BY 'superset';
grant all privileges on *.* to superset@'%' with grant option;
flush privileges;
  1. 修改superset配置文件
sh
(superset) [jack@hadoop105 ~]$ vim /opt/module/miniconda3/envs/superset/lib/python3.10/site-packages/superset/config.py
修改内容如下:(184、185行
# SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(DATA_DIR, "superset.db")
SQLALCHEMY_DATABASE_URI="mysql://superset:superset@hadoop105:3306/superset"
  1. 安装python msyql驱动
sh
(superset) [jack@hadoop105 ~]$ conda install mysqlclient
  1. 配置Superset的加密Key,用于Superset加密页面配置数据库连接中的用户名密码信息
sh
(superset) [jack@hadoop105 ~]$ openssl rand -base64 42
uh0/kdJQsPh1vEFvrj2C4GWMn9OLKKGX0S1nkBfRUHjzQ9D83ngIpefa
  1. 初始化superset元数据
sh
(superset) [jack@hadoop105 ~]$ export FLASK_APP=superset
(superset) [jack@hadoop105 ~]$ export SUPERSET_CONFIG_PATH=/opt/module/miniconda3/envs/superset/lib/superset_config.py
(superset) [jack@hadoop105 ~]$ superset db upgrade

说明: FLASK是一个python web框架,Superset使用的就是flask。

3.5 Supersetset初始化

  1. 创建管理员用户
sh
(superset) [jack@hadoop105 ~]$ superset fab create-admin
  1. 初始化superset
sh
(superset) [jack@hadoop105 ~]$ superset init

3.6 启动Supterset

sh
gunicorn --workers 5 --timeout 120 --bind hadoop105:8787  "superset.app:create_app()" --daemon

说明:gunicorn是一个Python Web Server,和java中的Tomcat类似

  • --workers:指定进程个数
  • --timeout:worker进程超时时间,超时会自动重启
  • --bind:绑定本机地址,即为Superset访问地址
  • --daemon:后台运行

3.7 登录Superset

访问http://hadoop102:8787,并使用supersetset初始化步骤中创建的管理员账号进行登录。
Alt text

3.8 停止Superset

sh
# 停掉gunicorn进程
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9