Superset服务安装

文章目录

  • Superset概述
  • Superset应用场景
  • Superset安装及使用
    • 安装Python环境
    • 安装Miniconda
      • 下载Miniconda(Python3版本)
      • 安装Miniconda
      • 取消每次登陆自动激活`conda base`环境
      • 创建Python3.7(Superset)环境
        • 配置conda国内镜像
        • 创建`Superset`环境
        • 激活`Superset`环境
        • 查看python版本
    • Superset部署
      • 安装依赖
      • 安装Superset
        • 可能遇到的异常
        • 创建管理员用户
        • Superset初始化
        • 启动Superset
        • Superset启停脚本
  • Superset使用
    • MySQL数据源
      • 安装MySQL依赖
        • 重启Superset
      • MySQL数据源配置
        • Database 配置
        • Table配置
        • 创建图表
        • 创建仪表盘
        • 使用SQL查询后以表格形式展示
      • 系统嵌入

Superset概述

Apache Superset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图表展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。

Superset应用场景

由于Superset能够对接常用的大数据分析工具,如Hive、Kylin、Druid等,且支持自定义仪表盘,故可作为数仓的可视化工具。

Superset安装及使用

Superset官网地址:http://superset.apache.org/

Superset文档地址:https://superset.apache.org/docs/intro

安装Python环境

Superset是由Python语言编写的Web应用,要求Python3.7的环境。

安装Miniconda

因为目前我们服务器 Python默认版本都是2.x,我们需要一个独立环境安装3.7供Superset使用,conda是一个比较好的选择。

conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python。

此处,我们不需要如此多的工具包,故选择MiniConda。

下载Miniconda(Python3版本)

下载链接:

https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

其他版本可以查看:https://repo.anaconda.com/miniconda/

安装Miniconda

执行安装脚本

sh Miniconda3-latest-Linux-x86_64.sh 

按回车继续

Welcome to Miniconda3 py39_4.11.0In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> 

空格翻阅安装条款

image-20220318105754177

同意条款,输入yes

Do you accept the license terms? [yes|no]
[no] >>>       

输入安装目录

Miniconda3 will now be installed into this location:
/root/miniconda3- Press ENTER to confirm the location- Press CTRL-C to abort the installation- Or specify a different location below[/root/miniconda3] >>> 

运行初始化conda,输入yes

installation finished.
Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
[no] >>> 

取消每次登陆自动激活conda base环境

现在每次登陆该服务器会自动自动进入base环境

image-20220318110258659

刚刚在安装完成时会提示下面一句话

If you'd prefer that conda's base environment not be activated on startup, set the auto_activate_base parameter to false: conda config --set auto_activate_base false

我们执行conda config --set auto_activate_base false就是取消自动进入

[root@r-wb-18 software]# conda config --set auto_activate_base false
-bash: conda: 未找到命令

如果提示未找到,我们引用一下环境变量即可 source ~/.bashrc

创建Python3.7(Superset)环境

配置conda国内镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --set show_channel_urls yes
创建Superset环境
conda create --name superset python=3.7
或者使用--channel指定国内源
conda create --name superset python=3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

遇到需要安装组件同意安装

说明:conda环境管理常用命令
创建环境:conda create -n env_name
查看所有环境:conda info --envs
删除一个环境:conda remove -n env_name --all

安装完成提示:

#
# To activate this environment, use
#
#     $ conda activate superset
#
# To deactivate an active environment, use
#
#     $ conda deactivate

conda activate superset 进入我们创建的superset环境

conda deactivate退出

激活Superset环境
conda activate superset

激活后效果如下

[root@r-wb-18 ~]# conda activate superset
(superset) [root@r-wb-18 ~]# 

退出Superset环境

conda deactivate
查看python版本
(superset) [root@r-wb-18 ~]# python
Python 3.7.11 (default, Jul 27 2021, 14:32:16) 
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Superset部署

**注意:**执行部署前需要进入我们刚刚创建的环境conda activate superset

安装依赖

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

yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel

安装Superset

  1. 安装(更新)setuptoolspip

    pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
    
  2. 安装Superset

    pip install apache-superset -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. 初始化Superset数据库

    superset db upgrade
    
可能遇到的异常
  1. 异常1:

    ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/opt/software/miniconda3/envs/superset/lib/python3.7/site-packages/markupsafe/__init__.py)
    

    解决方法:

    执行python -m pip install markupsafe==2.0.1后重新执行superset db upgrade

    参考:https://github.com/pallets/markupsafe/issues/284

  2. 异常2:

    AttributeError: module 'sqlparse.keywords' has no attribute 'FLAGS'
    

    降低版本

    pip install sqlparse=='0.4.3' -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
    
  3. 异常3:

    Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
    

    执行

    export FLASK_APP=superset
    

    并在环境变量中添加

    vim /etc/profileexport FLASK_APP=superset
    
  4. 异常4

    --------------------------------------------------------------------------------WARNING
    --------------------------------------------------------------------------------
    A Default SECRET_KEY was detected, please use superset_config.py to override it.
    Use a strong complex alphanumeric string and use a tool to help you generate 
    a sufficiently random sequence, ex: openssl rand -base64 42
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    Refusing to start due to insecure SECRET_KEY
    

解决方法:

随便在一个目录下。输入vim superset_config.py增加配置文件

(注意!!! superset_config.py文件原先是没有的,得自己创建)

在superset_config.py文件下添加以下内容

# Superset specific config
# SS 相关的配置
# 行数限制 5000 行
ROW_LIMIT = 5000# 网站服务器端口 8088,该端口被Hadoop占用,改为其他端口比如18088
SUPERSET_WEBSERVER_PORT = 8088# Flask App Builder configuration
# Your App secret key will be used for securely signing the session cookie
# and encrypting sensitive information on the database
# Make sure you are changing this key for your deployment with a strong key.
# You can generate a strong key using `openssl rand -base64 42`
# Flask 应用构建器配置
# 应用密钥用来保护会话 cookie 的安全签名
# 并且用来加密数据库中的敏感信息
# 请确保在你的部署环境选择一个强密钥
# 可以使用命令 openssl rand -base64 42 来生成一个强密钥SECRET_KEY = "ZT2uRVAMPKpVkHM/QA1QiQlMuUgAi7LLo160AHA99aihEjp03m1HR6Kg" # The SQLAlchemy connection string to your database backend
# This connection defines the path to the database that stores your
# superset metadata (slices, connections, tables, dashboards, ...).
# Note that the connection information to connect to the datasources
# you want to explore are managed directly in the web UI
# SQLAlchemy 数据库连接信息
# 这个连接信息定义了 SS 元数据库的路径(切片、连接、表、数据面板等等)
# 注意:需要探索的数据源连接及数据库连接直接通过网页界面进行管理
#SQLALCHEMY_DATABASE_URI = 'sqlite:path/to/superset.db'# Flask-WTF flag for CSRF
# 跨域请求攻击标识
WTF_CSRF_ENABLED = True# Add endpoints that need to be exempt from CSRF protection
# CSRF 白名单
WTF_CSRF_EXEMPT_LIST = []# A CSRF token that expires in 1 year
# CSFR 令牌过期时间 1 年
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365# Set this API key to enable Mapbox visualizations
# 接口密钥用来启用 Mapbox 可视化
MAPBOX_API_KEY = ''

添加之后,在/etc/profile 文件中加入以下命令:,然后生效以下配置或者重启一下大数据环境即可

export SUPERSET_CONFIG_PATH=/app/superset_config.py

添加后source /etc/profile刷新一下环境变量

  1. 异常5:
ModuleNotFoundError: No module named 'marshmallow_enum'

解决方法

pip install marshmallow_enum -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

参考:https://blog.csdn.net/m0_58195451/article/details/134148085

创建管理员用户
superset fab create-admin

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

添加创建账号信息

2022-03-18 11:22:47,189:INFO:superset.utils.screenshots:No PIL installation found
Username [admin]: jast
User first name [admin]: jast
User last name [user]: zhang
Email [admin@fab.org]: xxx@foxmail.com
Password: 
Repeat for confirmation: 
Recognized Database Authentications.
Admin User jast created.
Superset初始化
superset init
启动Superset
  1. 安装gunicorn

    pip install gunicorn -i https://pypi.douban.com/simple/
    

    说明:gunicorn是一个Python Web Server,可以和java中的TomCat类比

  2. 启动Superset

    gunicorn --workers 5 --timeout 120 --bind 192.168.60.18:18888  "superset.app:create_app()" --daemon
    

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

  3. 登录Superset

    访问http://192.168.60.18:18888,使用我们刚刚创建的管理员用户登录

    image-20220318112850832

    image-20220318112914988

  4. 停止Superset

    ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
    
Superset启停脚本
#!/bin/bashsuperset_status(){result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`if [[ $result -eq 0 ]]; thenreturn 0elsereturn 1fi
}
superset_start(){source ~/.bashrcsuperset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenconda activate superset ; gunicorn --workers 5 --timeout 120 --bind 192.168.60.18:8787 --daemon 'superset.app:create_app()'elseecho "superset正在运行"fi}superset_stop(){superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenecho "superset未在运行"elseps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9fi
}case $1 instart )echo "启动Superset"superset_start;;stop )echo "停止Superset"superset_stop;;restart )echo "重启Superset"superset_stopsuperset_start;;status )superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenecho "superset未在运行"elseecho "superset正在运行"fi
esac

Superset使用

MySQL数据源

安装MySQL依赖

conda install mysqlclient

说明:对接不同的数据源,需安装不同的依赖,以下地址为官网说明
https://superset.apache.org/docs/databases/installing-database-drivers

官方介绍是使用的pip方法安装,我们替换成conda防止兼容性产生;官方说明:pip install mysqlclient;

数据库连接方法:mysql://<UserName>:<DBPassword>@<Database Host>/<Database Name>

image-20220318135836673

重启Superset
superset restart

MySQL数据源配置

Database 配置
  1. 点击Data->Databases

    image-20220318140332597

  2. 点击添加数据源

    image-20220318142106729

  3. 填写数据库 连接信息

    image-20220318142409731

  4. 创建成功

    image-20220318142654475

Table配置
  1. Data -> Datasets

    image-20220318142819129

  2. 点击 DATASET

    image-20220318142856012

  3. 选择表

    image-20220318143000108

    image-20220318143014906

创建图表
  1. 点击Charts -> CHART

    image-20220318143413521

  2. 选择表和需要展示的图

    image-20220318143614709

  3. 配置统计说明

    image-20220318145038759

    image-20220318150003897

  4. 保存

    image-20220318145131682

    image-20220318145141735

创建仪表盘
  1. Dashboards -> DASHBOARDS

    image-20220318145232247

  2. 托拉拽设置仪表盘

    image-20220318145441362

  3. 将图标拖到展示区域

    image-20220318145524351

  4. 查看结果

    image-20220318145607613

使用SQL查询后以表格形式展示
  1. SQL Lab -> SQL Editor

    image-20220318151059156

  2. 查询SQL,点击EXPLORE,并跳转到Charts

    image-20220318151936938

  3. 保存查询,并自定义命名

    image-20220318152057174

  4. 直接导出了Charts并设置好了字段,我们可以在此基础上进行修改

    image-20220318152244359

  5. 保存为Charts

    image-20220318152527747

  6. 在仪表盘添加Charts image-20220318152741893

  7. 查看结果

    image-20220318152939714

  8. 中文表头设置

    也可以在查询sql时指定中文表明,在展示时候就自动显示成别名了

    image-20220318153326902

    系统嵌入

https://www.shuzhiduo.com/A/obzbQP1ydE/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/230207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS(三):如何在AwsManagedAd目录和windowsAD实例之间建立双向信任。

前提&#xff1a; 1.创建好了一个AWS managed AD目录&#xff0c;我的目录域名为:aws.managed.com 2.创建好了一个windows AD实例并提升了为域控服务器,实例域名为:aws2.com 看过我AWS 一和二的应该都会创建windows实例了&#xff0c;切记不能将其无缝加入到aws managed AD的…

Vue 模板编译原理解析

Vue 模板编译原理解析 模板编译整体流程 首先我们看一下什么是编译&#xff1f; 所谓编译&#xff08;Compile&#xff09;&#xff0c;指的是将语言 A 翻译成语言 B&#xff0c;语言 A 就被称之为源码&#xff08;source code&#xff09;&#xff0c;语言 B 就被称之为目标…

【QML】与 C++ 混合编程:互相调用函数

文章目录 qml 调用 C 函数案例 a&#xff1a;Q_INVOKABLE 标记 C 函数 视图设置进 qml 属性案例 b&#xff1a;qml 通过发送信号的方式&#xff0c;调用 Qt 槽函数 C调用qml函数 qml 调用 C 函数 qml 要使用 C 的函数有两个方法&#xff1a; 一种是&#xff0c;用 Q_INVOKABLE…

STM32 学习(三)OLED 调试工具

目录 一、简介 二、使用方法 2.1 接线图 2.2 配置引脚 2.3 编写代码 三、Keil 工具调试 一、简介 在进行单片机开发时&#xff0c;有很多调试方法&#xff0c;如下图&#xff1a; 其中 OLED 就是一种比较好用的调试工具&#xff1a; OLED 硬件电路如下&#xff0c…

7步教你如何快速建立电子商务网站

如果您需要以客户为中心搭建电子商务网站&#xff0c;或者您正在寻求开展电子商务业务&#xff0c;那么您很幸运——现在是开始的最佳时机&#xff01;事实上&#xff0c;在疫情期间&#xff0c;电子商务销售额增长了 50%。电子商务现在是一个价值 8700 亿美元的产业。随着如此…

深入了解Apache 日志,Apache 日志分析工具

Apache Web 服务器在企业中广泛用于托管其网站和 Web 应用程序&#xff0c;Apache 服务器生成的原始日志提供有关 Apache 服务器托管的网站如何处理用户请求以及访问您的网站时经常遇到的错误的重要信息。 什么是 Apache 日志 Apache 日志包含 Apache Web 服务器处理的所有事…

rime中州韵小狼毫 inputShow lua Filter 输入字符透传滤镜

在 rime中州韵小狼毫 inputShow lua Translator 一文中&#xff0c;我们通过 inputShow.lua 定制了 inputShow_translator&#xff0c;这使得我们的输入方案可以将用户输入的字符透传到候选列表中来。如下&#x1f447;&#xff1a; &#x1f446;上图中我们在候选列表中看到了…

音视频通信

文章目录 一、音视频通信流程二、流媒体协议1、RTSP2、RTMP3、HLS4、WebRTC 一、音视频通信流程 音视频通信完整流程有如下几个环节&#xff1a;采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节&#xff0c;还有更细分的技术模块。比如&#xff0c;前后处…

[足式机器人]Part2 Dr. CAN学习笔记-Ch01自动控制原理

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Ch01自动控制原理 1. 开环系统与闭环系统Open/Closed Loop System1.1 EG1: 烧水与控温水壶1.2 EG2: 蓄水与最终水位1.3 闭环控制系统 2. 稳定性分析Stability2.1 序言2.2 稳定的分类2.3 稳定的对…

[蓝桥杯2020国赛]答疑

答疑 题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序&#xff0c;同学们要依次进入老师办公室答疑。 一位同学答疑的过程如下&#xff1a; 首先进入办公室&#xff0c;编号为 i 的同学需要 si​ 毫秒的时间。然后同学问…

2020年认证杯SPSSPRO杯数学建模D题(第一阶段)让电脑桌面飞起来全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现&#xff1a; 对于一些必须每天使用电脑工作的白领来说&#xff0c;电脑桌面有着非常特殊的意义&#xff0c;通常一些频繁使用或者比较重要的图标会一直保留在桌面上&#xff0c;但是随着时间的推移&#xff0c;…

Java数据结构:1. 数据结构前置知识

文章目录 一、初识数据结构二、初识集合框架1. 什么是集合框架2. 集合框架的重要性3. 背后所涉及的数据结构以及算法 三、时间复杂度空间复杂度1. 算法效率2. 时间复杂度&#xff08;1&#xff09;概念&#xff08;2&#xff09;大O的渐进表示法&#xff08;3&#xff09;推导大…

捕捉“五彩斑斓的黑”:锗基短波红外相机的多种成像应用

红外处于人眼可观察范围以外&#xff0c;为我们了解未知领域提供了新的途径。红外又可以根据波段范围&#xff0c;分为短波红外、中波红外与长波红外。较短的SWIR波长——大约900nm-1700nm——与可见光范围内的光子表现相似。虽然在SWIR中目标的光谱含量不同&#xff0c;但所产…

PostgreSQL荣获DB-Engines 2023年度数据库

数据库流行度排名网站 DB-Engines 2024 年 1 月 2 日发布文章宣称&#xff0c;PostgreSQL 荣获 2023 年度数据库管理系统称号。 PostgreSQL 在过去一年中获得了比其他 417 个产品更多的流行度增长&#xff0c;因此获得了 2023 年度 DBMS。 DB-Engines 通过计算每种数据库 2024 …

Amazon CodeWhisperer 免费 AI 代码生成助手体验分享

今年上半年&#xff0c;亚马逊云科技正式推出了实时AI编程助手 Amazon CodeWhisperer&#xff0c;还提供了供所有开发人员免费使用的个人版版本。经过一段时间的体验&#xff0c;我觉得 CodeWhisperer 可以处理编程工作中遇到的很多问题&#xff0c;并且帮助开发人员提高编程效…

高德地图经纬度坐标导出工具

https://tool.xuexiareas.com/map/amap 可以导出单个点&#xff0c;也可以导出多个&#xff0c;多个点可以连成线&#xff0c;可用于前端开发时自己模拟“线“数据

【Apache Doris】自定义函数之 JAVA UDF 详解

【Apache Doris】自定义函数之 JAVA UDF 详解 一、背景说明二、原理简介三、环境信息3.1 硬件信息3.2 软件信息 四、IDE准备五、JAVA UDF开发流程5.1 源码准备5.1.1 pom.xml5.1.2 JAVA代码 5.2 mvn打包5.2.1 clean5.2.2 package 5.3 函数使用5.3.1 upload5.3.2 使用 六、注意事…

华为端口隔离高级用法经典案例

最终效果&#xff1a; pc4不能ping通pc5&#xff0c;pc5能ping通pc4 pc1不能和pc2、pc3通&#xff0c;但pc2和pc3能互通 vlan batch 2 interface Vlanif1 ip address 10.0.0.254 255.255.255.0 interface Vlanif2 ip address 192.168.2.1 255.255.255.0 interface MEth0/0/1 i…

服务器防护怎么做

随着网络攻击的日益猖獗&#xff0c;服务器安全已成为关注的焦点。如何有效防御各种网络威胁&#xff0c;确保数据安全与业务连续性&#xff0c;已成为一项迫切的需求。目前服务器所面临的主要威胁包括但不限于&#xff1a;DDoS攻击、SQL注入、跨站脚本攻击(XSS)、远程命令执行…

大模型笔记 【1】 大模型初探

以下是Andrej Karpathy一小时讲解chatgpt的笔记。 Andrej Karpathy做自动驾驶的人应该比较熟悉&#xff0c;他是李飞飞的学生。在openAI做了一年半的科学家之后&#xff0c;去了特斯拉。在Tesla AI day讲解tesla自动驾驶方案的就是他。 这里我的主要收获是两个 大模型是一个有…