Superset 安装配置

文章目录


在这里插入图片描述

Superset 安装配置

一、Superset 概述

1. Superset简介

官网地址

Apache Superset 是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。

Superset快速,轻巧,直观,并带有各种选项,使各种技能的用户都可以轻松浏览和可视化其数据,从简单的折线图到高度详细的地理空间图。

image-20221214180940473

2. 功能概述

以下是Superset的主要功能的概述:

  • 开箱即用的丰富数据可视化集合

  • 易于使用的界面,用于浏览和可视化数据

  • 创建和共享仪表板

  • 与大型身份验证提供程序(数据库,OpenID,LDAP,OAuth和REMOTE_USER通过Flask AppBuilder集成)集成的企业级身份验证

  • 可扩展的高粒度安全性/权限模型,允许有关谁可以访问单个要素和数据集的复杂规则

  • 一个简单的语义层,允许用户通过定义哪些字段应显示在哪些下拉列表中以及哪些聚合和功能度量可供用户使用来控制如何在UI中显示数据源

  • 通过SQLAlchemy与大多数说SQL的RDBMS集成

  • 与Druid.io的深度集成
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

3. 支持的数据库

image-20221214181717682

二、Superset 环境部署步骤

  • 服务器操作系统为 CentOS 7
  • Superset 对接的数据源为 MySQL 数据库。

三、创建虚拟机,安装CentOS

1.下载CentOS

可以到官网:https://www.centos.org/download/ 或者国内的镜像网站进行下载

这里我们到官网进行下载,选择x86_64版本的

在这里插入图片描述

这里我们选择 7.9 版本的

image-20221006141300066

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

image-20221214182512511

2.创建虚拟机

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

image-20221006141629192

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

image-20221006142322115

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

image-20221214191857963

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

image-20221006142715915

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

image-20221006142813746

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

image-20221006142950235

跟着推荐走,点击下一步

image-20221006143055955

image-20221006143129210

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

image-20221006143206074

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

在这里插入图片描述

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

在这里插入图片描述

点击完成

image-20221214192430444

这样虚拟机就创建好了

image-20221214192452301

3.编辑虚拟机设置

找到 编辑虚拟机设置

image-20221214210755538

找到下载好的CentOS文件
在这里插入图片描述

4.安装centos7.9mini版本

打开虚拟机,开始安装

选择安装语言

在这里插入图片描述

选择安装磁盘

image-20221006144637786

image-20221006150802409

开始安装

image-20221006144743059

设置root密码

image-20221006160835925

在这里插入图片描述

创建普通用户

image-20221006160846347

image-20221006160858955

安装成功后重启

image-20221006164345315

5.启动centos,并进行登录

在这里插入图片描述

出现#提示符,说明登录成功。

四、CentOS配置

1. 查看本地windows主机的网络适配器

打开设置,找到网络和Internet,点击更改网络适配器

image-20221006164648146

我们可以看到 VMnet1和 VMnet8

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

注意:此处每个人的网络配置区间都是不一样的

3. 查看本地windows主机的IP地址

按win+r打开运行

在这里插入图片描述

进入命令提示符

在这里插入图片描述

4. 虚拟机ip配置

IP配置参数:

  • IP地址:点分十进制,四位十进制数用点进行分割,0~255
  • 子网掩码:
  • 网关:
  • DNS:用于域名和ip地址的转换

修改网卡的配置文件:

打开虚拟机,进入 root 用户下,进入 /etc/sysconfig/network-scripts/ 目录下

image-20221214211924964

输入 ll,查看目录下文件

image-20221214212024563

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

在这里插入图片描述

重启网络服务,systemctl restart network

在这里插入图片描述

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

image-20221214214004468

查看ip地址设置情况

image-20221214214045500

测试连通情况

在这里插入图片描述

说明静态ip配置是成功的

5. 启动securecrt连接虚拟机

image-20221214214504737

在这里插入图片描述

image-20221214214548027

在这里插入图片描述

说明远程连接虚拟机成功

6.永久修改主机名

image-20221214215006234

输入 exit 退出

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

在这里插入图片描述

7. 建立虚拟机主机名和ip地址的映射关系

主机名和ip地址映射关系保存在/etc/hosts文件中,修改该文件

在这里插入图片描述

修改为

在这里插入图片描述

保存退出

8. 建立本地windows主机中虚拟机主机名和虚拟机ip的映射关系

按win+r,打开运行窗口

在这里插入图片描述

点击 etc 文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、mysql的安装

1.新建文件夹

在根目录下创建/export文件夹,在该文件夹下创建data、software和servers三个子文件夹

image-20221214220140193

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

image-20221214221912083

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’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功

image-20221214222430811

8. 添加允许远程连接的用户

GRANT ALL PRIVILEGES ON *.* TO '20bigdata'@'%' IDENTIFIED BY 'Bigdata2022!' WITH GRANT OPTION; 

在这里插入图片描述

9. 创建连接

在这里插入图片描述
在这里插入图片描述

10. 远程连接

点击连接,出现错误

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gymXHrGG-1671161518847)(null)]

关闭防火墙

在这里插入图片描述

重新连接

在这里插入图片描述

连接成功。

六、安装 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

也可以重新打开连接,具有相同的效果。

image-20221215093748638

在这里插入图片描述

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

安装的东西比较多,稍等一下。

在这里插入图片描述

image-20221215132752056

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

image-20221215140735274

再次执行命令,出现错误:

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

image-20221215141324311

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

image-20221215141815581

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,及下图所示

image-20221215150458744

(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,并使用前面创建的管理员账号进行登录。

image-20221215152005263

3)停止 Superset

停掉 gunicorn 进程

ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9

在这里插入图片描述

刷新一下网页

在这里插入图片描述

退出 superset 环境

conda deactivate

image-20221215152755320

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

在这里插入图片描述

参考文章:

CentOS 7安装 superset 2.0

尚硅谷大数据Superset教程(数据仓库项目首选数据可视化平台)