Apache Superset

本文讲述了作者如何为一个小项目准备过程中,详细描述了如何安装和配置ApacheSuperset,以便从Hive导出数据到MySQL并利用Superset进行数据可视化的过程,强调了安装过程中的复杂性和版本依赖问题。
摘要由CSDN通过智能技术生成

前言

        最近在准备一个小的项目,需要对 Hive 的数据进行展示,所以想到了把 Hive 的数据导出到 MySQL 然后用 Superset 进行展示。

Superset

1.1 Superset概述

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

 1.2 Superset安装

1.2.1、安装Python环境

        这里废话少说,按照某谷的配置文档配的话一堆问题,毕竟当时的版本和现在可能不一样,以及镜像地址有的已经不能用了。

1、安装 Miniconda

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

安装命令:

bash Miniconda3-latest-Linux-x86_64.sh
2、加载环境变量配置文件,使之生效
source ~/.bashrc
3、取消激活 base 环境(conda 自己的 python 环境)

        Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境。 

conda config --set auto_activate_base false
4、配置 Python 环境

CentOS 7 自带的是 2.7 版本的,明显太低,但是又不能把它删了或者覆盖,我们得在 conda 下再建一个 python 环境。

修改镜像源:

vi ~/.condarc

然后把下面的东西直接复制进去(文件里原本有的配置留一个就行):

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
show_channel_urls: true
ssl_verify: false

5、创建Python3.9环境!

注意:是 3.9 !别用 3.7 了,不然一堆报错,我觉得是教程出的那会 superset 版本比较低,所以 3.7 安装的时候没问题,但是我今天安装一堆毛病,换了3.9还没出问题。

conda create --name superset python=3.9

安装完了 pythpn -V 看一下

6、激活 superset 环境

注意:之后所有关于 superset 的操作尽量都在 superset 环境下操作!!!

(base) [lyh@hadoop102 ~]$ conda activate superset

1.2.2、Superset 部署

1、安装 Superset 需要的依赖 
(superset) [lyh@hadoop102 ~]$ 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、更新 setuptools 和 pip

直接用下面这个命令:

(superset) [lyh@hadoop102 ~]$ pip install --upgrade setuptools pip -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

不行就换源!

3、安装 Superset
(superset) [lyh@hadoop102 ~]$ pip install apache-superset pip -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
4、初始化 Superset 数据库
(superset) [lyh@hadoop102 ~]$ export FLASK_APP=superset
(superset) [lyh@hadoop102 ~]$ superset db upgrade

这里容易报错,如果自己是 python 3.7 我反正是换了 3.9 后就没报错了。

5、创建管理员用户
(superset) [lyh@hadoop102 ~]$ superset fab create-admin

这里会让我们创建用户名和密码 

6、superset 初始化
(superset) [lyh@hadoop102 ~]$ superset init

1.2.3、启动 Superset 

1、安装gunicorn
(superset) [lyh@hadoop102 ~]$ pip install gunicorn -i https://pypi.douban.com/simple/

我是自带的(提示已存在),还是那句话:不行就去换源(-i 镜像源地址)!

2、启动 Superset

 注意:一定要确保当前 conda 环境为 superset !!!

(superset) [lyh@hadoop102 ~]$ gunicorn --workers 5 --timeout 120 --bind hadoop102:8787  "superset.app:create_app()" --daemon 
  • workers:指定进程个数
  • timeout:worker进程超时时间,超时会自动重启
  • bind:绑定本机地址,即为Superset访问地址
  • daemon:后台运行
3、登录 Superset

打开 hadoop102:8087 ,用上面创建的用户名和密码登录

4、停止 superset
(superset) [lyh@hadoop102 ~]$ ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9

1.2.4、Superset 启停脚本

#!/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

1.2.5、退出 Superset

superset.sh stop
conda deactivate

1.3、Superset 的使用

        Superset 的使用太简单了,都是简单的拖拉拽,这里不再废话。 这里写一点我在使用时候遇到的小疑惑和解决办法。

1.3.1、地图精度

        需要使用魔法去国外的 mapbox 免费注册一个账号获得秘钥(注册就有),但是得用魔法和国外邮箱(谷歌不行,最好用 Proton Mail)来注册。

1.3.2、多折线图

        多折线图需要多加几个聚合指标就可以了。

总结

        这是我安装过最麻烦的软件了,让我把 Hadoop、Flink、Spark 全重装我不怕,但这东西是真tm恶心啊。

无法打开网页问题解决

打不开网页的话在 conda 的 superset 环境下输入下面的命令:

superset run --host 0.0.0.0

发现报错: 

export FLASK_APP=superset

继续测试,还有警告:

export SUPERSET_SECRET_KEY=“oh-so-secret”

所以:建议把这两个环境变量放到启动脚本中去!!!! 

解决!不得不说,这是第一次把我恶心到的软件,版本依赖是真的多,配置起来是真麻烦。

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让线程再跑一会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值