Superset 安装配置
文章目录
Superset 安装配置
一、Superset 概述
1. Superset简介
Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。
Superset快速,轻巧,直观,并带有各种选项,使各种技能的用户都可以轻松浏览和可视化其数据,从简单的折线图到高度详细的地理空间图。

2. 功能概述
以下是Superset的主要功能的概述:
-
开箱即用的丰富数据可视化集合
-
易于使用的界面,用于浏览和可视化数据
-
创建和共享仪表板
-
与大型身份验证提供程序(数据库,OpenID,LDAP,OAuth和REMOTE_USER通过Flask AppBuilder集成)集成的企业级身份验证
-
可扩展的高粒度安全性/权限模型,允许有关谁可以访问单个要素和数据集的复杂规则
-
一个简单的语义层,允许用户通过定义哪些字段应显示在哪些下拉列表中以及哪些聚合和功能度量可供用户使用来控制如何在UI中显示数据源
-
通过SQLAlchemy与大多数说SQL的RDBMS集成
-
与Druid.io的深度集成



3. 支持的数据库

二、Superset 环境部署步骤
- 服务器操作系统为 CentOS 7
- Superset 对接的数据源为 MySQL 数据库。
三、创建虚拟机,安装CentOS
1.下载CentOS
可以到官网:https://www.centos.org/download/ 或者国内的镜像网站进行下载
这里我们到官网进行下载,选择x86_64版本的

这里我们选择 7.9 版本的

搭建集群的话,不需要太大的,这里我们选择 mini 版本

2.创建虚拟机
打开VMware,点击文件,点击新建虚拟机

选择自定义模式,然后点击下一步

根据你的VMware选择对应版本(一般默认就可以),点击下一步

选择稍后安装操作系统,点击下一步

选择Linux(L)、CentOS 7 64位(默认就好),点击下一步

设置虚拟机名称和位置,注意不要放在C盘里,点击下一步

设置内核数量和虚拟机数量,点击下一步

设置分配给虚拟机的内存,16G的内存设置2G就可以了,点击下一步

网络类型这里使用 NAT,点击下一步

跟着推荐走,点击下一步


选择创建新虚拟磁盘,点击下一步

设置磁盘容量,这里为20G,点击下一步

这里不做修改,点击下一步

点击完成

这样虚拟机就创建好了

3.编辑虚拟机设置
找到 编辑虚拟机设置

找到下载好的CentOS文件

4.安装centos7.9mini版本
打开虚拟机,开始安装
选择安装语言

选择安装磁盘


开始安装

设置root密码


创建普通用户


安装成功后重启

5.启动centos,并进行登录

出现#提示符,说明登录成功。
四、CentOS配置
1. 查看本地windows主机的网络适配器
打开设置,找到网络和Internet,点击更改网络适配器

我们可以看到 VMnet1和 VMnet8

2. 查看虚拟机网络地址配置区间


注意:此处每个人的网络配置区间都是不一样的
3. 查看本地windows主机的IP地址
按win+r打开运行

进入命令提示符

4. 虚拟机ip配置
IP配置参数:
- IP地址:点分十进制,四位十进制数用点进行分割,0~255
- 子网掩码:
- 网关:
- DNS:用于域名和ip地址的转换
修改网卡的配置文件:
打开虚拟机,进入 root 用户下,进入 /etc/sysconfig/network-scripts/ 目录下

输入 ll,查看目录下文件

修改网卡的配置文件,将ONBOOT修改为 yes,将BOOTPROTO修改为static,添加子网掩码、网关地址、DNS服务器地址

重启网络服务,systemctl restart network

查看网络服务状态,systemctl status network,处于激活状态

查看ip地址设置情况

测试连通情况

说明静态ip配置是成功的
5. 启动securecrt连接虚拟机




说明远程连接虚拟机成功
6.永久修改主机名

输入 exit 退出
重新登录可以看到主机名已经发生了变化,reboot重启主机后也被修改

7. 建立虚拟机主机名和ip地址的映射关系
主机名和ip地址映射关系保存在/etc/hosts文件中,修改该文件

修改为

保存退出
8. 建立本地windows主机中虚拟机主机名和虚拟机ip的映射关系
按win+r,打开运行窗口

点击 etc 文件



五、mysql的安装
1.新建文件夹
在根目录下创建/export文件夹,在该文件夹下创建data、software和servers三个子文件夹

2. 下载mysql安装yum源
查看CentOS版本

安装wget

wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

3. 安装yum源,并更新升级GPG
# 安装 i代表安装,v代表可视的,h代表进度
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
# 不执行安装会出错
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-<当前年份>
# 安装mysql
yum install mysql-community-server

4. 启动mysql服务器
systemctl start mysqld.service
systemctl status mysqld

5. 获取临时密码
grep 'temporary password' /var/log/mysqld.log

6. 用临时密码登录mysql
mysql -uroot -p

7. 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Bigdata20!';
其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功

8. 添加允许远程连接的用户
GRANT ALL PRIVILEGES ON *.* TO '20bigdata'@'%' IDENTIFIED BY 'Bigdata2022!' WITH GRANT OPTION;

9. 创建连接


10. 远程连接
点击连接,出现错误
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gymXHrGG-1671161518847)(null)]](https://images2.imgbox.com/dc/6a/zEaW12PK_o.png)
关闭防火墙

重新连接

连接成功。
六、安装 Python 环境
Superset 是由 Python 语言编写的 Web 应用,要求 Python 3.7 的环境。
CentOS自带有Python环境,使用 python -V 进行查看:

但我们要使用的是 Python 3.7 版本,如果直接对 Python 进行更新的话,Superset是符合的,但是依赖原有 Python 环境的一些应用可能无法使用,所以不能直接更新 Python。
1. 安装 Miniconda
conda 是一个开源的包、环境管理器,可以用于在同一个机器上安装不同 Python 版本的软件包及其依赖,并能够在不同的 Python 环境之间切换,Anaconda 包括 Conda、Python 以及一大堆安装好的工具包,比如:numpy、pandas 等,Miniconda 包括 Conda、Python。
此处,我们不需要如此多的工具包,故选择 MiniConda。
1)下载 Miniconda(Python3 版本)
下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
直接下载比较慢,建议使用迅雷下载。

2)上传文件
在software下新建文件夹,安装 lrzsz

上传文件

3)安装 Miniconda
(1)执行以下命令进行安装,并按照提示操作,直到安装完成。
bash Miniconda3-latest-Linux-x86_64.sh
(2)在安装过程中,出现以下提示时,可以指定安装路径

(3)出现以下字样,即为安装完成

4)加载环境变量配置文件,使之生效
source ~/.bashrc
也可以重新打开连接,具有相同的效果。


5)取消激活 base 环境
Miniconda 安装完成后,每次打开终端都会激活其默认的 base 环境,我们可通过以下命令,禁止激活默认 base 环境。
conda config --set auto_activate_base false

我们新建会话,发现最前面的 bash 已经不见了,查看Python版本:

发现这是 Python 自带的版本。
2. 创建 Python 3.9 环境
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

2)创建 Python 3.9环境
conda create --name superset python=3.9



说明:conda 环境管理常用命令
创建环境:
conda create -n env_name python=3.7查看所有环境:
conda info --envs删除一个环境:
conda remove -n env_name --all
3)激活 superset 环境
conda activate superset
激活后效果如下图所示

说明:退出当前环境
conda deactivate
4)执行 python 命令查看 python 版本

七、Superset 部署
1. 安装依赖
安装 Superset 之前,需安装以下所需依赖
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
1)安装(更新)setuptools 和 pip
pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/

**说明:**pip 是 python 的包管理工具,可以和 centos 中的 yum 类比
2)安装Superset
pip install apache-superset==2.0.0 -i https://pypi.douban.com/simple/
说明:-i 的作用是指定镜像,这里选择国内镜像
注:如果遇到网络错误导致不能下载,可尝试更换镜像
pip install apache-superset --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple
安装的东西比较多,稍等一下。


3)初始化 Supetset 数据库
superset db upgrade
出现错误:

没有配置管理员用户
export FLASK_APP=superset
再次初始化数据库,出现错误:
ModuleNotFoundError: No module named 'werkzeug.wrappers.etag'

通过降低Werkzeug的版本解决
python -m pip uninstall -y Werkzeug
python -m pip install Werkzeug==2.0.3

再次执行命令,出现错误:
TypeError: __init__() got an unexpected keyword argument 'unbound_message'
需要降低Flask的版本到2.0.3
python -m pip uninstall -y Flask
python -m pip install Flask==2.0.3

再次执行命令,出现错误:
ModuleNotFoundError: No module named 'wtforms.ext'

这个是因为WTForms 3.0.1的版本去掉了ext,需要降低WTForms的版本到2.3.3
python -m pip uninstall -y WTForms
python -m pip install WTForms==2.3.3

再次执行命令,初始化数据库成功:

4)创建管理员用户
export FLASK_APP=superset
superset fab create-admin
**说明:**flask 是一个 python web 框架,Superset 使用的就是 flask

5)Superset 初始化
superset init

3. 启动 Supterset
1)安装 gunicorn
pip install gunicorn -i https://pypi.douban.com/simple/
**说明:**gunicorn 是一个 Python Web Server,可以和 java 中的 TomCat 类比

2)启动 Superset
(1)确保当前 conda 环境为 superset,及下图所示

(2)启动
gunicorn --workers 5 --timeout 120 --bind hadoop102:8787 "superset.app:create_app()" --daemon

说明:
- workers:指定进程个数
- timeout:worker 进程超时时间,超时会自动重启
- bind:绑定本机地址,即为 Superset 访问地址,若使用主机名,需要在本地主机中建立虚拟机主机名和虚拟机ip的映射关系
- daemon:后台运行
(3)登录 Superset
访问 http://hadoop102:8787,并使用前面创建的管理员账号进行登录。

3)停止 Superset
停掉 gunicorn 进程
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9

刷新一下网页

退出 superset 环境
conda deactivate

4. Superset 启停脚本
1)创建 superset.sh 文件
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(){
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
2)加执行权限
chmod +x superset.sh

3)测试
启动 Superset
superset.sh start
查看 Superset状态
superset.sh status
停止 Superset
superset.sh stop

参考文章: