【详细版】基于AWS EC2使用Docker安装部署Superset v2.0

news2024/12/23 1:50:03

文章目录

    • 1. SuperSet介绍
    • 2. 实验说明
    • 3. 实验配置
    • 4. SSH连接云实例
    • 5. 系统版本查看
    • 6. 主机名映射
    • 7. Docker安装
    • [可选] Docker Compose安装
    • 8. 安装superset
    • 9. 初始化superset容器
    • 10. 为superset加入连接Athena需要的依赖
    • 11. 为superset准备一个具有权限的IAM用户
    • 12. 添加此IAM用户的权限策略
    • 13. 登录Superset控制面板
    • 14. 使用superset与Athena连接
    • 15. 导入数据集
    • 16. 制作Charts
    • 17. 开启并嵌入仪表盘Dashboard
    • 18. 常见报错问题
    • 19. 参考链接

1. SuperSet介绍

image-20231128174832251

Apache Superset是一个开源的数据可视化和数据探索工具,它可以帮助用户通过创建交互式仪表板来探索和呈现数据。Superset最初由Airbnb开发,后来成为Apache软件基金会的一个孵化项目,目前是Apache顶级项目之一。

以下是Apache Superset的一些关键特点和功能:

  1. 数据连接:Superset支持多种不同类型的数据源,包括关系型数据库(如MySQL、PostgreSQL、SQL Server)、NoSQL数据库(如MongoDB)、云服务(如Amazon Redshift、Google BigQuery)以及文件格式(如CSV、Excel等)。

  2. 仪表板创建:用户可以使用Superset创建交互式仪表板,将数据可视化呈现为各种图表类型,包括柱状图、折线图、饼图、地图、热力图等。

  3. 数据探索:Superset提供了一个探索功能,允许用户探索和分析数据,执行数据切片和切块操作,以便更深入地了解数据。

  4. 自定义查询:用户可以使用SQL或图形化界面创建自定义查询,并将结果可视化为图表。

  5. 安全性:Superset提供了许多安全性功能,包括身份验证和授权,以确保只有授权的用户可以访问敏感数据。

  6. 集成:Superset可以与其他工具和平台集成,如Apache Druid、Apache Kafka、以及各种BI工具和数据存储系统。

  7. 社区支持:由于Superset是一个开源项目,它有一个活跃的社区,不断更新和改进软件,提供文档和支持。

总的来说,Apache Superset是一个功能强大的数据可视化和探索工具,可以帮助数据分析师、数据科学家和决策者更好地理解数据,从而做出更明智的决策。它的灵活性和可扩展性使其成为各种组织和项目的理想选择。

2. 实验说明

本实验是基于Amazon EC2实例,基于CentOS 7.9系统以Docker的安装方式,部署搭建Superset 2.0 版本。用于实现数据库接入、数据采集、数据图表制作、数据控制面板制作,数据可视化展示等相关功能。

3. 实验配置

云主机操作系统系统配置Docker版本Superset版本Superset访问端口
Amazon EC2CentOS 7.98C16GBv24.0.7v 2.08088

4. SSH连接云实例

ssh -i <密钥>  centos@<ip地址>

5. 系统版本查看

[root@superset ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

6. 主机名映射

$ sudo vim /etc/hosts
# 添加如下:
172.31.23.163   superset
52.82.109.114   superset
按:wq保存退出。

7. Docker安装

✨Docker安装参考链接:https://docs.docker.com/engine/install/centos/

  • 卸载旧版Docker
# Images, containers, volumes, and networks stored in /var/lib/docker/ aren't automatically removed when you uninstall Docker.
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 安装Docker
# 安装yum-utils包(它提供yum-config-manager实用程序)
$ sudo yum install -y yum-utils

# 设置存储库
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker Engine、containerd和Docker Compose
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动docker服务
$ systemctl start docker && systemctl enable docker
$ systemctl status docker

# 查看docker信息
$ docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:11:35 2023
 OS/Arch:           linux/amd64
 Context:           default

[可选] Docker Compose安装

# 安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 授权
sudo chmod +x /usr/local/bin/docker-compose

# 添加环境变量并生效
$ sudo vim .bashrc
# 添加内容如下:
export PATH=/usr/local/bin:$PATH
按:wq保存退出即可。

$ source .bashrc

# 查看docker-compose版本
$ docker-compose version

8. 安装superset

# 从互联网下载Superset docker镜像
$ sudo docker pull amancevice/superset:2.0.0【此实验使用的是2.0版本】
amancevice/superset:1.4.2
amancevice/superset:2.0.0
amancevice/superset:3.0.0

# 检查是否已经完成镜像的下载
$ sudo docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
amancevice/superset   3.0.0     4988654f9c90   6 weeks ago     2.49GB
amancevice/superset   2.0.0     893d72bb0d3a   11 months ago   2.54GB

# 启动superset容器
`$ sudo docker run -p 8088:8088 -d amancevice/superset:2.0.0`

$ docker run -d --name superset -u root  -p 8088:8088 -v /opt/module/docker/superset/conf:/etc/superset -v /opt/module/docker/superset/data:/var/lib/superset amancevice/superset:2.0.0

# 更新数据库
$ docker exec -it superset superset db upgrade

# 创建superset管理员用户
$ docker exec -it superset superset fab create-admin

# 初始化
$ docker exec -it superset superset init

# 查看Superset容器运行状态
$ sudo docker ps

docker exec -it superset superset run --with-threads --reload --debugger

image-20231116212911579
image-20231128150909087

9. 初始化superset容器

# 执行docker exec -it CONTAINERID superset-init
$ sudo docker exec -it superset superset-init
Username [admin]: admin
User first name [admin]: admin
User last name [user]: admin
Email [admin@fab.org]: admin
Password:
Repeat for confirmation:
logging was configured successfully

image-20231116221637568

10. 为superset加入连接Athena需要的依赖

# docker exec -it CONTAINERID pip install PyAthenaJDBC/PyAthena
$ sudo docker exec -it a00173a7f026 pip install PyAthenaJDBC
或
$ sudo docker exec -it superset pip install PyAthena

# 重启系统生效
$ reboot

image-20231116222354827

至此,完成了Superset的安装和对接Athena的准备工作。


11. 为superset准备一个具有权限的IAM用户

开通此用户superset访问密钥

image-20231117181352996

12. 添加此IAM用户的权限策略

AmazonAthenaFullAccessAmazonS3FullAccessAWSGlueConsoleFullAccess

image-20231117181318281

13. 登录Superset控制面板

image-20231128174540474
image-20231117181913552
image-20231117182136063

14. 使用superset与Athena连接

在添加数据库页面,需要填写Database名称,和SQLAlchemy URI,SQLAlchemy URI格式组成如下:

awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com.cn/{schema_name}?s3_staging_dir={s3_staging_dir}&
  • {aws_access_key_id}:{aws_secret_access_key}是刚刚创建的IAM ASSK
  • {region_name}是Athena所在区域
  • {schema_name}是Glue中存放表元数据的数据库名称
  • {s3_staging_dir}是保存查询结果和记录的桶名称和路径(可以填写Athena结果保存路径,或是创建一个新的桶路径填在这里)

例如最终拼接出中国区域的连接地址示例:

awsathena+rest://AKIASJCHSJHN87DXD980:XXXXXXXXXX@athena.cn-northwest-1.amazonaws.com.cn/ml-data-lake?s3_staging_dir=s3://aws-athena-query-results-xx/

全球区域的连接地址示例:

awsathena+rest://AKIAT2RQT5XMNQINWOG7:xxxxxxxxxx@athena.us-east-2.amazonaws.com/ml-data-lake?s3_staging_dir=s3://tmp-263168716248/athena-output/

image-20231117181739941
image-20231117181642569

15. 导入数据集

image-20231119210512578

image-20231119210541391

16. 制作Charts

image-20231119212017940
image-20231128175458769
image-20231128175555197

17. 开启并嵌入仪表盘Dashboard

# 进入super容器
[root@superset ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
amancevice/superset   2.0.0     893d72bb0d3a   11 months ago   2.54GB

[root@superset ~]# docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED      STATUS                    PORTS                                       NAMES
f7a2d51fe3aa   amancevice/superset:2.0.0   "gunicorn superset.a…"   3 days ago   Up 23 minutes (healthy)   0.0.0.0:8088->8088/tcp, :::8088->8088/tcp   superset

[root@superset ~]# docker exec -it superset /bin/bash
root@f7a2d51fe3aa:/home/superset#

# 修改config.py配置文件
root@f7a2d51fe3aa:/home/superset# vim /usr/local/lib/python3.8/site-packages/superset/config.py

# 若执行vim命令失效,安装即可。
apt-get update
apt-get install vim

root@f7a2d51fe3aa:/home/superset# vim /usr/local/lib/python3.8/site-packages/superset/config.py
将EMNEDDED_SUPWESET的值由"False"修改成"True"# 重启Superset
$ sudo systemctl daemon-reload
$ sudo docker restart superset

image-20231128175155184

image-20231128175345959

18. 常见报错问题

报错一:Refusing to start due to insecure SECRET_KEY

image-20231116214021973

# 生成密钥
$ sudo openssl rand -base64 42
21flr4CawbRD+RwMcXJ6xN5DSJVWjMnt63TLZ+uLibtVTl/DqRKjY1Qq
1lQxdjKhLYa0DFjWQKVi6sS2bOMCOBKPgOiaO1wd6f1dlAfEpySPDRqg

# 查看容器
$ docker ps

# 进入容器
$ sudo docker exec -it -u root superset /bin/bash
或
$ sudo docker exec -it -u root a00173a7f026 /bin/bash

# 进入容器内superset安装目录
$ cd /usr/local/lib/python3.9/site-packages/superset

# 修改config.py文件中的SECRET_KEY
$ sed -i 's@SECRET_KEY = os.environ.get("SUPERSET_SECRET_KEY") or CHANGE_ME_SECRET_KEY@SECRET_KEY = "1lQxdjKhLYa0DFjWQKVi6sS2bOMCOBKPgOiaO1wd6f1dlAfEpySPDRqg"@' config.py

# 查看原来的SECRET_KEY配置信息
$ cat config.py | grep SECRET_KEY
SECRET_KEY = os.environ.get("SUPERSET_SECRET_KEY") or CHANGE_ME_SECRET_KEY

# # 查看替换好的SECRET_KEY配置信息
$ cat config.py | grep SECRET_KEY
SECRET_KEY = "21flr4CawbRD+RwMcXJ6xN5DSJVWjMnt63TLZ+uLibtVTl/DqRKjY1Qq"

报错二:sed: couldn’t open temporary file ./sedtTwnGr: Permission denied

# 以root管理员身份进入容器,即可获得管理员权限。
$ sudo docker exec -it -u root a00173a7f026 /bin/bash
root@a00173a7f026:/home/superset#

或者在创建容器实例的时候,增加参数 --privileged=true

注意事项:

境内的亚马逊云无法访问境外的亚马逊云中的数据库。需要使用境外的云主机实例,才能关联Amazon Athena。

19. 参考链接

🎈[1] 【superset安装】史上最全superset安装过程中错误解决方案

🎆[2] 基于docker部署superset容器时出现的Refusing to start due to insecure SECRET_KEY报错解决办法

✨[3] Docker容器里没有权限执行命令,提示Permission denied

🎉[4] Superset安装部署(docker版)

🎁[5] https://bigdata.awspsa.com/4-数据分析与可视化/4_3-实验4.html

🎀[6] Docker部署Superset 2.1.0+开发环境+汉化+匿名访问+创建自定义图表(二次开发)+集成echarts+echarts百度地图

🎨[7] Welcome | Superset

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据治理框架和成熟度模型

数据治理成熟度模型 一个企业的数据治理能力越高&#xff0c;所享受到数据治理带来的价值也会越多&#xff0c;如增加收入、减少成本、降低风险等。于是&#xff0c;很多企业想要准确地评估本公司的数据治理能力&#xff0c;可以利用数据治理成熟度模型方法&#xff0c;包括 D…

轻量级项目群管理

敏捷开发流程管理&#xff1a; Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo支持敏捷研发管理全流程&#xff0c;包括小型团队敏捷开发&#xff0c;…

Redis面试题:哨兵模式相关问题,以及脑裂问题

目录 面试官&#xff1a;怎么保证Redis的高并发高可用 面试官&#xff1a;你们使用redis是单点还是集群&#xff0c;哪种集群 面试官&#xff1a;redis集群脑裂&#xff0c;该怎么解决呢&#xff1f; 面试官&#xff1a;怎么保证Redis的高并发高可用 候选人&#xff1a;首先…

【沁恒蓝牙mesh】CH58x 将RTC时钟切换为LSE外部低速时钟

本文主要记录了【沁恒蓝牙mesh】CH58x 如何将RTC时钟切换为外部时钟 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的小菜鸟。&#x1f60e;&#x1f4dd; 个人主页&#xff1a;欢迎访问我的 Ethernet_Comm 博客主页&#x1f525;&#x1f389;…

堆的应用(堆排序、Top-K问题)

文章目录 1 堆排序2 Top-K问题 1 堆排序 堆排序是一种基于二叉堆&#xff08;通常使用数组实现&#xff09;的排序算法。 它的基本思想是利用堆这种数据结构的性质&#xff0c;通过建立一个堆&#xff08;大堆或小堆&#xff09;&#xff0c;使得堆的根节点是所有节点中的最大值…

14.Tomcat和HTTP协议-[一篇通]

文章目录 1.HTTP 协议1.1HTTP 是什么1.2理解 "应用层协议"1.3理解 HTTP 协议的工作过程1.4HTTP 协议格式1.4.1抓包工具的使用(Fiddler)1.4.2抓包工具的原理1.4.3抓包结果1.4.4协议格式总结 1.5HTTP 请求 (Request)1.5.1认识 URL1.5.1.1URL 基本格式1.5.1.2关于 URL e…

【算法每日一练]-图论(保姆级教程篇7 最小生成树 ,并查集模板篇)#村村通 #最小生成树

目录 题目&#xff1a;村村通 并查集 题目&#xff1a;最小生成树 kruskal算法 prim算法 先引入问题&#xff1a; 要在n个城市之间铺设光缆&#xff0c;主要目标是要使这 n 个城市的任意两个之间都可以通信&#xff0c;但铺设光缆的费用很高&#xff0c;且各个城市之间铺…

微信小程序nodejs+vue+uniapp视力保养眼镜店连锁预约系统

作为一个视力保养连锁预约的网络系统&#xff0c;数据流量是非常大的&#xff0c;所以系统的设计必须满足使用方便&#xff0c;操作灵活的要求。所以在设计视力保养连锁预约系统应达到以下目标&#xff1a; &#xff08;1&#xff09;界面要美观友好&#xff0c;检索要快捷简易…

【密码学】【安全多方计算】浅析隐私求交PSI

文章目录 隐私求交的定义隐私求交方案介绍1. 基于DH的PSI方案2. 基于OT的PSI方案3.基于OPRF的PSI方案 总结 隐私求交的定义 隐私集合求交使得持有数据参与方通过计算得到集合的交集数据&#xff0c;而不泄露任何交集以外的数据信息。 隐私求交方案介绍 1. 基于DH的PSI方案 …

漏电保护器工作原理

漏电保护器 漏电保护器是低压线路中最常用的保护器之一&#xff0c;简称漏保&#xff0c;又称漏电开关或漏电断路器。漏电保护器除了具有空开的所有保护功能外&#xff0c;还具备漏电保护功能。 需要了解 一根通电导线可以产生磁场&#xff0c;磁场与电流方向遵循右手螺旋关…

[Linux] Linux入门必备的基本指令(不全你打我)

一:ls指令 语法 &#xff1a; ls [选项] [目录或文件] 功能 &#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&#xff0c;将列出文件名以及其他信息。 ls不带选项就是显示当前目录下存在的子目录和文件 常用选项: (1). ls -l 功能: 列出…

Vue3-toRaw 和 markRaw 函数

Vue3-toRaw 和 markRaw 函数 toRaw(转换为原始)&#xff1a;将响应式对象转换为普通对象&#xff0c;只适用于 reactive 生成的响应式对象。markRaw(标记为原始)&#xff1a;标记某个对象&#xff0c;让这个对象永远都不具备响应式。一些集成的第三方库&#xff0c;会有大量的…

【解决方案】基于边缘计算技术的安科瑞综合管廊能效管理平台

平台背景 综合管廊一般是建于城市地下用于容纳两类及以上城市工程管线的构筑物及附属设施&#xff0c;将电力、自来水、热力、煤气、电信、网络等市政公用管线根据规划要求集中敷设在同一个构建物内&#xff0c;实施统一设计、施工、管理的市政公用隧道空间&#xff0c;并且还…

短剧小程序开发,短剧视频火热程序

近期&#xff0c;短剧以其独特的魅力在快节奏、忙碌的生活中迅速走红。在匆忙等待食物间隙&#xff0c;或想放松身心的片刻&#xff0c;短句成为人们难得的片刻宁静。 短剧小程序应运而生&#xff0c;在这个小巧的应用中&#xff0c;汇聚了多部丰富多样的正版短剧&#xff0c;为…

ELK---filebeat日志收集工具

filebeat也是日志收集工具&#xff0c;和logstash相同。 filebeat的特点 filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源小的多。 filebeat可以运行在非java环境&#xff0c;他可以代替logstash在非java环境上收集日志 缺…

电脑如何定时关机?

电脑如何定时关机&#xff1f;我承认自己是个相当粗心的人&#xff0c;尤其是在急于离开时经常会忘记关闭电脑&#xff0c;结果就是电量耗尽&#xff0c;导致电脑自动关机。而且&#xff0c;在我使用电脑的时候&#xff0c;经常需要进行软件下载、更新等任务。如果我一直坐等任…

ArkTS-共享元素转场动画

共享元素转场动画 在不同页面间&#xff0c;有使用相同的元素&#xff08;例如同一幅图&#xff09;的场景&#xff0c;可以使用共享元素转场动画衔接。为了突出不同页面间相同元素的关联性&#xff0c;可为它们添加共享元素转场动画。如果相同元素在不同页面间的大小有明显差异…

零信任安全:远程浏览器隔离(RBI)的重要性

引言 在当今数字化时代&#xff0c;网络安全已成为个人和企业关注的焦点。随着网络攻击和恶意软件的不断增加&#xff0c;远程浏览器隔离(RBI)SAAS系统变得至关重要。本文将深入探讨远程浏览器隔离系统的重要性&#xff0c;以及它如何帮助用户保护其网络免受恶意软件和网络攻击…

【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

台式机加独显引发的故事

弄到一块NVIDIA1660显卡&#xff0c;想要加到台式机&#xff0c;枯树逢春&#xff1b;中间引发不少事情&#xff0c;记录下来共勉 1.台式机插入显卡 1&#xff09;拆开主机后部的接口片 2&#xff09;显卡插入显卡巢&#xff0c;很内存条结构类似&#xff08;长短布局&#xff…