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 执行安装脚本
- 执行以下命令进行安装,并按照提示操作。
sh
[jack@hadoop105 software]$ chmod +X Miniconda3-latest-Linux-x86_64.sh
[jack@hadoop105 software]$ ./Miniconda3-latest-Linux-x86_64.sh
- 在安装过程中,出现以下提示时,可以指定安装路径/opt/module/miniconda3
- 回车后输入yes,再回车出现以下字样,即为安装完成
- 加载环境变量配置文件,使之生效
sh
[jack@hadoop105 software]$ source ~/.bashrc
- 取消激活base环境
Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境。
sh
(base) [jack@hadoop105 ~]$ conda config --set auto_activate_base false
2.4 创建Python3.10环境
- 配置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
- 创建Python3.10.15环境
sh
[jack@hadoop105 ~]$ conda create --name superset python=3.10.15
- 激活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
- 使用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。
- 在MySQL中创建superset元数据库
sql
CREATE DATABASE superset DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- 创建superset用户
sql
create user superset@'%' identified WITH mysql_native_password BY 'superset';
grant all privileges on *.* to superset@'%' with grant option;
flush privileges;
- 修改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"
- 安装python msyql驱动
sh
(superset) [jack@hadoop105 ~]$ conda install mysqlclient
- 配置Superset的加密Key,用于Superset加密页面配置数据库连接中的用户名密码信息
sh
(superset) [jack@hadoop105 ~]$ openssl rand -base64 42
uh0/kdJQsPh1vEFvrj2C4GWMn9OLKKGX0S1nkBfRUHjzQ9D83ngIpefa
- 初始化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初始化
- 创建管理员用户
sh
(superset) [jack@hadoop105 ~]$ superset fab create-admin
- 初始化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初始化步骤中创建的管理员账号进行登录。
3.8 停止Superset
sh
# 停掉gunicorn进程
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9